Intel® Edison

Getting started:

Shortest instruction getting Intel Edison up an running without any troubles:
use Windows, both USB, format Edison drive FAT32, PuTTy on USB Serial Port 115200, upgrade Yocto 


Do NOT go the hard way doing the connection setup via MacOS … drivers on Microsoft Windows are running well and
you do get easily an PuTTY connection up and running, as stated connect both USB cables!!
Using Intel Edison Mini Breakout Board:
J3 – brings USB Serial Port (in my case COM18) connects internal to Edison UART2, this is one you connect with
PuTTY (serial,115200 Baud) to get a remote console!!
J16 – brings power and Intel Edison Virtual Com Port (in my case COM17)

Next make sure you get the latest Edison Yocto image installed on Edison! (as of today version 68)
Before making an OS upgrade – ensure that the shared Edison volume is formatted FAT32 (factory is FAT only) !
Before running „reboot ota“ ensure the shared Edison drive is safely unmounted from any Windows

you can check version cat /etc/version or configure_edison –version
I started with build 56, Poky 1.6 Edison (factory) upgraded to build 68

>>> with these tricks, welcome to the new Intel Edison world!

now you can configure_edison –setup, the option –setup is not present before doing an successful upgrade

hint: if you are on build >=68 you can activate the Wifi AP mode (see section down) and run the configuration 
via webconsole<your Edison IP address>

Turning Edison Wifi remote SSH on:

First make sure you have set Wifi and root pwd  running configure_edison –setup
usb0 on 192,168.x.15 and wlan0 on 192.168.x.y can’t be up together link (external)
to fix: vi /etc/systemd/system/
and change both both occurrences of to, reboot -h 0!

>>> with these tricks, welcome to remote access via ssh root@<your Edison IP address>
>>> even more you can now access from Edison the WWW – isn’t that magic 😉

Turning Edison into an WLAN/WiFi Accesspoint:

link (external) – confirmed working as well just press the power button >4sec & <7sec sec and you will
find a hotspot with the name you have given your Edison during setup, use the given root pwd
to get a connection. My Edison can now be reached e.g. from smartphone via SSH<your Edison IP address>
(notice different network setting as with DHCP above) ATTENTION: will stay in AP mode after reboot!

You want manuelly to switch back from AP mode in Client mode of Wifi? simply run configure_edison –setup again

systemctl stop hostapd
systemctl disable hostapd
systemctl enable wpa_supplicant
systemctl start wpa_supplicant
wpa_cli reconfigure
wpa_cli select_network wlan0
udhcpc -i wlan0

hint: if you want to understand more about the power switch settings check this link (external)

Turning Edison into an iBeacon:

rfkill unblock bluetooth
hciconfig hci0 up
hcitool lescan
LE Scan …
63:58:79:E0:17:7C (unknown) In this example an Estimote Beacon was found!
63:58:79:E0:17:7C (unknown)
Ctrl+C Stop Scan

OK Bluetooth Low Energy based on blueZ (5.18) is up and running!

hciconfig hci0 leadv >> now you can discover with any BLE explorer an „BlueZ 5.18“ service, which you can’t connect to yet
hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 63 6F 3F 8F 64 91 4B EE 95 F7 D8 CC 64 A8 63 B5 00 00 01 00 C8 >> exposing and iBeacon does not yet work – anybody out there who tried it?

Update – this tool is quite handy, it will measure also RSSI value changes on BLE devices!

[bluetooth]# scan on (starts scan of Bluetooth devices 2.0 up to 4.0 BLE devices!)

[NEW] Device 56:F1:16:6B:51:A8 RSSI: -55
[CHG] Device 56:F1:16:6B:51:A8 RSSI: -38
[bluetooth]# scan off
[bluetooth]# connect 56:F1:16:6B:51:A8  
Attempting to connect to 56:F1:16:6B:51:A8
[CHG] Device 56:F1:16:6B:51:A8 Connected: yes
Connection successful
[CHG] Device 56:F1:16:6B:51:A8 UUIDs: >>> will discover all BLE services!
[CHG] Device 56:F1:16:6B:51:A8 Appearance: 0x0040
[CHG] Device 56:F1:16:6B:51:A8 Icon: phone

TRICK: to get on build 68 an stable connection do the BLE connection first
hcitool lecc 56:F1:16:6B:51:A8

Final update – noble.js, getting TI SensorTag running first, next will be blueIOT itself … stay tuned!

upgrade to Axel_T’s repro, which is non official repository, but of great help!

vi /etc/opkg/base-feeds.conf (insert only following lines)

src/gz all
src/gz edison
src/gz core2-32

opkg update
opkg install bluez5-dev

npm install -g async – required by noble.js
npm install noble – try: node advertisement-discovery.js
npm install bleno – try: node test-ibeacon.js
npm install sensortag – try: node test.js

You can use also cylon.js based on node.js – it is requisition an installed noble.js too:

see section cylon.js install add one more step:

npm install cylon-ble

chance uuid: ‚0007807f5bc0‘ to your BLE device in device-information.js

root@fablab:~/node_modules/cylon-ble/examples# node device-information.js

I, [2014-11-04T21:20:46.163Z]  INFO — : Initializing connections.
I, [2014-11-04T21:20:46.178Z]  INFO — : Initializing connection ‚bluetooth‘.
D, [2014-11-04T21:20:46.182Z] DEBUG — : Loading adaptor ‚ble‘.
I, [2014-11-04T21:20:46.452Z]  INFO — : Initializing devices.
I, [2014-11-04T21:20:46.453Z]  INFO — : Initializing device ‚deviceInfo‘.
D, [2014-11-04T21:20:46.456Z] DEBUG — : Loading driver ‚ble-device-information‘.
I, [2014-11-04T21:20:46.465Z]  INFO — : Starting connections.
I, [2014-11-04T21:20:46.470Z]  INFO — : Connecting to ‚bluetooth‘.
I, [2014-11-04T21:20:47.322Z]  INFO — : Starting devices.
I, [2014-11-04T21:20:47.323Z]  INFO — : Starting device ‚deviceInfo‘.
I, [2014-11-04T21:20:47.328Z]  INFO — : Working.

Speeding up with things … next is:

Node-Red installation:

check for latest release and installation – link (external)

wget –no-check-certificate
cd node-red-0.9.0
npm install –production
cd nodes
wget –no-check-certificate
gunzip 0.8.0.tar.gz
tar xvf 0.8.0.tar

cd ..

root@fablab:~/node-red-0.9.0# node red.js

Welcome to Node-RED

19 Oct 16:19:36 – [red] Version: 0.9.0
19 Oct 16:19:36 – [red] Loading palette nodes
19 Oct 16:19:41 – [26-rawserial.js] Info : only really needed for Windows boxes without serialport npm module installed.
19 Oct 16:19:42 – ——————————————
19 Oct 16:19:42 – [red] Failed to register 39 node types
19 Oct 16:19:42 – [red] Run with -v for details
19 Oct 16:19:42 – ——————————————
19 Oct 16:19:42 – [red] Server now running at
19 Oct 16:19:42 – [red] Flows file not found : flows_fablab.json

>>> big milestone – Node-Red is running on Edison!

You might want to add additional modules:

cd nodes
npm install node-stringprep firmata serialport sensortag wemo noble



Java(™) on Edison:

You must accept the Oracle Binary Code License Agreement for Java SE to download this software!

mkdir bin
mkdir java

(next command all in one single line! download take couple minutes)

– CHOICE THIS ONE – Java SE Development Kit 7 Downloads:

wget –no-check-certificate –no-cookies – –header „Cookie: oraclelicense=accept-securebackup-cookie“
tar -xvzf  jdk-7u67-linux-i586.tar.gz

cd jdk1.7.0_67/bin
./java -version

root@fablab:~/jdk1.7.0_67/bin# ./java -version
java version „1.7.0_67“
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) Client VM (build 24.65-b04, mixed mode)

– OR THIS ONE – Java SE Development Kit 8 Downloads:

wget –no-check-certificate –no-cookies – –header „Cookie: oraclelicense=accept-securebackup-cookie“
tar -xvzf  jdk-8u25-linux-i586.tar.gz

cd jdk1.8.0_25/bin
./java -version

root@fablab:~/jdk1.8.0_25/bin# ./java -version
java version „1.8.0_25“
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) Client VM (build 25.25-b02, mixed mode)

make sure you complete installation while putting bin in your path/profile!

Start Coding:

The Intel Development Kit for IoT (IoTDK) is a complete solution to create and test applications for Intel IoT platforms like the Intel® Galileo and Edison maker boards – link (external)

systemctl enable xdk-daemon
systemctl restart xdk-daemon

Installing MRAA & UPM Library on Intel IoT Platform

echo „src maa-upm“ > /etc/opkg/intel-iotdk.conf
opkg update
opkg upgrade

The first „blink“ – using mini breakout board I/Os

cut and past
into Blink_IO.js
root@fablab:~# node Blink_IO.js

MRAA Version: v0.5.1-18-ge5c3e49

Your frist LED should be flashing!! btw connect the LED: short leg of LED to J19 pin 3 and long leg of LED to J17 pin 14

TIP: mraa/ at master · intel-iot-devkit/mraa · GitHub shows the mapping of pins:
PIN 13 var myLed = new m.Gpio(13); in the code example equals J17 pin 14 … simple like this

Starting with Cylon:

Find installation here – link (external)

npm install cylon-intel-iot
npm install cylon-firmata
npm install cylon-gpio
npm install cylon-i2c

github – link (external)

The first „I2C“ – using mini breakout board I/Os

copy code into bmp.js file

var Cylon = require(‚cylon‘);

connection: { name: ‚edison‘, adaptor: ‚intel-iot‘ },
device:{name:’bmp180′, driver:’bmp180′},

work: function(my) {
my.bmp180.getTemperature(function(err, val) {
if(err) console.log(err);
else {
console.log(„getTemperature call:“);
console.log(„\tTemp: “ + val.temp + “ C“);

after(1..seconds(), function() {
my.bmp180.getPressure(1, function(err, val) {
if(err) console.log(err);
else {
console.log(„getPressure call:“);
console.log(„\tTemperature: “ + val.temp + “ C“);
console.log(„\tPressure: “ + + “ Pa“);

after(2..seconds(), function() {
my.bmp180.getAltitude(1, null, function(err, val) {
if(err) console.log(err);
else {
console.log(„getAltitude call:“);
console.log(„\tTemperature: “ + val.temp + “ C“);
console.log(„\tPressure: “ + + “ Pa“);
console.log(„\tAltitude: “ + val.alt + “ m“);


and run code with node bmp.js you will see your first I2C sensor using Bosch BMP180 showing
baromometric data!
The BMP180 is on I2C-6 on address 0x77. Wiring J17-7 >> SCL, J17-9 >> SDA, J19-2 >> +, J19-3 >> GND

root@fablab:~# i2cdetect -y -r 6
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: — — — — — — — — — — — — —
10: — — — — — — — — — — — — — — — —
20: — — — — — — — — — — — — — — — —
30: — — — — — — — — — — — — — — — —
40: — — — — — — — — — — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — — — — — — — — —
70: — — — — — — — 77

HINT: if you see strange results running i2cdetect with our running cylon.js before remember you
set the I2C port right – this is not yet validated, I guess something is missing, just run the cylon example above!

echo „mode1“ > /sys/kernel/debug/gpio_debug/gpio27/current_pinmux
echo „mode1“ > /sys/kernel/debug/gpio_debug/gpio28/current_pinmux

If you prefer C code:

check this link (external)

1. get i2c-dev.h header
2. change path in code: #include „i2c-dev.h“
3. compile code gcc -o bmp bmp.c
4. run ./bmp

root@fablab:~# ./bmp
Temperatur: 26.2 ?C
Luftdruck: 966.03 hPa

Tricks / Good to know:

configure_edison –setup (/etc/hostapd/hostapd.conf takes the root pw)

rfkill unblock wifi
rfkill unblock bluetooth

opkg list – list available package to be installed
opkg update
opkg upgrade

enable and start connman initially:
systemctl enable connman && systemctl start connman (just crashed by Edison image – why?)

Hooking up Edison to a breadboard:

This is most easy way to get your Edison on an breadboard for making it easy wiring up any extension you want to.
I guess this is most simple way to get your LED blink example running but as well more complex I2C/SPI stuff.

What do you need:
1. Intel Edison (of course)
2. Intel mini breakout board (this is most cheapest why to hook up Edison!)
3. Breadboard of your choice
4. Break a way headers – 14 pins straight
5. Break a way headers – 15 pins 90 degrees


The magic is the combination – tooks hours of engineering 😉 – of straight and 90 degrees headers solders
on the back of the mini extension board. With this it snaps easily into the breadboard – if you keep the
position like shown – you can easily count the pins on the back from 1..14 marked on the breadboard.
What I/Os are covered by this:


PWM1,PWM0, UART1, I2C-1, I2C-6, SPI-5, PIN 13 (used in LED example), 1.8V, 3.3V, GND, GPIO-44, GPIO-46, …


Get the GND (black) and 1.8V (red) wired like shown and you can run your blink LED sample (LED is connected to J17-14).

Not shown here: you still need the USB connection for power and if needed for console.
Power goes to the USB port marked with J16. There is no level shifter – but you can easily hook up one on the

see my post:

If you do need a level translator e.g. 1.8V to 3.3V here is a good document – link (external, PDF)

Is Intel® Edison *NOT* „Maker friendly“ – why? (my personal options)


1. Edison asks for an power supply in range of 3.1-4.5V – the closest we use is a 3.3V, 5V is going to kill Edison
2. All I/Os are rated 1.8V, well that is good in general, but Makers just got used to 3.3V, level shifter … puuuh
3. To get console access you do need an USB/FTDI connection but the tiny 70 pin connector is not at all Maker friendly
4. To get access to the I/O pins – again these pins are on the tiny 70 pin connector
5. Dokumentation is … (needs some improvement!!!!), but we do like to hack into things to understand them 😉
6. Features not completed by time of shipment (e.g. BLE – old BlueZ, no gatttool, …) – no release notes or roadmap …
7. 200mA min. and up to 600mA spikes is much but you do get a lot power! specially not for wearables 😉
8. no analog inputs (compared to Arduinos), needs always and ADC e.g. connected via SPI extension
9. my not Wheezy (Umbunto) people are used to? … new tools, cross-comilaton, lot of hassle…
10. multiplex I/Os, analog via SPI … IO pin translation matrix … where is my A0 or D5 in Edison? … could be easy
11. bash shell is missing ;-(
12. default partitions are not well balanced – quickly reaching „disk full“ …


1. most compact Linux computer with BLE and WiFi – awesome!
2. works great as gateway for IoT

As we still love the Edison, we developed a unique solution to solve some of the issues we are struggeling with!

The Intel® Edison is becoming „Maker friendly“ with our extension board, it is close to the size of Edison:

– You can use your 3.3V FTDI from the Ardunio
– All I/Os are translated to 3.3V including some protection
– 3.3V LPO is on board (up to 10V input) – will a power 3.3V supply work as well?
– best all ist breadboard friendly …

stay tuned for the final, it will be OSHW … after testing it completed.



Useful links:

Don’t read manuals 😉 start here: Getting started – link (external)
MacOS users will start here: Getting started – link (external)

has anybody identified the USB connector without try and error? hint: it is labeled J3 on the Intel Mini Breakout Board
spooky advise by Intel: „If you get a „No such file or directory“ error message, change the port.“


Edison Product Brief – link (external)
Edison 101 from IDF – link (external)
Edison Module Hardware Guide – link (external)

Hands on with the Intel(R) Edison – link (external)

Intel Edison Breakout expansion board Schematics 8_26 – link (external)
Intel Edison Arduino expansion board Schematics 002 – link (external)

Intel Edison Forum – link (external)

Intel Edison: Sketches and Code Examples – link (external)

20 commenti su “Intel® Edison
  1. RF sagt:

    Great list. Thanks!

    BTW, have not had any problems doing setup with a Mac (especially configuring and accessing console via USB and ssh).

    One more tip for your list: if when installing a package a bunch of strange errors show up, the first thing to try is do a ‚df‘ and check to see if the / partition is full. If it is one of the first (and easiest things) to get rid of is to check and see what’s inside /var/log/journal. Loading Arduino sketches and installing packages often leave a lot of junk behind in there. After removing all the entries you may find that you can get further with the installation.

    On the Edison Arduino board you may also see strange errors uploading sketches. Removing the contents of /var/log/journal will often fix that problem as well.

  2. mmi sagt:

    After some days with Yocto i switched to ubiLinux, a wheezy based Debian distro. It’s much more fun because at least Yocto misses good repositories for precompiled packages. The partition sizes with ubiLinux are much more favorable: 1.4 GB for rootfs and 1.6 GB for /home.

    Let’s see how the development and interface tools will run, i compiled mraa only mraa from git and it works fine.

  3. Araknide sagt:

    Great ‚Edison in a nutshell‘ article. It helped me a lot, thanks.
    I cannot wait for the extension board !

  4. Terrence sagt:

    I am trying to build a solution to sell the public, but it requires that the Edison board be connected via wifi.

    How can I get my customers to configure Edison to connect to their wifi network?

    I am stumped on this problem.

    Thank you for your valuable information.

    • FabLab sagt:

      I can see at least to options:
      1. check for PBC (push button configuration) – most Wifi router offer a button enabling connectiong to the router for 2 minutes,
      have not used this, but you might find an linux tutorial how to get PBC enabled on Edison or equivalent
      2. with latest OS build you can turn Edison into an AP – which provides on it’s IP address an web console allowing to configure
      Edison, something like this could be a helpful tool, you might need to extend the script
      my two cents for now

  5. Sorbier sagt:


    Great article. Comprehensive and easy to follow.

    Since couple of days I’m struggling to setup Serial on my Edison and Mini Breakout Kit.
    I went through many posts. Most of them are referring to Arduino, not to the Mini Breakout.

    As of today, I can’t setup properly the GPIO for UART. I wrote a short program to ready /dev/ttyMFD1.
    Data are read, and displayed, but not on continuous flow as expected, but every 30s.

    I think I’m missing a proper UART setup there.

    Below my config :

    Ubilinux image : Linux ubilinux 3.10.17-poky-edison-ww42+
    MRAA Version: v0.5.2-18-g9014fc6

    root@ubilinux:~# ls /sys/class/gpio/
    export gpio125 gpio127 gpio129 gpio131 gpio133 gpiochip0
    gpio124 gpio126 gpio128 gpio130 gpio132 gpio134 unexport

    I tried MRRA : uart = mraa_uart_init(0) is always failing.

    I deep dive into the code.

    mraa_intel_edison_uart_init_post(mraa_uart_context uart)
    return mraa_gpio_write(tristate, 1);

    mraa_gpio_write(mraa_gpio_context dev, int value)
    if (dev == NULL)

    dev is equal to NULL

    tristate is null as only setup for Arduino :

    mraa_board_t* b = (mraa_board_t*) malloc(sizeof(mraa_board_t));
    if (b == NULL)
    return NULL;

    // This seciton will also check if the arduino board is there
    tristate = mraa_gpio_init_raw(214);
    if (tristate == NULL) {
    syslog(LOG_INFO, „edison: Failed to initialise Arduino board TriState,\
    assuming Intel Edison Miniboard\n“);
    if (mraa_intel_edsion_miniboard(b) != MRAA_SUCCESS) {
    return NULL;
    return b;

    Any idea ?

    • FabLab sagt:

      Have you considered the know bug on UART?
      „The Intel® Edison board has a known error on all UARTs. When Edison goes into low power sleep, the UART internal FIFO and interface is powered down. Therefore, a two-wire UART (Rx/Tx) will lose the first received character whenever Edison is in sleep mode. In order to avoid this condition, when sleep mode is enabled, a four-wire UART (Rx, Tx, CTS, and RTS) is required.“

  6. Flavio sagt:

    Hi there,
    I am really looking forward to your extension board. Do you have any updates for it?
    Would you mind sharing the files of your board, even if you haven’t gotten a chance to thoroughly test it yet?
    I really need something like that for a project and your board would greatly facilitate my life!
    Thanks in advance,

  7. Araknide sagt:

    Hello guys,

    any news about Edison breakout availability ?

    Thanks !

  8. Araknide sagt:

    True, Spark stuff is in stock, but I would need a ‚lean-and-mean‘ board like yours. It’s perfect !
    Sparkfun boards for Edison are too pricey and fancy, to me.

    Keep up (and merry Xmas) !


  9. MPV sagt:


    I’m trying to hook up to the Ti sensortag. But finding it too hard to get started. I found only your posting here. I’m getting error with ‚Noble.js‘ npm install . Below is the error.
    Any idea thats in my side or limitations with noble.
    (ENV: WIn 8.1, edison , putty -ssh)

    Thanks a bunch.
    Bye the way, Wish you a Happy New Year!

    root@edison:~# npm install noble
    npm http GET
    npm http 304
    npm http GET
    npm http 304

    > noble@0.3.6 install /home/root/node_modules/noble
    > node install.js

    noble install: platform is „linux‘
    noble install: running node-gyp …
    make: Entering directory ‚/home/root/node_modules/noble/build‘
    CC(target) Release/
    ../src/hci-ble.c:9:33: fatal error: bluetooth/bluetooth.h: No such file or directory
    compilation terminated. recipe for target ‚Release/‘ failed
    make: *** [Release/] Error 1
    make: Leaving directory ‚/home/root/node_modules/noble/build‘
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
    gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:807:12)
    gyp ERR! System Linux 3.10.17-poky-edison+
    gyp ERR! command „node“ „/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js“ „configure“ „build“
    gyp ERR! cwd /home/root/node_modules/noble
    gyp ERR! node -v v0.10.28
    gyp ERR! node-gyp -v v0.13.0
    gyp ERR! not ok
    noble install: done
    npm ERR! noble@0.3.6 install: `node install.js`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the noble@0.3.6 install script.
    npm ERR! This is most likely a problem with the noble package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR! node install.js
    npm ERR! You can get their info via:
    npm ERR! npm owner ls noble
    npm ERR! There is likely additional logging output above.

    npm ERR! System Linux 3.10.17-poky-edison+
    npm ERR! command „/usr/bin/node“ „/usr/bin/npm“ „install“ „noble“
    npm ERR! cwd /home/root
    npm ERR! node -v v0.10.28
    npm ERR! npm -v 1.4.9
    npm ERR! code ELIFECYCLE
    npm ERR!
    npm ERR! Additional logging details can be found in:
    npm ERR! /home/root/npm-debug.log
    npm ERR! not ok code 0

  10. Hi,
    Any news on your edison expansion board?


  11. Ashok Thapar sagt:

    Interested for Intel Edison

  12. Ashok Thapar sagt:

    While downloading from Axel_T’s repro, and updating by command “ opkg update“, I get an error opkg_download: Failed to download….., wget returned 3. (which is I/O error…)
    Please suggest. Thanks

Schreibe einen Kommentar zu MPV Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *