The Intel Edison module provides an interesting combination of connectivity (Wifi, Bluetooth and USB) with “special” pins for signal processing. This makes the board similar to a Raspberry Pi with Wifi and Bluetooth dongles, and on the other hand similar to an Arduino with pins for processing “digital” and “analog” signals.
It is great to look how on both sides of an Edison module are mounted. On top, there are mainly components for connectivity:
On the bottom, there are the main processing blocks and a component for power management:
Note that the system uses two processors:
The logical levels of these processors are on 1.8V, which is nice for low-power consumption but harder to connect “classical” components from an Arduino or Raspberry Pi.
To use the Edison hardware for a Maker project, there are several breakout boards that act a bit like motherboards. The Edison is mounted on top. The breakout boards makes it easy to access certain pins of the Edison.
There are several breakout boards:
Besides access to pins, breakout boards help to manage power on the Edison. The Edison can be powewered with 3.15 to 4.5V, but USB has 5V or a DC jack can even have higher voltages. Also, some boards, such as the Edi-Expand help with level-shifting signals.
Another function of breakout boards is to manage USB communication with the Edison and a host computer. The Edison uses 2 USB ports: One port for firmware updates, and another port for providing console communication.
Once you have selected a breakout board and mounted the component, you are most likely to run a firmware update and install some extra packages.
As firmware changes over time, it is a good idea to get the latest version (currently Poky 1.7.2 if you follow the Intel projects). You can check what version you have with:
# configure_edison --version
If you don’t get a reply back, you should upgrade. Recent firmware will show you 159 as reply.
To update the firmware, have a look at:
After installing the firmware, it is time to configure connectivity.
This is easy with the following command:
# configure_edison --wifi
The board scans for networks and you can add your network of choice. (An Edison can also be configured as Access Point but this is the topic of another post).
To check that network settings are working, ping google.com for example:
# ping google.com
Next, I advise to install “git” and some Node libraries.
To install git, you can follow the steps as in setup.sh
And now, it’s time to clone some projects based on the MRAA library. The basic board software setup should now be ready.
To check the board setup and to learn about pin functions of the board, it’s good to explore blinking LEDs. Blinking LEDs are the “hello world” experience of embedded systems. In the case of the Mini breakout board, we have to build a small circuit to make an external LED blink.
A good start are the schematics of the board. You can find the Edison mini breakout board schematics online. It’s a great source for learning about electronics, although if you have a software background contact with schematics can be a bit frustrating first.
From the schematics, you can learn how the mini breakaut board breaks out pins for power, pins for communication and for GPIOs. Another nice source learn about board schematics is this guide by Kevin Sidwar.
The main pin blocks are provided with 4 jumpers (J19, J17, J18, J20) where you can attach wires or probes for measurements (or LEDs). One important pin for Arduino projects is pin 13. However, we don’t find “Pin 13” in the schematic, but need to take the detour via a pin mapping provided by the MRAA library.
Here you’ll see that MRAA (or Arduino pin 13) maps to physical pin GP128:
13 J17-14 GP128 GPIO-128 UART-1-CTS
This pin can also be found in the filesystem of the Poky Linux installation:
You can find some more basic documentation about the jumpers on the board on the Arduino website.
To make the mini breakout board compatible with a breadboard, you must add header pins. So, you have to solder some. One possible approach is this approach by Guido Burger:
As next step, you’ll see that the 1.8V logical levels from the Edison are too small to light an LED. Without level shifting, the Edison has 1.8V voltage levels.
A nice approach to solve this problem is by using a transistor. The schematic looks as below:
The NPN transistor acts as a small current amplifier. If the GPIO is high, there goes a current from base to emitter. That current is “amplified” in the collector-base current which is high enough to drive the LED.
You can solder components to a soldering board as follows:
And, last, you can have the LED blink by connecting to the GPIO and running the following Node.js code.
The USB ammetter shows the input voltage of 5.1 V. This is a nice feedback that the board has power.
Please leave comments and feedback how to improve at Reddit.