SlideShare a Scribd company logo
F11	
Session	-	IoT	Development	
4/28/17	1:00	PM	
	
	
	
	
	
	
Intel®	Curie™	Open	Developer	Kit	
(ODK):	A	Primer—Part	2	
	
Presented	by:	
	
Oliver	Chen	
Intel	
	
	
	
Brought	to	you	by:		
		
	
	
	
	
350	Corporate	Way,	Suite	400,	Orange	Park,	FL	32073		
888---268---8770	··	904---278---0524	-	info@techwell.com	-	https://www.techwell.com/
Oliver	Chen	
Intel	
	
Maker,	mentor,	and	educator,	Oliver	Chen	is	a	twenty-two	year	Intel	veteran	
currently	working	as	a	software	engineer	in	Intel's	Maker	and	Innovator	Group.	
He	encourages	the	broader	adoption	of	embedded	systems	for	the	Internet	of	
Things	by	working	with	makers	and	startups	on	rapid	prototyping	with	the	Intel	
Galileo,	Edison,	Curie	module-based	Arduino101,	and	newly	introduced	Joule.	For	
Season	1	of	America's	Greatest	Makers	reality	show,	he	directly	mentored	the	
startup	teams—	ASEAH,	Powerbobber,	and	Motivate	Me—and	the	$1	Million	
winning	team	Grush.
4/10/17	
1	
Makers and
Innovators
Curie Open Developer
Kit
IOT Dev+Test
CODK
•  Introduction
•  First Time M-Tree Setup
•  Proof of Life - ASCIITable
•  Convert-sketch – Blink
2
•  Create Your Own Project
•  Pattern Matching Library
•  Factory Reset
•  Case Study
4/10/17	
2	
3
Software … Tools … Documentation for developers to build boards based on the
Intel Curie module and turn them into products.
Three firmware source trees available :
•  A Tree – Arduino101 firmware, Arduino core libraries and tools
•  Z Tree – Zephyr firmware that targets Arduino101 as host Core
•  M Tree – Mix of A and Z trees. Firmware based on Zephyr on the Quark, and
user code with Arduino class libraries on the ARC
The M Tree brings:
•  Arduino class libraries
•  Dual core option of running code on Quark
•  Debugging using GDB
Curie Open Developer Kit (CODK) Introduction
4
Basic
functionality
and speed
Arduino
IDE
Heavy
compute
CODK
Complex
debug
EnvironmentArduino
IDE
ISSM
x86 Quark
CODK
EnvironmentISSM
ISSM
Yes
No Yes
No
CMD Line GUI CMD Line GUI
Z-tree M-tree
Insufficient
Sufficient
Curie software decision tree
•  Arduino IDE and ISSM- primary options for contestants
•  Arduino IDE for basics
•  ISSM for anything needing multiple cores or debugging
•  CODK- still available for
•  Those who want to do their own IDE integration
•  Prefer command line
•  Just want extra debugging
4/10/17	
3	
5
Basic
functionality
and speed
Arduino
IDE
Heavy
compute
CODK
Complex
debug
EnvironmentArduino
IDE
ISSM
x86 Quark
CODK
EnvironmentISSM
ISSM
Sufficient
Yes
No Yes
Insufficient
No
CMD Line GUI CMD Line GUI
Z-tree M-tree
MotivateMe
PowerBobber
Grush
ASEAH
NWTN
HandsOn
Project Breakdown
•  Arduino IDE- MotivateMe and PowerBobber only
needed basics
•  CODK M – HandsOn could have debugged their
wireless gloves
•  Z-tree- Grush wanted an embedded o/s
•  M-tree- ASEAH and NWTN would have used multiple
cores and x86 functionality
6
Connect Arduino101/tinyTILE
Arduino101 uses standard USB 2.0 A to B plug
tinyTILE uses micro USB
Compile Firmware/Software
Setup your environment for development by running in a new terminal:
export CODK_DIR=~/CODK/CODK-M
source ~/CODK/zephyr/zephyr-env.sh
This needs to be run in any new terminal before you compile.
Change directories to the top level directory for CODK-M in the terminal
session:
cd ~/CODK/CODK-M
The default top-level makefile builds the ASCIITable example.
Compile x86 in terminal session: make compile-x86
Compile ARC in terminal session: make compile-arc
First Time M Tree Setup
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
export CODK_DIR=~/CODK/CODK-M
source ~/CODK/zephyr/zephyr-env.sh
cd ~/CODK/CODK-M
make compile-x86
make compile-arc
4/10/17	
4	
7
Update BLE firmware
Each Arduino101 with factory settings will need to update BLE
firmware for M-Tree by running in terminal session: make upload-ble-
dfu
Some error messages are benign. Loading bar should reach
100%.
You only do this again on the same board if it has been reset to factory
settings
Flash using USB/DFU
Flash x86 binary image in terminal session : make upload-x86-dfu
Some error messages are benign. Loading bar should reach
100%.
Flash ARC binary image in terminal session: make upload-arc-dfu
Some error messages are benign. Loading bar should reach
100%.
First Time M Tree Setup
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
make upload-ble-dfu
make upload-x86-dfu
make upload-arc-dfu
8
This example will output an ASCIITable for
proof of life on the Arduino101 or the tinyTILE.
Connect the board to the computer if
necessary
Verify serial port ttyACM0 is found
In the terminal session: dmesg | grep tty
You should see for example ttyACM0 referenced
Use serial port terminal program CuteCom
In the terminal session: cutecom &
If not installed: sudo apt-get install cutecom
In CuteCom, change the name to your serial device
for example /dev/ttyACM0
Proof of Life - ASCIITable
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
dmesg| grep tty
cutecom &
4/10/17	
5	
9
Run commands to compile the ASCIITable example
in a terminal window
Not necessary if continuing from M-Tree setup
export CODK_DIR=~/CODK/CODK-M
source ~/CODK/zephyr/zephyr-env.sh
cd ~/CODK/CODK-M
make compile-x86
make compile-arc
Run commands to execute the ASCIITable
example in terminal window you used to compile.
cd $CODK_DIR/arc/examples/ASCIITable
make upload SERIAL_PORT=/dev/ttyACM0
May have benign error
Proof of Life - ASCIITable
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
cd $CODK_DIR/arc/examples/ASCIITable
make upload SERIAL_PORT=/dev/ttyACM0
10
Wait for 10 seconds after the upload
and select Open Device in the
CuteCom terminal
You should see this
Select Close Device and quit
Proof of Life - ASCIITable
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
4/10/17	
6	
11
This example will flash an on board LED for proof of life on
the Arduino101. This will only work on the Arduino101
because the tinyTILE does not have the LED built in.
Connect the board to the computer if necessary
Verify serial port ttyACM0 is found
In a new terminal session: dmesg | grep tty
You should see for example ttyACM0 referenced
Run commands to compile the Blink example in a
terminal window
Not necessary if continuing from M-Tree setup or
ASCIItable
export CODK_DIR=~/CODK/CODK-M
source ~/CODK/zephyr/zephyr-env.sh
Convert-Sketch - Blink
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
dmesg| grep tty
cutecom &
12
Run commands to execute the Blink example in terminal
window you used to compile: cd $CODK_DIR/arc/examples/Blink
The make convert-sketch command will create the cpp file:
make convert-sketch SKETCH=Blink.ino
Blink Makefile can be used for other examples. Edit content
and add libraries with LIBDIRS. Simple will have it empty:
LIBDIRS = $(ARDUINOIDE_DIR)/libraries/WiFi/src 
$(ARDUINOSW_DIR)/corelibs/libraries/SPI/src
The make compile will generate the executable to be
uploaded: make compile
make upload SERIAL_PORT=/dev/ttyACM0
The LED on pin 13 should turn off and on every second
Convert-Sketch – Blink
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
cd $CODK_DIR/arc/examples/Blink
make convert-sketch SKETCH=Blink.ino
make upload-arc-dfu
make compile
make upload SERIAL_PORT=/dev/ttyACM0
4/10/17	
7	
13
Run commands to execute the Blink example in new
terminal window: cd $CODK_DIR
The make project command will create the necessary files
for your project: make project PROJ_DIR=my_project
Source the generated env.sh:
source my_project/env.sh
This sets CODK_DIR, ARC_PROJ_DIR, X86_PROJ_DIR and
sources the zephyr environment at $CODK_DIR/../zephyr/
zephyr-env.sh, so you don't need to do these things now
when working in my_project; just source env.sh.
Your are now ready to code and compile in my_project/arc
and my_project/x86
Create Your Own Project
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
cd $CODK_DIR
make project PROJ_DIR=my_project
source my_project/env.sh
14
You can use the content of the Intel pattern matching engine repository in the A tree and
in the M tree, and create pattern matching application examples.
Clone the GitHub repository:
git clone https://github.com/01org/Intel-Pattern-Matching-Technology
Store the content of the repository under CODK-A/arc/libraries or CODK-M/arc/libraries.
Copy the makefile from another example sketch (for example Blink) and paste in the
pattern matching example folder.
Edit the makefile to indicate the path to Intel pattern matching library. For example
sketch a_SimplePatternMatching:
LIBDIRS = $(ARDUINOSW_DIR)/libraries/Intel-Pattern-Matching-Technology/src
Pattern Matching Library
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
4/10/17	
8	
15
From within the CODK-A directory or the CODK-M directory, run the following command
to convert a pattern matching example sketch and build the application:
cd $CODK_DIR/arc/libraries/Intel-Pattern-Matching-Technology/examples/
a_SimplePatternMatching
make convert-sketch SKETCH=a_SimplePatternMatching.ino
make compile
make upload SERIAL_PORT=/dev/ttyACM0
Pattern Matching Library
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
16
To factory reset the Arduino101/tinyTILE,
connect the board and execute the
following commands in a terminal window:
cd ~/arduino101-factory_recovery-flashpack
./flash_dfu.sh
There may be benign errors.
Factory Reset
$ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
cd ~/arduino101-factory_recovery-flashpack
./flash_dfu.sh
4/10/17	
9	
17
Installation is already done on hosts:
https://software.intel.com/en-us/node/675543
Troubleshooting

More Related Content

Similar to Intel® Curie™ Open Developer Kit (ODK): A Primer—Part 2

Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
Ben Hall
 
Running .NET on Docker
Running .NET on DockerRunning .NET on Docker
Running .NET on Docker
Ben Hall
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
Codemotion
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT Devkit
Vasily Ryzhonkov
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
Ben Hall
 
Lab Zero Lunchdown: Deploying Elixir and Phoenix Applications
Lab Zero Lunchdown: Deploying Elixir and Phoenix ApplicationsLab Zero Lunchdown: Deploying Elixir and Phoenix Applications
Lab Zero Lunchdown: Deploying Elixir and Phoenix Applications
brien_wankel
 
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Threestackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
NETWAYS
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
Michelle Holley
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
Intel® Developer Zone Россия
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
Graham NAYLOR
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
Ben Hall
 
Delivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devicesDelivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devices
Ajeet Singh Raina
 
Springboard & OpenCV
Springboard & OpenCVSpringboard & OpenCV
Springboard & OpenCV
Cruise Chen
 
OpenCV 2.2.0 for Android
OpenCV 2.2.0 for AndroidOpenCV 2.2.0 for Android
OpenCV 2.2.0 for Android
Picker Weng
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
Patrick Mizer
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the score
Rafael Dohms
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
biicode
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
PROIDEA
 
Was is Docker? Or: Docker for Software Developers
Was is Docker? Or: Docker for Software DevelopersWas is Docker? Or: Docker for Software Developers
Was is Docker? Or: Docker for Software Developers
Christian Nagel
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
Runcy Oommen
 

Similar to Intel® Curie™ Open Developer Kit (ODK): A Primer—Part 2 (20)

Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
Running .NET on Docker
Running .NET on DockerRunning .NET on Docker
Running .NET on Docker
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT Devkit
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
Lab Zero Lunchdown: Deploying Elixir and Phoenix Applications
Lab Zero Lunchdown: Deploying Elixir and Phoenix ApplicationsLab Zero Lunchdown: Deploying Elixir and Phoenix Applications
Lab Zero Lunchdown: Deploying Elixir and Phoenix Applications
 
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Threestackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
stackconf 2022: Cluster Management: Heterogeneous, Lightweight, Safe. Pick Three
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Delivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devicesDelivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devices
 
Springboard & OpenCV
Springboard & OpenCVSpringboard & OpenCV
Springboard & OpenCV
 
OpenCV 2.2.0 for Android
OpenCV 2.2.0 for AndroidOpenCV 2.2.0 for Android
OpenCV 2.2.0 for Android
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the score
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
 
Was is Docker? Or: Docker for Software Developers
Was is Docker? Or: Docker for Software DevelopersWas is Docker? Or: Docker for Software Developers
Was is Docker? Or: Docker for Software Developers
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
TechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
TechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
TechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
TechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
TechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
TechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
TechWell
 
Ma 15
Ma 15Ma 15
Ma 15
TechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
TechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
TechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
TechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
TechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
TechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
TechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
TechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
TechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
TechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
TechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
TechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
mohitd6
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
aeeva
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
narinav14
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 

Recently uploaded (20)

Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 

Intel® Curie™ Open Developer Kit (ODK): A Primer—Part 2

  • 3. 4/10/17 1 Makers and Innovators Curie Open Developer Kit IOT Dev+Test CODK •  Introduction •  First Time M-Tree Setup •  Proof of Life - ASCIITable •  Convert-sketch – Blink 2 •  Create Your Own Project •  Pattern Matching Library •  Factory Reset •  Case Study
  • 4. 4/10/17 2 3 Software … Tools … Documentation for developers to build boards based on the Intel Curie module and turn them into products. Three firmware source trees available : •  A Tree – Arduino101 firmware, Arduino core libraries and tools •  Z Tree – Zephyr firmware that targets Arduino101 as host Core •  M Tree – Mix of A and Z trees. Firmware based on Zephyr on the Quark, and user code with Arduino class libraries on the ARC The M Tree brings: •  Arduino class libraries •  Dual core option of running code on Quark •  Debugging using GDB Curie Open Developer Kit (CODK) Introduction 4 Basic functionality and speed Arduino IDE Heavy compute CODK Complex debug EnvironmentArduino IDE ISSM x86 Quark CODK EnvironmentISSM ISSM Yes No Yes No CMD Line GUI CMD Line GUI Z-tree M-tree Insufficient Sufficient Curie software decision tree •  Arduino IDE and ISSM- primary options for contestants •  Arduino IDE for basics •  ISSM for anything needing multiple cores or debugging •  CODK- still available for •  Those who want to do their own IDE integration •  Prefer command line •  Just want extra debugging
  • 5. 4/10/17 3 5 Basic functionality and speed Arduino IDE Heavy compute CODK Complex debug EnvironmentArduino IDE ISSM x86 Quark CODK EnvironmentISSM ISSM Sufficient Yes No Yes Insufficient No CMD Line GUI CMD Line GUI Z-tree M-tree MotivateMe PowerBobber Grush ASEAH NWTN HandsOn Project Breakdown •  Arduino IDE- MotivateMe and PowerBobber only needed basics •  CODK M – HandsOn could have debugged their wireless gloves •  Z-tree- Grush wanted an embedded o/s •  M-tree- ASEAH and NWTN would have used multiple cores and x86 functionality 6 Connect Arduino101/tinyTILE Arduino101 uses standard USB 2.0 A to B plug tinyTILE uses micro USB Compile Firmware/Software Setup your environment for development by running in a new terminal: export CODK_DIR=~/CODK/CODK-M source ~/CODK/zephyr/zephyr-env.sh This needs to be run in any new terminal before you compile. Change directories to the top level directory for CODK-M in the terminal session: cd ~/CODK/CODK-M The default top-level makefile builds the ASCIITable example. Compile x86 in terminal session: make compile-x86 Compile ARC in terminal session: make compile-arc First Time M Tree Setup $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh export CODK_DIR=~/CODK/CODK-M source ~/CODK/zephyr/zephyr-env.sh cd ~/CODK/CODK-M make compile-x86 make compile-arc
  • 6. 4/10/17 4 7 Update BLE firmware Each Arduino101 with factory settings will need to update BLE firmware for M-Tree by running in terminal session: make upload-ble- dfu Some error messages are benign. Loading bar should reach 100%. You only do this again on the same board if it has been reset to factory settings Flash using USB/DFU Flash x86 binary image in terminal session : make upload-x86-dfu Some error messages are benign. Loading bar should reach 100%. Flash ARC binary image in terminal session: make upload-arc-dfu Some error messages are benign. Loading bar should reach 100%. First Time M Tree Setup $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh make upload-ble-dfu make upload-x86-dfu make upload-arc-dfu 8 This example will output an ASCIITable for proof of life on the Arduino101 or the tinyTILE. Connect the board to the computer if necessary Verify serial port ttyACM0 is found In the terminal session: dmesg | grep tty You should see for example ttyACM0 referenced Use serial port terminal program CuteCom In the terminal session: cutecom & If not installed: sudo apt-get install cutecom In CuteCom, change the name to your serial device for example /dev/ttyACM0 Proof of Life - ASCIITable $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh dmesg| grep tty cutecom &
  • 7. 4/10/17 5 9 Run commands to compile the ASCIITable example in a terminal window Not necessary if continuing from M-Tree setup export CODK_DIR=~/CODK/CODK-M source ~/CODK/zephyr/zephyr-env.sh cd ~/CODK/CODK-M make compile-x86 make compile-arc Run commands to execute the ASCIITable example in terminal window you used to compile. cd $CODK_DIR/arc/examples/ASCIITable make upload SERIAL_PORT=/dev/ttyACM0 May have benign error Proof of Life - ASCIITable $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh cd $CODK_DIR/arc/examples/ASCIITable make upload SERIAL_PORT=/dev/ttyACM0 10 Wait for 10 seconds after the upload and select Open Device in the CuteCom terminal You should see this Select Close Device and quit Proof of Life - ASCIITable $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
  • 8. 4/10/17 6 11 This example will flash an on board LED for proof of life on the Arduino101. This will only work on the Arduino101 because the tinyTILE does not have the LED built in. Connect the board to the computer if necessary Verify serial port ttyACM0 is found In a new terminal session: dmesg | grep tty You should see for example ttyACM0 referenced Run commands to compile the Blink example in a terminal window Not necessary if continuing from M-Tree setup or ASCIItable export CODK_DIR=~/CODK/CODK-M source ~/CODK/zephyr/zephyr-env.sh Convert-Sketch - Blink $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh dmesg| grep tty cutecom & 12 Run commands to execute the Blink example in terminal window you used to compile: cd $CODK_DIR/arc/examples/Blink The make convert-sketch command will create the cpp file: make convert-sketch SKETCH=Blink.ino Blink Makefile can be used for other examples. Edit content and add libraries with LIBDIRS. Simple will have it empty: LIBDIRS = $(ARDUINOIDE_DIR)/libraries/WiFi/src $(ARDUINOSW_DIR)/corelibs/libraries/SPI/src The make compile will generate the executable to be uploaded: make compile make upload SERIAL_PORT=/dev/ttyACM0 The LED on pin 13 should turn off and on every second Convert-Sketch – Blink $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh cd $CODK_DIR/arc/examples/Blink make convert-sketch SKETCH=Blink.ino make upload-arc-dfu make compile make upload SERIAL_PORT=/dev/ttyACM0
  • 9. 4/10/17 7 13 Run commands to execute the Blink example in new terminal window: cd $CODK_DIR The make project command will create the necessary files for your project: make project PROJ_DIR=my_project Source the generated env.sh: source my_project/env.sh This sets CODK_DIR, ARC_PROJ_DIR, X86_PROJ_DIR and sources the zephyr environment at $CODK_DIR/../zephyr/ zephyr-env.sh, so you don't need to do these things now when working in my_project; just source env.sh. Your are now ready to code and compile in my_project/arc and my_project/x86 Create Your Own Project $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh cd $CODK_DIR make project PROJ_DIR=my_project source my_project/env.sh 14 You can use the content of the Intel pattern matching engine repository in the A tree and in the M tree, and create pattern matching application examples. Clone the GitHub repository: git clone https://github.com/01org/Intel-Pattern-Matching-Technology Store the content of the repository under CODK-A/arc/libraries or CODK-M/arc/libraries. Copy the makefile from another example sketch (for example Blink) and paste in the pattern matching example folder. Edit the makefile to indicate the path to Intel pattern matching library. For example sketch a_SimplePatternMatching: LIBDIRS = $(ARDUINOSW_DIR)/libraries/Intel-Pattern-Matching-Technology/src Pattern Matching Library $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh
  • 10. 4/10/17 8 15 From within the CODK-A directory or the CODK-M directory, run the following command to convert a pattern matching example sketch and build the application: cd $CODK_DIR/arc/libraries/Intel-Pattern-Matching-Technology/examples/ a_SimplePatternMatching make convert-sketch SKETCH=a_SimplePatternMatching.ino make compile make upload SERIAL_PORT=/dev/ttyACM0 Pattern Matching Library $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh 16 To factory reset the Arduino101/tinyTILE, connect the board and execute the following commands in a terminal window: cd ~/arduino101-factory_recovery-flashpack ./flash_dfu.sh There may be benign errors. Factory Reset $ export CODK_DIR=$(pwd) $ source ../zephyr/zephyr-env.sh cd ~/arduino101-factory_recovery-flashpack ./flash_dfu.sh
  • 11. 4/10/17 9 17 Installation is already done on hosts: https://software.intel.com/en-us/node/675543 Troubleshooting