SlideShare a Scribd company logo
1 of 11
Download to read offline
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 DockerBen 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 DevkitVasily 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 ProductionBen 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 Applicationsbrien_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 ThreeNETWAYS
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabMichelle Holley
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instrumentsGraham 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 DeploymentsBen 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 devicesAjeet Singh Raina
 
Springboard & OpenCV
Springboard & OpenCVSpringboard & OpenCV
Springboard & OpenCVCruise Chen
 
OpenCV 2.2.0 for Android
OpenCV 2.2.0 for AndroidOpenCV 2.2.0 for Android
OpenCV 2.2.0 for AndroidPicker Weng
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the scoreRafael 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 2014biicode
 
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 LachPROIDEA
 
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 DevelopersChristian Nagel
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshopRuncy 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 RecoveringTechWell
 
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 ArchitectureTechWell
 
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 StartTechWell
 
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 StrategyTechWell
 
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 SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
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 SanityTechWell
 
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 StrategyTechWell
 
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 DevOpsTechWell
 
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—LeadershipTechWell
 
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 TeamsTechWell
 
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 GameTechWell
 
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 TeamsTechWell
 
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 ImplementationTechWell
 
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 ProcessTechWell
 
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 AutomateTechWell
 
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 SuccessTechWell
 
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 TransformationTechWell
 

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

Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Andrea Goulet
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfkalichargn70th171
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanNeo4j
 
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...CloudMetic
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfMehmet Akar
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Lisi Hocke
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConNatan Silnitsky
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbankkasambamuno
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksJinanKordab
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...OnePlan Solutions
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 

Recently uploaded (20)

Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 

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