SlideShare a Scribd company logo
Agenda 
● What is Edison? 
● Play with Edison 
● Yocto 101 
● Connect Hardware
What is Edison?
Overview 
● Tiny computer to make IoT/Wearable device 
● Dual x86 core SoC (Atom Z34XX + Quark) 
● WiFi/BT combo (BCM43340) 
– W/ chip antenna 
● No graphics at all 
– GPU has been disabled 
● Linux kernel is available 
– Forked from 3.10 yocto kernel
What you can do 
● Run Linux kernel 
– W/ WiFi+BT functions 
● Run Arduino sketch (top on Linux)
What you cannot do (So far...) 
● No BSP other than Linux 
● Play with Quark 
● Unleash GPU power 
● Hardware video enc/dec acceleration
Edison Alternatives? 
Application Processor 
based Microcontroller based
Edison Alternatives? 
Linux Video/Graphics Low-power Making your own device 
(Custom PCB) 
Arduino No No Yes Very Easy 
(AT Mega) 
mbed No No Yes Easy 
(Cortex-M devices) 
Raspberry Pi Yes Yes No 
(C) 
Almost Impossible 
(BCM2835) 
Beagle Bone Yes Yes No Difcult 
(AM335x) 
Edison Yes No Reasonable Easy
Edison is something diferent 
● Yes it's x86. 
● No Video/Graphics, but full featured Linux. 
● Not low-power as uCs, but still reasonable 
power consumption. 
– Approx. 200mA without connectivity 
– You can sleep device easily 
● Tiny integrated module, not a “dev board”
Current Buying Options 
+ + + 
For wimps 
Decent choice 
For rich people 
For 
true enthusiasts
Current Buying Options 
SparkFun Amazon Mouser Fry's Sunnyvale 
Edison 49.95 49.99 53.40@10 49.99 
Edison + Mini 
breakout 
74.95 67.84 69.00 59.99 
Edison + 
Arduino board 
99.95 N/A 99.00 84.99 
Edison + 
Sparkfun boards 
(Pre-Order) 
79.90 – 200 or 
more 
N/A N/A N/A 
GO FRY'S NOW
Why you should not buy 
“Arduino board” 
● You want “Arduino-compatible-pin-header”? 
Really? 
● Price is expensive 
– Too much components to make it “compatible” 
with Arduino shields* 
● Though Intel recommend beginners to buy this 
board, documents are crap. 
*Edison logic level is 1.8Vc
Play with Edison
Powering up
Booting 
****************************** 
PSH KERNEL VERSION: b0182727 
WR: 20104000 
****************************** 
SCU IPC: 0x800000d0 0xfffce92c 
PSH miaHOB version: TNG.B0.VVBD.0000000c 
microkernel built 23:15:13 Apr 24 2014 
******* PSH loader ******* 
PCM page cache size = 192 KB 
Cache Constraint = 0 Pages 
Arming IPC driver .. 
Adding page store pool .. 
PagestoreAddr(IMR Start Address) = 0x04899000 
pageStoreSize(IMR Size) = 0x00080000 
*** Ready to receive application *** 
U-Boot 2014.04 (Nov 01 2014 - 02:50:55) 
Watchdog enabled 
DRAM: 980.6 MiB 
MMC: tangier_sdhci: 0 
In: serial 
Out: serial 
Err: serial 
Hit any key to stop autoboot: 0
Powering up 
(Mini Breakout) 
USB Micro B 
(For Console) 
USB Micro AB 
(For OTG) 
Ext. Power 7-17V 
Li-Po 
Battery 
● 3 Methods 
– 5V via OTG 
– External DC-in 
– Li-Po Battery 
● OTG host will only 
works with DC-in 
● Li-Po will charged at 
190mA 
– i.e. Connect 190mAh 
or higher 
Edison 
Recommend external DC-In 
BE CAREFUL WITH POLARITY
Powering up 
(Bare Module) 
Edison 
VSYS 
Where VSYS is: 3.15-4.5V i.e. VBAT voltage 
Do NOT connect 5V
Booting 
****************************** 
PSH KERNEL VERSION: b0182727 
WR: 20104000 
****************************** 
SCU IPC: 0x800000d0 0xfffce92c 
PSH miaHOB version: TNG.B0.VVBD.0000000c 
microkernel built 23:15:13 Apr 24 2014 
******* PSH loader ******* 
PCM page cache size = 192 KB 
Cache Constraint = 0 Pages 
Arming IPC driver .. 
Adding page store pool .. 
PagestoreAddr(IMR Start Address) = 0x04899000 
pageStoreSize(IMR Size) = 0x00080000 
*** Ready to receive application *** 
U-Boot 2014.04 (Nov 01 2014 - 02:50:55) 
Watchdog enabled 
DRAM: 980.6 MiB 
MMC: tangier_sdhci: 0 
In: serial 
Out: serial 
Err: serial 
Hit any key to stop autoboot: 0
Boot process 
Trusted Boot ROM U-Boot Kernel
Working with WiFi 
● Intel ofers “quick setup” script called 
“confgure_edison” 
– Many people use this script. 
● Intel also ofers connection manager daemon 
called “ConnMan” 
– Many people think it is more difficult to handle, 
which is not. 
– Easy to use, and scalable.
Quick Start ConnMan 
~# systemctl start connman 
~# systemctl start wpa_supplicant 
~# connmanctl 
connmanctl> enable wifi 
connmanctl> scan wifi 
connmanctl> agent on 
connmanctl> connect wifi_xxxxxxxxxxxx_xxx_xxx
Quick Start ConnMan 
● Make sure connman and wpa_supplicant is 
working 
● connmanctl is a tiny CLI to full access 
connman API
ConnMan Overview 
● Connection manager developed by Intel 
● It was a part of Moblin/MeeGo project 
● Fully modular system 
● Lightweight 
● Designed to be running on embedded device, 
tablet, phone.
ConnMan API 
● All APIs are D-Bus interface 
● Manager API 
● Technology API 
● Service API 
● Session API 
● Agent API 
● VPN
Technology API 
● Enable 
● Disable 
– rfkill 
● Settings 
● Scan 
– AP Scan 
● Tethering 
– Edison supports 
tethering!
Service API 
● Connect 
● Disconnect 
● Get details 
– SSID 
– Strength
Session API 
WiFi 
Service 
WiFi 
Service 
LTE 
Service 
LTE 
Service 
Ether 
Service 
Keep one Session while 
using many Services
Agent API 
● API layer for UI 
● ConnMan requests 
passphrase input via 
Agent API 
Example: 
Requesting a passphrase for WPA2 network 
RequestInput("/service1", 
{ "Passphrase" : { "Type" : "psk", 
"Requirement" : "mandatory" 
} 
} ==> { "Passphrase" : "secret123" }
Quick Start SSH 
vi /lib/systemd/system/sshd.socket 
[Unit] 
Conflicts=sshd.service 
[Socket] 
ExecStartPre=/bin/mkdir -p /var/run/sshd 
ListenStream=22 
# restrict access to wired access for security reasons 
# comment this line to remove restriction 
BindToDevice=usb0 <-- Comment here 
Accept=yes 
[Install] 
WantedBy=sockets.target
Yocto 101 
It's not an embedded Linux distribution 
– it creates a custom one for you
Overview 
● Build tool to create your own distribution 
– Build your Toolchain 
– Build your Bootloader/Kernel 
– Build your RootFS 
● Merged with OpenEmbedded 
– OE-Core/Yocto 
● Using BitBake 
– Embedded-target version of Portage(Gentoo)
Architecture
Workfow - Recipes 
Recipe 
● Source codes? 
● Config files? 
● Patches? 
● Compile options? 
● Target(s)? 
Build Package
Workfow - Packages 
Meta Layer 
Packages 
Meta Layer 
Meta Layer Your Repository
Workfow - Deploy 
Packages 
Kernel 
zImage 
U-Boot 
u-boot.bin 
RootFS 
(chroot-ed) 
Cross 
Toolchain 
Deploy 
Deploy 
rootfs 
tar.gz 
Deploy 
Here also use a recipe 
called “image recipe”
Workfow - Cross build 
Packages 
(for Host) 
Recipes 
(for Host) 
Cross 
Toolchain 
Packages 
(for Target) 
Recipes 
(for Target) 
Target 
Images
What is Poky? 
● Poky is the “reference distribution” of Yocto 
– You may fork poky to create your own 
● Basic recipes 
– Yocto reference kernel 
– OE-Core 
– Basic image recipes 
● Reference setup 
– Determine preferred version for each recipes 
– Determine preferred init 
● sysvinit
Quick Start Yocto - Prerequisite 
● Host Linux build machine 
– I use Ubuntu 14.04 LTS 
– Actually “Intel-flavored-poky” supports other 
build machine. (i.e. Windows and Mac) But I 
would not recommend. 
● “Edison Linux source fles” from ofcial site 
● $ sudo apt-get install build-essential git diffstat gawk chrpath 
texinfo libtool gcc-multilib
Quick Start Yocto 
Extract Edison Linux source fles then, 
$ cd edison-src 
$ ./device-software/setup.sh 
$ source poky/oe-init-build-env 
$ bitbake edison-image
Quick Start Yocto 
3-4 hours later.... 
edison-src$ ls build/tmp/deploy/images/edison/ 
bzImage modules-edison.tgz 
bzImage--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.bin README_- 
_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt 
bzImage-edison.bin u-boot.bin 
edison-image-edison-20141101085834.hddimg u-boot-edison-2014.04-1- 
r0.bin 
edison-image-edison-20141101085834.rootfs.ext4 u-boot-edison-2014.04-1- 
r0.img 
edison-image-edison-20141101085834.rootfs.manifest u-boot-edison.bin 
edison-image-edison.ext4 u-boot-edison.img 
edison-image-edison.hddimg u-boot-envs 
edison-image-edison.manifest u-boot.img 
modules--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.tgz 
Hooray!
Quick Start Yocto 
To fash image to Edison 
Connect Edison (via OTG) then, 
$ device-software/utils/flash/postBuild.sh 
$ build/toFlash/flashall.sh
Poky-Edison? 
● Intel-forked version of poky 
● Using systemd (Yes seriously) instead of 
sysvinit
Connect Hardware
Basic Interfaces 
● GPIO 
– Digital I/O, PWM 
● I2C 
– Edison has 2 I2C port. 
● SPI 
● UART 
– Edison has 2 UART port, but 1 for debugging 
normally. 
REMEMBER: Edison logic level is 1.8V!!
Additional Interfaces 
● I2S 
– For ADC/DAC (audio codecs) 
● SD 
– You need level shifter :( 
● USB 
REMEMBER: Edison logic level is 1.8V!!
How to use them? 
● Linux standard methods 
– User space 
– Kernel module 
● MRAA(+UPM) (for basic interfaces) 
– A part of Intel iot-devkit project (Galileo) 
● Arduino Library (for basic interfaces) 
– Need to hack around to use other than Arduino 
board. 
● Quark bare metal 
– Not available so far
Using GPIO 
● sysfs 
– Standard method 
– Used by MRAA and Arduino lib 
● PCI device 
– Fast path to read/write 
– Example included in Intel-Arduino source 
● Kernel 
– True interrupt
Quick Start MRAA (C) 
#include "mraa.h" 
void main() { 
mraa_gpio_context gpio; 
mraa_init(); 
gpio = mraa_gpio_init(8); 
mraa_gpio_dir(gpio, MRAA_GPIO_OUT); 
mraa_gpio_write(gpio, 1); 
mraa_gpio_close(gpio); 
}
Quick Start MRAA (JS) 
var m = require('mraa'); 
var myLed = new m.Gpio(13); 
myLed.dir(m.DIR_OUT); 
myLed.write(1);

More Related Content

What's hot

Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
codebits
 
Esp8266 NodeMCU
Esp8266 NodeMCUEsp8266 NodeMCU
Esp8266 NodeMCU
roadster43
 
A Quick Introduction to Programmable Logic
A Quick Introduction to Programmable LogicA Quick Introduction to Programmable Logic
A Quick Introduction to Programmable Logic
Omer Kilic
 
Programming esp8266
Programming esp8266Programming esp8266
Programming esp8266
Baoshi Zhu
 
Thotcon2013
Thotcon2013Thotcon2013
Thotcon2013
Philip Polstra
 
Arduino i rremote 1112
Arduino i rremote 1112Arduino i rremote 1112
Arduino i rremote 1112
馬 萬圳
 
Arduino & NodeMcu
Arduino & NodeMcuArduino & NodeMcu
Arduino & NodeMcu
Guhan Ganesan
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kit
Research Design Lab
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon Technology
Omer Kilic
 
Interacting with Intel Edison
Interacting with Intel EdisonInteracting with Intel Edison
Interacting with Intel Edison
FITC
 
IoT: Internet of Things with Python
IoT: Internet of Things with PythonIoT: Internet of Things with Python
IoT: Internet of Things with Python
Lelio Campanile
 
Introduction to beagle board
Introduction to beagle boardIntroduction to beagle board
Introduction to beagle board
Amit Karpe
 
lesson1 - Getting Started with ESP8266
lesson1 -  Getting Started with ESP8266lesson1 -  Getting Started with ESP8266
lesson1 - Getting Started with ESP8266
Elaf A.Saeed
 
Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?
Saúl Ibarra Corretgé
 
Beagle board
Beagle boardBeagle board
Beagle board
Kondaveeti Arun Gopal
 
Beagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009bBeagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009b
Michael Hallak-Stamler
 
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Raul Chong
 
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-ioHome automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Tran Minh Nhut
 
lesson2 - Nodemcu course - NodeMCU dev Board
 lesson2 - Nodemcu course - NodeMCU dev Board lesson2 - Nodemcu course - NodeMCU dev Board
lesson2 - Nodemcu course - NodeMCU dev Board
Elaf A.Saeed
 
Asterisk Xenified
Asterisk XenifiedAsterisk Xenified
Asterisk Xenified
Saúl Ibarra Corretgé
 

What's hot (20)

Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
 
Esp8266 NodeMCU
Esp8266 NodeMCUEsp8266 NodeMCU
Esp8266 NodeMCU
 
A Quick Introduction to Programmable Logic
A Quick Introduction to Programmable LogicA Quick Introduction to Programmable Logic
A Quick Introduction to Programmable Logic
 
Programming esp8266
Programming esp8266Programming esp8266
Programming esp8266
 
Thotcon2013
Thotcon2013Thotcon2013
Thotcon2013
 
Arduino i rremote 1112
Arduino i rremote 1112Arduino i rremote 1112
Arduino i rremote 1112
 
Arduino & NodeMcu
Arduino & NodeMcuArduino & NodeMcu
Arduino & NodeMcu
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kit
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon Technology
 
Interacting with Intel Edison
Interacting with Intel EdisonInteracting with Intel Edison
Interacting with Intel Edison
 
IoT: Internet of Things with Python
IoT: Internet of Things with PythonIoT: Internet of Things with Python
IoT: Internet of Things with Python
 
Introduction to beagle board
Introduction to beagle boardIntroduction to beagle board
Introduction to beagle board
 
lesson1 - Getting Started with ESP8266
lesson1 -  Getting Started with ESP8266lesson1 -  Getting Started with ESP8266
lesson1 - Getting Started with ESP8266
 
Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?
 
Beagle board
Beagle boardBeagle board
Beagle board
 
Beagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009bBeagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009b
 
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
 
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-ioHome automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
 
lesson2 - Nodemcu course - NodeMCU dev Board
 lesson2 - Nodemcu course - NodeMCU dev Board lesson2 - Nodemcu course - NodeMCU dev Board
lesson2 - Nodemcu course - NodeMCU dev Board
 
Asterisk Xenified
Asterisk XenifiedAsterisk Xenified
Asterisk Xenified
 

Similar to How to Hack Edison

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
Sulamita Garcia
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
Intel® Developer Zone Россия
 
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
 
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
 
Innovation with pcDuino
Innovation with pcDuinoInnovation with pcDuino
Innovation with pcDuino
Jingfeng Liu
 
Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry Pi
LloydMoore
 
Let's begin io t with $10
Let's begin io t with $10Let's begin io t with $10
Let's begin io t with $10
Makoto Takahashi
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
Cliff Samuels Jr.
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
Jingfeng Liu
 
Hardware hacking
Hardware hackingHardware hacking
Hardware hacking
Tavish Naruka
 
ChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPad
AndrewWright224
 
ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220
AndrewWright224
 
Raspberry pi on java 20121110
Raspberry pi on java 20121110Raspberry pi on java 20121110
Raspberry pi on java 20121110
Masafumi Ohta
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Luki B. Subekti
 
Arduino
ArduinoArduino
Arduino
Jerin John
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboard
yeokm1
 
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hoodEmbedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
EmbeddedFest
 
Embedded application development
Embedded application developmentEmbedded application development
Embedded application development
Aakash Raj
 
An introduction to Arduino
An introduction to ArduinoAn introduction to Arduino
An introduction to Arduino
Emertxe Information Technologies Pvt Ltd
 
arduino.pdf
arduino.pdfarduino.pdf
arduino.pdf
Gurumurthy B R
 

Similar to How to Hack Edison (20)

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
 
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
 
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!
 
Innovation with pcDuino
Innovation with pcDuinoInnovation with pcDuino
Innovation with pcDuino
 
Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry Pi
 
Let's begin io t with $10
Let's begin io t with $10Let's begin io t with $10
Let's begin io t with $10
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
 
Hardware hacking
Hardware hackingHardware hacking
Hardware hacking
 
ChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPad
 
ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220
 
Raspberry pi on java 20121110
Raspberry pi on java 20121110Raspberry pi on java 20121110
Raspberry pi on java 20121110
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Arduino
ArduinoArduino
Arduino
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboard
 
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hoodEmbedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
 
Embedded application development
Embedded application developmentEmbedded application development
Embedded application development
 
An introduction to Arduino
An introduction to ArduinoAn introduction to Arduino
An introduction to Arduino
 
arduino.pdf
arduino.pdfarduino.pdf
arduino.pdf
 

Recently uploaded

Figma AI Design Generator_ In-Depth Review.pdf
Figma AI Design Generator_ In-Depth Review.pdfFigma AI Design Generator_ In-Depth Review.pdf
Figma AI Design Generator_ In-Depth Review.pdf
Management Institute of Skills Development
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
digitalxplive
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
Priyanka Aash
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Nicolás Lopéz
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
shyamraj55
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
Pigging Unit Lubricant Oil Blending Plant
Pigging Unit Lubricant Oil Blending PlantPigging Unit Lubricant Oil Blending Plant
Pigging Unit Lubricant Oil Blending Plant
LINUS PROJECTS (INDIA)
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
The importance of Quality Assurance for ICT Standardization
The importance of Quality Assurance for ICT StandardizationThe importance of Quality Assurance for ICT Standardization
The importance of Quality Assurance for ICT Standardization
Axel Rennoch
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
moinahousna
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 

Recently uploaded (20)

Figma AI Design Generator_ In-Depth Review.pdf
Figma AI Design Generator_ In-Depth Review.pdfFigma AI Design Generator_ In-Depth Review.pdf
Figma AI Design Generator_ In-Depth Review.pdf
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
The Rise of AI in Cybersecurity How Machine Learning Will Shape Threat Detect...
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
Pigging Unit Lubricant Oil Blending Plant
Pigging Unit Lubricant Oil Blending PlantPigging Unit Lubricant Oil Blending Plant
Pigging Unit Lubricant Oil Blending Plant
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
The importance of Quality Assurance for ICT Standardization
The importance of Quality Assurance for ICT StandardizationThe importance of Quality Assurance for ICT Standardization
The importance of Quality Assurance for ICT Standardization
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 

How to Hack Edison

  • 1. Agenda ● What is Edison? ● Play with Edison ● Yocto 101 ● Connect Hardware
  • 3. Overview ● Tiny computer to make IoT/Wearable device ● Dual x86 core SoC (Atom Z34XX + Quark) ● WiFi/BT combo (BCM43340) – W/ chip antenna ● No graphics at all – GPU has been disabled ● Linux kernel is available – Forked from 3.10 yocto kernel
  • 4. What you can do ● Run Linux kernel – W/ WiFi+BT functions ● Run Arduino sketch (top on Linux)
  • 5. What you cannot do (So far...) ● No BSP other than Linux ● Play with Quark ● Unleash GPU power ● Hardware video enc/dec acceleration
  • 6. Edison Alternatives? Application Processor based Microcontroller based
  • 7. Edison Alternatives? Linux Video/Graphics Low-power Making your own device (Custom PCB) Arduino No No Yes Very Easy (AT Mega) mbed No No Yes Easy (Cortex-M devices) Raspberry Pi Yes Yes No (C) Almost Impossible (BCM2835) Beagle Bone Yes Yes No Difcult (AM335x) Edison Yes No Reasonable Easy
  • 8. Edison is something diferent ● Yes it's x86. ● No Video/Graphics, but full featured Linux. ● Not low-power as uCs, but still reasonable power consumption. – Approx. 200mA without connectivity – You can sleep device easily ● Tiny integrated module, not a “dev board”
  • 9. Current Buying Options + + + For wimps Decent choice For rich people For true enthusiasts
  • 10. Current Buying Options SparkFun Amazon Mouser Fry's Sunnyvale Edison 49.95 49.99 53.40@10 49.99 Edison + Mini breakout 74.95 67.84 69.00 59.99 Edison + Arduino board 99.95 N/A 99.00 84.99 Edison + Sparkfun boards (Pre-Order) 79.90 – 200 or more N/A N/A N/A GO FRY'S NOW
  • 11. Why you should not buy “Arduino board” ● You want “Arduino-compatible-pin-header”? Really? ● Price is expensive – Too much components to make it “compatible” with Arduino shields* ● Though Intel recommend beginners to buy this board, documents are crap. *Edison logic level is 1.8Vc
  • 14. Booting ****************************** PSH KERNEL VERSION: b0182727 WR: 20104000 ****************************** SCU IPC: 0x800000d0 0xfffce92c PSH miaHOB version: TNG.B0.VVBD.0000000c microkernel built 23:15:13 Apr 24 2014 ******* PSH loader ******* PCM page cache size = 192 KB Cache Constraint = 0 Pages Arming IPC driver .. Adding page store pool .. PagestoreAddr(IMR Start Address) = 0x04899000 pageStoreSize(IMR Size) = 0x00080000 *** Ready to receive application *** U-Boot 2014.04 (Nov 01 2014 - 02:50:55) Watchdog enabled DRAM: 980.6 MiB MMC: tangier_sdhci: 0 In: serial Out: serial Err: serial Hit any key to stop autoboot: 0
  • 15. Powering up (Mini Breakout) USB Micro B (For Console) USB Micro AB (For OTG) Ext. Power 7-17V Li-Po Battery ● 3 Methods – 5V via OTG – External DC-in – Li-Po Battery ● OTG host will only works with DC-in ● Li-Po will charged at 190mA – i.e. Connect 190mAh or higher Edison Recommend external DC-In BE CAREFUL WITH POLARITY
  • 16. Powering up (Bare Module) Edison VSYS Where VSYS is: 3.15-4.5V i.e. VBAT voltage Do NOT connect 5V
  • 17. Booting ****************************** PSH KERNEL VERSION: b0182727 WR: 20104000 ****************************** SCU IPC: 0x800000d0 0xfffce92c PSH miaHOB version: TNG.B0.VVBD.0000000c microkernel built 23:15:13 Apr 24 2014 ******* PSH loader ******* PCM page cache size = 192 KB Cache Constraint = 0 Pages Arming IPC driver .. Adding page store pool .. PagestoreAddr(IMR Start Address) = 0x04899000 pageStoreSize(IMR Size) = 0x00080000 *** Ready to receive application *** U-Boot 2014.04 (Nov 01 2014 - 02:50:55) Watchdog enabled DRAM: 980.6 MiB MMC: tangier_sdhci: 0 In: serial Out: serial Err: serial Hit any key to stop autoboot: 0
  • 18. Boot process Trusted Boot ROM U-Boot Kernel
  • 19. Working with WiFi ● Intel ofers “quick setup” script called “confgure_edison” – Many people use this script. ● Intel also ofers connection manager daemon called “ConnMan” – Many people think it is more difficult to handle, which is not. – Easy to use, and scalable.
  • 20. Quick Start ConnMan ~# systemctl start connman ~# systemctl start wpa_supplicant ~# connmanctl connmanctl> enable wifi connmanctl> scan wifi connmanctl> agent on connmanctl> connect wifi_xxxxxxxxxxxx_xxx_xxx
  • 21. Quick Start ConnMan ● Make sure connman and wpa_supplicant is working ● connmanctl is a tiny CLI to full access connman API
  • 22. ConnMan Overview ● Connection manager developed by Intel ● It was a part of Moblin/MeeGo project ● Fully modular system ● Lightweight ● Designed to be running on embedded device, tablet, phone.
  • 23. ConnMan API ● All APIs are D-Bus interface ● Manager API ● Technology API ● Service API ● Session API ● Agent API ● VPN
  • 24. Technology API ● Enable ● Disable – rfkill ● Settings ● Scan – AP Scan ● Tethering – Edison supports tethering!
  • 25. Service API ● Connect ● Disconnect ● Get details – SSID – Strength
  • 26. Session API WiFi Service WiFi Service LTE Service LTE Service Ether Service Keep one Session while using many Services
  • 27. Agent API ● API layer for UI ● ConnMan requests passphrase input via Agent API Example: Requesting a passphrase for WPA2 network RequestInput("/service1", { "Passphrase" : { "Type" : "psk", "Requirement" : "mandatory" } } ==> { "Passphrase" : "secret123" }
  • 28. Quick Start SSH vi /lib/systemd/system/sshd.socket [Unit] Conflicts=sshd.service [Socket] ExecStartPre=/bin/mkdir -p /var/run/sshd ListenStream=22 # restrict access to wired access for security reasons # comment this line to remove restriction BindToDevice=usb0 <-- Comment here Accept=yes [Install] WantedBy=sockets.target
  • 29. Yocto 101 It's not an embedded Linux distribution – it creates a custom one for you
  • 30. Overview ● Build tool to create your own distribution – Build your Toolchain – Build your Bootloader/Kernel – Build your RootFS ● Merged with OpenEmbedded – OE-Core/Yocto ● Using BitBake – Embedded-target version of Portage(Gentoo)
  • 32. Workfow - Recipes Recipe ● Source codes? ● Config files? ● Patches? ● Compile options? ● Target(s)? Build Package
  • 33. Workfow - Packages Meta Layer Packages Meta Layer Meta Layer Your Repository
  • 34. Workfow - Deploy Packages Kernel zImage U-Boot u-boot.bin RootFS (chroot-ed) Cross Toolchain Deploy Deploy rootfs tar.gz Deploy Here also use a recipe called “image recipe”
  • 35. Workfow - Cross build Packages (for Host) Recipes (for Host) Cross Toolchain Packages (for Target) Recipes (for Target) Target Images
  • 36. What is Poky? ● Poky is the “reference distribution” of Yocto – You may fork poky to create your own ● Basic recipes – Yocto reference kernel – OE-Core – Basic image recipes ● Reference setup – Determine preferred version for each recipes – Determine preferred init ● sysvinit
  • 37. Quick Start Yocto - Prerequisite ● Host Linux build machine – I use Ubuntu 14.04 LTS – Actually “Intel-flavored-poky” supports other build machine. (i.e. Windows and Mac) But I would not recommend. ● “Edison Linux source fles” from ofcial site ● $ sudo apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib
  • 38. Quick Start Yocto Extract Edison Linux source fles then, $ cd edison-src $ ./device-software/setup.sh $ source poky/oe-init-build-env $ bitbake edison-image
  • 39. Quick Start Yocto 3-4 hours later.... edison-src$ ls build/tmp/deploy/images/edison/ bzImage modules-edison.tgz bzImage--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.bin README_- _DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt bzImage-edison.bin u-boot.bin edison-image-edison-20141101085834.hddimg u-boot-edison-2014.04-1- r0.bin edison-image-edison-20141101085834.rootfs.ext4 u-boot-edison-2014.04-1- r0.img edison-image-edison-20141101085834.rootfs.manifest u-boot-edison.bin edison-image-edison.ext4 u-boot-edison.img edison-image-edison.hddimg u-boot-envs edison-image-edison.manifest u-boot.img modules--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.tgz Hooray!
  • 40. Quick Start Yocto To fash image to Edison Connect Edison (via OTG) then, $ device-software/utils/flash/postBuild.sh $ build/toFlash/flashall.sh
  • 41. Poky-Edison? ● Intel-forked version of poky ● Using systemd (Yes seriously) instead of sysvinit
  • 43. Basic Interfaces ● GPIO – Digital I/O, PWM ● I2C – Edison has 2 I2C port. ● SPI ● UART – Edison has 2 UART port, but 1 for debugging normally. REMEMBER: Edison logic level is 1.8V!!
  • 44. Additional Interfaces ● I2S – For ADC/DAC (audio codecs) ● SD – You need level shifter :( ● USB REMEMBER: Edison logic level is 1.8V!!
  • 45. How to use them? ● Linux standard methods – User space – Kernel module ● MRAA(+UPM) (for basic interfaces) – A part of Intel iot-devkit project (Galileo) ● Arduino Library (for basic interfaces) – Need to hack around to use other than Arduino board. ● Quark bare metal – Not available so far
  • 46. Using GPIO ● sysfs – Standard method – Used by MRAA and Arduino lib ● PCI device – Fast path to read/write – Example included in Intel-Arduino source ● Kernel – True interrupt
  • 47. Quick Start MRAA (C) #include "mraa.h" void main() { mraa_gpio_context gpio; mraa_init(); gpio = mraa_gpio_init(8); mraa_gpio_dir(gpio, MRAA_GPIO_OUT); mraa_gpio_write(gpio, 1); mraa_gpio_close(gpio); }
  • 48. Quick Start MRAA (JS) var m = require('mraa'); var myLed = new m.Gpio(13); myLed.dir(m.DIR_OUT); myLed.write(1);