Getting Started with Intel® Edison Mini Breakout Board

Version 5

    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.

     

    Here is a video of the completed project.


     

     

    Fig-1.jpg

    Fig. 1: Intel® Edison Compute Module, Arduino module and mini-breakout board

     

     

    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 http://www.intel.com/support/maker/edison.htm#how. You should be able to:

     

    - Flash the newest firmware

    - Upload “Hello World” example through Arduino IDE

    - 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.

     

    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.

     

    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.

     

     

    Fig-2.PNG

    Fig. 2: Intel® Edison IP address

     

     

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

     

    Fig-3.PNG

    Fig. 3: SSH to Intel® Edison through 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.

     

    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/”.

     

    Fig-4.PNG

    Fig. 4: SCPto Intel® Edison

     

    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.

     

    Fig-5.PNG

    Fig. 5: Accept authentication key and input password

     

     

    Fig-6.PNG

    Fig. 6: SCPto Intel® Edison

     

     

    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.

     

    Fig-7.PNG

    Fig. 7: SCPfrom Intel® Edison

     

     

    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.

    Fig-8.jpg

    Fig. 8: Pin matrix

     

    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 3 on page 8 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.

     

     

    Fig-9.PNG

    Fig. 9: pins on mini-breakout board

     

    On page 9 and 10 in the hardware guide, you will find the pin reference table (Table 2). 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.

     

     

    Fig-10.PNG

     

    Fig. 10: pin reference on mini-breakout board

     

    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.

     

    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 Table 3, page 9. The first column is the Arduino pin, while the second being the Linux pin names.

     

    Fig-11.PNG

    Fig. 11: pin reference on Intel® Edison Arduino module

     

     

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

     

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

     

    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.

     

    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.


    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.

     

    Fig-12.PNG

    Fig. 12: pin reference for MRAA library

     

    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.

     

    Fig-13.jpg

     

    Fig. 13: Testing MRAA blink with a LED

     

    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.

     

    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.

     

    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.

     

    Fig-14.PNG

    Fig. 14: Power connectors on mini-breakout board

     

     

    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.

     

    Fig-15.jpg

    Fig. 15: Connecting lithium battery to mini-breakout board

     

     

    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.

     

     

    Fig-16.PNG

    Fig. 16: Power connector on the other side of mini-breakout board

     

     

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

     

     

    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.

    Parts Needed:

     

    1 Intel® Edison development board + mini-breakout board

    1 LED

    1 100Ohm resistor

    2 1kOhm resistor

    1 BC547

    1 button

     

     

    Steps

    Solder pin connectors to the mini-breakout board.

    Step-1.jpg

     

    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.

     

     

     

    Step-2a.jpg

    Step-2b.jpg

     

     

    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.

     

     

    Program the board. Upload the following code to Intel® Edison.

    void setup() {

      pinMode(7,INPUT);

      pinMode(13,OUTPUT);

    }

     

     

    void loop() {

      digitalWrite(13,digitalRead(7));

      delay(30);

    }

     

     

    Connect battery

    Step-5.jpg

     

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

    Step-6.jpg

     

     

    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!