Introduction: Getting Started With Intel® Edison Mini Breakout Board

Intel provides 2 different hardware platforms to work with Intel® Edison development board.
The core module of Intel® Edison is called Intel® Edison Compute Module, while the 2 extension boards are called Intel® Edison Arduino Board and Intel® Edison Breakout Board respectively. We’ll refer to them as the Arduino module and mini-breakout board, respectively.

It is probably more common to use the Arduino module, since it’s easy to use and has many useful features, most notably the pin headers. However, the mini-breakout’s main advantage comes from its size and possible use as a wearable.

In this tutorial, we’ll get more familiar the mini-breakout board, learn how to use it for basic tasks, and then build a small “blink” example based on this knowledge.

Before you start, make sure that you’ve followed the Intel® Edison getting started guide. You should be able to:

  1. Flash the newest firmware

  2. Upload “Hello World” example through Arduino IDE

  3. Access the Linux terminal with the serial port

There are a number of other documents and tutorials that are helpful when working with Intel® Edison.

Here is a video of the completed project.

This tutorial was originally published on Intel Communities here.

Step 1: Using Wireless SSH and SCP

Connecting to the serial terminal SSH through a microUSB cable is one of the most stable ways of accessing the Linux terminal. Once you have done so, you can then configure it for wireless access through your local wireless network.

SCP is another useful tool for transferring a python script or copying a log file.

Note that you have to configure the username and password for Intel® Edison. SSH is disabled if the password is not set and any attempt to use it will result in error messages. Follow the Getting Started with Intel® Edison: Serial Connections for this configuration.

Step 2: Wireless Access SSH

Access the Linux terminal of Intel® Edison through the serial port. Follow the Getting Started Guide to do this.

To get the IP address of the Intel® Edison board , enter “ifconfig” in the terminal. In the list of network mechanisms, look for the the section labeled “wlan0” to find the IP address.

Enter in “ssh root@your-edison-ip” in the terminal of your computer, or access the IP with PuTTY.

Now you can disconnect the microUSB cables and power the board with an alternative power source (7-15V power transformer or batteries ). As long as you keep Intel® Edison in your wifi network, its IP address will most likely stay the same after you restart it.

Step 3: SCP File Transfer

If you’re using Linux/Mac, chances are you have SCP already. If Windows is your system of choice, you will need to download it first. Download pscp.exe from here.

Set it up so that pscp.exe is accessible from any part of your file system by adding the path to pscp.exe in your environment path.

To copy a local file over with Linux/Mac, type “scp /path/to/local/file root@ip-to-edison:/home/root/” in the terminal of your computer. For Windows, use “pscp c:/path/to/local/file root@ip-to-edison:/home/root/”.

If it is your first time using SSH/SCP to this IP, it will prompt you to save the authentication key. Proceed with that and then enter the password of the Intel® Edison root account.

To copy a file from the Intel® Edison, you type “scp root@ip-to-edison:/home/root/somefile ./”(or “pscp root@ip-to-edison:/home/root/somefile ./” for Windows). It will prompt you to input the password of Intel® Edison to start the transfer.

Step 4: Using Intel® Edison With the Mini-breakout Board

A major difference between the mini-breakout board and Arduino module is how pins work. On the mini-breakout board, they are arranged into a 4 X 14 matrix and all connections must be soldered. They are pulled from the Intel® Edison Compute Module directly, using 1.8V as logic HIGH (compared to 5V in Arduino Uno or 3.3V commonly used by contemporary sensor modules). Note that the pins have special naming conventions and are not the same as the Arduino module.

Step 5: Mapping Out the Pins

To control the pins, we need to find out which ones have particular purposes. The Intel® Edison Breakout Board Hardware Guide contains detailed descriptions of different hardware features. Use it as a reference book when doing projects on the mini-breakout board.

Look at figure as well as the under side of the mini-breakout board. The 4 long rows are called J17, J18, J19, J20 respectively. As for columns, starting at the rightmost square-shaped pin, the number goes from 1 to 14 leftwards. For example, the square pin on row J18 can be referred to as J18-pin 1, the last pin is J18-pin 14, and the 3rd rightmost pin in row J20 would be J20-pin 3.

The second column of the table is the Linux internal name for each pins. These names can be used for programming or mapping to Arduino pins, both of which will be covered later.

Let’s start with a brief introduction to Linux pin naming conventions. All pins starting with “GP” are the GPIO (General Purpose Input Output) pins. They can be used to output/input digital signals. The pins with “PWM” in their names are PWM pins and can output analog signals, similar to an Arduino.

Step 6: Mapping to Arduino Pins

If you want upload an Arduino sketch and control the pins, you must map the pins from mini-breakout board to the Arduino module. Download the Intel® Edison Arduino Board Hardware Guide.

Refer to the table. The first column is the Arduino pin, while the second being the Linux pin names.

Take the example that you want to use digital pin 13 in Arduino sketch. First look it up in Arduino module pin reference; it’s Linux pin 40 (GP40). Then go to mini-breakout board pin reference table and look for GP40; it’s J19-pin 10.

If you upload the Blink example from Arduino IDE, the pin will behave accordingly.

Step 7: Programming With the Mini-breakout Board

There are multiple ways of programming the pins on the Intel® Edison. You can use an Arduino sketch, the MRAA library, or a Linux system manipulation.

If you’re using the Arduino module, coding in Arduino is the most straightforward method. When it comes to the mini-breakout board, it’s a good idea to look into alternative approaches since the pins are arranged differently and some of the pins are not Arduino module pins.

Step 8: Using Arduino Sketch

Once you figure out the Arduino equivalent of pins on mini-breakout board as described in the previous section, it’s pretty straight forward to code an Arduino sketch. It is useful to print the necessary tables for quick reference.

Step 9: Using MRAA Library

MRAA is a C/C++ library for controlling the input/output of Intel® Galileo/Intel® Edison and other platforms. It also supports python/javascript. You can find out more on its main page.

With MRAA, you can program entirely in C/C++/Python/Javascript without using an Arduino sketch.

To use MRAA, you need to upgrade the library in your Intel® Edison first. Once connected to the internet, execute the following commands in Intel® Edison terminal:

echo "src maa-upm http://iotdk.intel.com/repos/1.1/intelgalactic" > /etc/opkg/intel-iotdk.conf
opkg update
opkg upgrade

This adds the repository into Intel® Edison and then updates and upgrades it.

To use MRAA, you also need to know how to refer to the pins in MRAA namings. The table on the MRAA page gives a comprehensive explanation of how to do that.

You can find a range of examples for using MRAA in the
“/usr/share/mraa/examples/” folder of your Intel® Edison. Take a look at the python example “blink-io8.py”, which blinks pin 8 of MRAA, or J17-pin 9:

import mraa
import time
x = mraa.Gpio(8)
x.dir(mraa.DIR_OUT)
while True:
x.write(1)
time.sleep(0.2)
x.write(0)
time.sleep(0.2)

You can refer to the python reference to understand how this works.
If you put a LED between J17-pin 9 and J19-pin 3 (GND), you’ll see it blinking.

Step 10: Direct Manipulation Through Linux

Pin manipulation is achieved through writing/reading values to files in the Linux system. It’s the most low-level and complicated approach, but doesn’t require any library. You can control the pins with a few lines of Linux commands.

We’ll not go into too much detail here, but if you’re interested in how it works, read this tutorial from the Intel community.

Step 11: Hook Up the Electronics

The pins on Intel® Edison mini-breakout board work differently from the Arduino module. They have 1.8V for logic HIGH, and don’t allow much current to go through. This means that if you accidently hook them up with 5V (commonly used by Arduino boards) or 3.3V (commonly used by contemporary sensor modules), there is a high risk of damaging the Intel® Edison board.

To get circuits with different logic HIGH voltages to work together, you can make use of level shifters. A simple level shifter design can be found here. It converts 1.8V signals to 5V, but not the other way around. If you want something with more features, check this one out.

The GPIO pins of Intel® Edison can only output 3 mA current according to the mini-breakout board hardware guide. You won’t be able to drive power-hungry components with these pins. Even a LED will not give much light if connected directly, let alone motors or servos. In this case you would want to use a transistor circuit to control things.

Step 12: Powering the Mini-breakout Board

There’re a few different ways of powering the mini-breakout board.
You can use a micro USB cable, a 7-15v power supply, or a lithium battery. In this article we will focus on battery and power supply solutions.

Refer to Intel® Edison Breakout Board Hardware Guide, there’s a detailed explanation about how to use different power sources.

J2 in Fig. 13 can be connected to a lithium battery. It also has a charging circuit that can recharge the battery when you plug it into another power source (USB/power supply). Make sure to only use a lithium battery, since J2 only accepts 4.2 V max.

J21 can be connected to a power source between 7 V and 15 V so you have a variety of choices from a battery pack to wall mount transformer. Alternatively, you can solder a 2.5mm power barrel jack to J22 on the opposite side of the board, which also takes 7 V to 15 V. Look into the hardware guide for details.

To prevent damage to the mini-breakout board, make sure check that the polarity is correct before soldering.

Step 13: Blink a LED With Mini-breakout Board

Now let’s put all this practice and make a blinking LED. The LED is connected to pin 13 of Arduino equivalent, and a button connected to pin 7 is used for turning it on/off.

You need:

  1. 1 Intel® Edison development board + mini-breakout board
  2. 1 LED
  3. 1 100Ohm resistor
  4. 2 1kOhm resistor
  5. 1 BC547
  6. 1 button

Step 14: Solder Pin Connectors to the Mini-breakout Board

Step 15: Connect the Circuit

Note that we are using some special pins: 1.8 V is the logic HIGH of Intel® Edison, and Vsys is the input power, which is 4.5 V. We use the Vsys to power the LED so it’s bright, but do not connect Vsys or 3.3 V (which the Intel® Edison provides) to any GPIO pins to avoid damage.

Find out the pins, and connect them to the circuit.

Using the reference tables mentioned previously, pin 13 of Arduino module is Linux GPIO 40, which is J19-pin 10 of the mini-breakout board. Pin 7 is mapped to GPIO 48, which goes to J19-pin 6. GND is J19-pin 3. V1P80 gives 1.8v, and it’s J19-pin 2. Vsys is from J20-pin 1.

Upload the following code.

Step 16: Connect Battery

Unplug the usb cables, and it’s fully running on itself!

Step 17: Conclusion

In this tutorial, we gave a brief introduction about how to use the Intel® Edison Breakout Board, aka the mini-breakout board. After reading this tutorial you should be able to access the Linux terminal of Intel® Edison wirelessly and transfer files around. We also talked about different methods of programming the pins, correct wiring, and different power options.

The mini-breakout board is a very exciting platform, which can bring great computational power to wearable projects and other “size-critical” projects. It’s also very challenging and requires in-depth research.

Have fun trying out the mini-breakout board!