This is a guide howto setup the Intel® Edison.

Intel has a lot of documentation but I want it to be in one place as a consistent story. Please leave a comment below when you have any questions.

How did this all start? A while ago I received the Intel Edison as a sample from an Intel directly (Phil, many thanks for that). But I couldn´t do anything with it (yet). I needed a breakoutboard so I ordered it from Conrad.

Shopping list


For this story I used:

  • Intel Edison (on top)
  • Intel Edison Breakout-board (bottom which includes screws to keep all together tight)
  • 2 Micro USB cables
  • A laptop or desktop (Mine is running Ubuntu)
  • IntelEdison01-Components
    Figure 2: Intel Edison, Edison Breakout-board and two hexnuts

    Let’s get started


    Since some months I use Ubuntu on my laptop exclusive for my hobby projects. This means that the instructions below will only cover the Ubuntu part. I will not share the Windows details with you, others will probably have done that for me. We will need to establish a hardware interface to the board, Program the latest firmware, have it connect with Wifi and then the magic will start to happen. All this can be found here below.

    Building the hardware

    1. Attach the Edison on the Breakout-board. Align the screws with the holes. Then press the two pieces together. Make sure not to press on the metal RF shielding (“What will you make?” printed on it). You will hear it click. Then screw on the hex nuts but not to tight.
    2. Connect one USB cable to the bottom USB connector (J16). Two green leds should light up. After some time you will see an extra device called Edison in your file manager. If it doesn’t, make sure the USB port can deliver enough power to the USB port.
    3. Connect the second USB cable to the top USB connector (J3). This connector exposes the serial console connection. On the Edison you will find a FTDI chip to make the physical connection to the RX and TX of the Edison’s board.

    Connecting serial

    Under Ubuntu make sure there is a terminal program installed:

    sudo apt-get install gtkterm
    sudo gtkterm
    [sudo] password for user:

    Connect to the Edison with the following settings (menu Configuration -> Port)

    Port: /dev/ttyUSB0
    Baud Rate: 115200
    Parity none
    Bits 8
    Stopbits 1
    Flow control none

    Press [enter] a couple of times, this should show

    Poky (Yocto Project Reference Distro) 1.6 edison ttyMFD2

    edison login:

    Use username root and a blank password [enter]

    Flashing latest firmware (Yocto)

    Download the Yocto* complete image from Intel

    1. Make sure the Edison’s USB drive is completely empty. This is the drive called “Edison”.
    2. Unzip the entire content of the Yocto image into that drive.
    3. To flash your Edison, simply type:

      reboot ota
    4. This will show something like below here:

      ******* 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 (Aug 20 2014 - 16:08:32)

      Watchdog enabled
      DRAM: 980.6 MiB
      MMC: tangier_sdhci: 0
      In: serial
      Out: serial
      Err: serial
      Hit any key to stop autoboot: 0
      Target:blank
      Partitioning already done...
      Flashing already done...
      GADGET DRIVER: usb_dnl_dfu
      reading vmlinuz
      5124192 bytes read in 127 ms (38.5 MiB/s)
      Valid Boot Flag
      Setup Size = 0x00003c00
      Magic signature found
      Using boot protocol version 2.0c
      Linux kernel version 3.10.17-poky-edison+ (sys_dswci@ncsndgbuild04) #1 SMP PREEMPT Wed Aug 20 16:09:18 CEST 2014
      Building boot_params at 0x00090000
      Loading bzImage at address 00100000 (5108832 bytes)
      Magic signature found
      Kernel command line: "root=PARTUUID=012b3303-34ac-284d-99b4-34e03a2335f4 rootfstype=ext4 console=ttyMFD2 earlyprintk=ttyMFD2,keep loglevel=4 systemd.unit=multi-user.target hardware_id=00 g_multi.iSerialNumber=1ce19aead23be74e83906cc17284e2ab"

      Starting kernel ...

      [ 0.768531] pca953x 1-0020: failed reading register
      [ 0.773726] pca953x 1-0021: failed reading register
      [ 0.774117] pca953x 1-0022: failed reading register
      [ 0.783643] pca953x 1-0023: failed reading register
      [ 1.669773] pmic_ccsm pmic_ccsm: Error reading battery profile from battid frmwrk
      [ 1.682315] pmic_ccsm pmic_ccsm: Battery Over heat exception

      Welcome to Linux!

      [ OK ] Reached target Remote File Systems.
      Expecting device dev-ttyMFD2.device...
      Expecting device dev-mmcblk1p1.device...
      [ OK ] Reached target Paths.
      [ OK ] Set up automount Arbitrary Executable File Formats F...utomount Point.
      [ OK ] Reached target Swap.
      [ OK ] Set up automount boot.automount.
      [ OK ] Set up automount home.automount.
      [ OK ] Created slice Root Slice.
      [ OK ] Listening on Delayed Shutdown Socket.
      [ OK ] Listening on /dev/initctl Compatibility Named Pipe.
      [ OK ] Listening on Syslog Socket.
      [ OK ] Listening on udev Kernel Socket.
      [ OK ] Listening on udev Control Socket.
      [ OK ] Created slice User and Session Slice.
      [ OK ] Listening on Journal Socket.
      [ OK ] Created slice System Slice.
      Starting Remount Root and Kernel File Systems...
      Starting Load Kernel Modules...
      Starting udev Coldplug all Devices...
      Starting Create list of required static device nodes...rrent kernel...
      Mounting Debug File System...
      Starting Apply Kernel Variables...
      Mounting POSIX Message Queue File System...
      [ OK ] Created slice system-getty.slice.
      [ OK ] Created slice system-serialx2dgetty.slice.
      Starting Journal Service...
      [ OK ] Started Journal Service.
      [ OK ] Reached target Slices.
      Mounting Temporary Directory...
      [ OK ] Set up automount factory.automount.
      [ OK ] Mounted POSIX Message Queue File System.
      [ OK ] Mounted Debug File System.
      [ OK ] Mounted Temporary Directory.
      [ OK ] Started Remount Root and Kernel File Systems.
      [ OK ] Started Create list of required static device nodes ...current kernel.
      [ OK ] Started Apply Kernel Variables.
      [ OK ] Started Load Kernel Modules.
      [ OK ] Started udev Coldplug all Devices.
      Mounting FUSE Control File System...
      Mounting Configuration File System...
      Starting Create Static Device Nodes in /dev...
      Starting Load/Save Random Seed...
      [ OK ] Mounted Configuration File System.
      [ OK ] Mounted FUSE Control File System.
      [ OK ] Started Create Static Device Nodes in /dev.
      [ OK ] Started Load/Save Random Seed.
      Starting udev Kernel Device Manager...
      [ OK ] Reached target Local File Systems (Pre).
      Mounting /var/volatile...
      [ OK ] Started udev Kernel Device Manager.
      [ OK ] Mounted /var/volatile.
      [ OK ] Reached target Local File Systems.
      Starting Trigger Flushing of Journal to Persistent Storage...
      Starting Create Volatile Files and Directories...
      [ OK ] Started Create Volatile Files and Directories.
      [ OK ] Started Trigger Flushing of Journal to Persistent Storage.
      [ OK ] Found device /dev/ttyMFD2.
      [ OK ] Created slice system-systemdx2drfkill.slice.
      Starting Load/Save RF Kill Switch Status of rfkill2...
      Starting Load/Save RF Kill Switch Status of rfkill0...
      Starting Load/Save RF Kill Switch Status of rfkill1...
      Starting Network Time Synchronization...
      Starting Update UTMP about System Boot/Shutdown...
      [ OK ] Started Load/Save RF Kill Switch Status of rfkill2.
      [ OK ] Started Load/Save RF Kill Switch Status of rfkill0.
      [ OK ] Started Load/Save RF Kill Switch Status of rfkill1.
      [ OK ] Started Network Time Synchronization.
      [ OK ] Started Update UTMP about System Boot/Shutdown.
      [ OK ] Reached target System Initialization.
      [ OK ] Reached target Timers.
      [ OK ] Listening on D-Bus System Message Bus Socket.
      [ OK ] Reached target Sound Card.
      [ OK ] Listening on sshd.socket.
      [ OK ] Reached target Sockets.
      [ OK ] Reached target Basic System.
      Starting Watchdog sample daemon...
      [ OK ] Started Watchdog sample daemon.
      Starting USB Ethernet gadget...
      [ 7.366192] dwc3-device dwc3-device.1: dwc3-gadget is already bound to g_multi
      Starting Crashlog service...
      [ OK ] Started Crashlog service.
      Starting Edison RM button handler...
      [ OK ] Started Edison RM button handler.
      Starting Kernel Logging Service...
      [ OK ] Started Kernel Logging Service.
      Starting Bluetooth rf kill event daemon...
      [ OK ] Started Bluetooth rf kill event daemon.
      Starting Daemon to handle arduino sketches...
      [ OK ] Started Daemon to handle arduino sketches.
      Starting Daemon to reset sketches...
      [ OK ] Started Daemon to reset sketches.
      Starting System Logging Service...
      [ OK ] Started System Logging Service.
      Starting Login Service...
      Starting Permit User Sessions...
      Starting D-Bus System Message Bus...
      [ OK ] Started D-Bus System Message Bus.
      Starting Network Service...
      [ OK ] Started Permit User Sessions.
      [ OK ] Started USB Ethernet gadget.
      [ OK ] Started Network Service.
      [ OK ] Started Login Service.
      [ OK ] Created slice system-systemdx2dfsck.slice.
      Starting File System Check on /dev/disk/by-partlabel/factory...
      [ OK ] Reached target Network.
      Starting Mosquitto - lightweight server implementati...SN protocols...
      [ OK ] Started Mosquitto - lightweight server implementatio...T-SN protocols.
      Starting Zero-configuration networking...
      [ OK ] Started Zero-configuration networking.
      Starting Intel_XDK_Daemon...
      [ OK ] Started Intel_XDK_Daemon.
      Starting Network Name Resolution...
      Starting Getty on tty1...
      [ OK ] Started Getty on tty1.
      Starting Serial Getty on ttyMFD2...
      [ OK ] Started Serial Getty on ttyMFD2.
      [ OK ] Reached target Login Prompts.
      Starting HSU runtime pm service...
      [ OK ] Started Network Name Resolution.
      [ OK ] Started HSU runtime pm service.
      [ OK ] Started File System Check on /dev/disk/by-partlabel/factory.
      Mounting /factory...
      [ OK ] Mounted /factory.
      [ 9.504741] systemd-fsck[203]: /dev/mmcblk0p5: clean, 13/128 files, 40/1024 blocks
      Starting Load/Save RF Kill Switch Status of rfkill3...
      Starting Bluetooth service...
      [ OK ] Started Load/Save RF Kill Switch Status of rfkill3.
      [ OK ] Started Bluetooth service.
      Starting Hostname Service...
      [ OK ] Reached target Bluetooth.
      [FAILED] Failed to start Hostname Service.
      See 'systemctl status systemd-hostnamed.service' for details.

      Poky (Yocto Project Reference Distro) 1.6 edison ttyMFD2

      edison login:

    Establish WiFi link


    configure_edison --wifi

    This will show the connected IP Address. Remember this bcos you will need it later.
    On trick is to add the MAC address of the Edison to a fixed list of IP addresses on your WiFi router. This makes sure you will have the same IP Address every time you connect the Edison to WiFi.
    For the complete article look at the Intel page

    Connect with SSH over TCP/IP using the WiFi link

    We want to get rid of the physical serial cable. This can be done by using an SSH link.

    ssh root@192.168.1.107

    What you should be able to do now is:

    1. Connect to the Edison
    2. Let it connect to WiFi
    3. Establish an SSH link

    Enjoy!

    3 thoughts on “Setting up the Intel Edison

    • 2024/12/30 at 10:13
      Permalink

      It’s better to update software on Edison module to have newest U-Boot, kernel and Yocto in general.

      Reply
    • 2025/03/15 at 06:21
      Permalink

      What are the necessary components required to set up the Intel Edison, as mentioned in the guide? Visit us -redacted, link removed by site owner-

      Reply

    Leave a Reply

    This site uses Akismet to reduce spam. Learn how your comment data is processed.