Site icon Open Electronics

An Intel Galileo Walkthrough

 Galileo _bel

Despite the Arduino YUN was presented just recently, already a new board that is compatible with GNU/Linux has been released. This one is based on x86 technology and made by Intel, the leader of this technology.

Evolution of embedded technologies could be considered a fact if a giant like Intel decided to participate with his “interpretation” of the phenomenon. Embedded technology combines the power and flexibility of an operating system such as GNU/Linux and the ability to manage peripheral I/Os according to the typical specifications of the microcontroller, all made ​​with architectures equipped with one or more processors.

 

“Galileo” is based on the Intel Quark X1000 SoC, a system built around a 32 bit Pentium class processor, single-core, single-thread, compatible with ISA architecture (Instruction Set Architecture), which works at speeds up to 400 MHz. Galileo is the first Intel board designed to be hardware and software compatible with the specifications of Arduino Uno R3. De facto a small PC that you can assemble with shields designed for Arduino. The pinout is compatible with Arduino Uno, and the I/O terminals can work at either 5-V to 3.3 by placing a jumper, which activates the level converters for each pin. The native voltage is 3.3V, the 5V is obtained with the conversion. While “Galileo” is software compatible with Arduino’s IDE, the operating system is a GNU/Linux distribution, which “runs” on the board only processor. The Arduino sketches are run as processes in the user space of the GNU/Linux operating system. The available IDE compiles the sketches in “.elf” format, an executable binary format, originally developed by UNIX System Laboratories and commonly used in GNU/Linux.

 

Intel Galileo Specification

Being developed from a family of PC processors, the “Galileo” board has a whole series of connectors, bus and doors, typical of PCs standard, which are added to the classic Arduino’s devices.

Look at the block diagram of the board: a mini-PCI Express connector, one 100 Mb Ethernet port, a slot for a Micro-SD, RS-232 serial port, a USB Host port and a USB Client port can be spotted. There is also a 8Mbyte flash NOR memory.

 

Galileo requires a 5V supply by the coaxial power connector. In this regard there is a recommendation clearly highlighted in the Intel instructions: it is important to give power to the board by the power connector before connecting it to a PC for programming by USB cable, otherwise you could damage the board itself.

 

These are the main features of Galileo’s architecture:

 

Galileo Arduino-compatible connector

Let’s look in more detail the devices compatible with Arduino’s architecture;

 

Intel Galileo Jumper Configuration

Galileo board sports three jumpers which allow you to modify the configurations. The IOREF J1 jumper allows input/output pins to manage both 5V and 3.3V. When the jumper is on 5V, pins are configured with the  high level and IOREF pin is set to 5V. Similarly, when the jumper is on 3.3V both pin I/O and IOREF are configured with 3.3V levels in order to make them compatible with shields requiring it. Attention must be paid to the compatibility of the levels to avoid irreparable damages to the Galileo board and/or to the shields. A second jumper J2 allows you to change the I2C address of the expansion pins I/O and of the EEPROM memory, functionality both managed via I2C-bus in slave mode. With the jumper connected to pin 1, the one with the little white triangle, the expansion I/O pins have 0100001 address and the EEPROM memory has 1010001. By changing the position of the jumper address 0100000 is assigned to expansion I/O pins and 1010000 to the EEPROM memory. This feature allows to solve any conflicts of addresses in case you want to use external slave devices using the I2C bus. The third J3 jumper allows you to manage the power of Arduino-compatible shields assembled on the Galileo board. With the jumper plugged in, the shield is supplied with 5V voltage from the voltage regulator inside the board. If the shield must be supplied with a voltage that is greater than 5V is essential to remove the jumper and give to the shield its own power supply. Also in this case attention must paid: forget to remove the jumper and giving power greater than 5V to the  shield can bring irreparable damages to Galileo board.

Galileo Activation

To be programmed, Galileo board requires a dedicated IDE available at http://www.intel.com/ support / galileo / index.htm “Download” section. It looks like Arduino’s classic IDE and has the same user interface, the difference is that the boards selectable in the menu are those of the Intel (only Galileo for now). Also the compilation toolchain is different but still completely transparent for the user.

First give power to the Galileo board using the supplied power adapter. Plug the coaxial plug with the dedicated socket on the board. Remember that the first step is to plug power supply, otherwise you can possibly damage the board. Now, the programming can only be done by connecting the USB cable to the PC on which you have installed the programming IDE. Wait a moment before connecting the USB cable to the microUSB client port, near the Ethernet connector.

Some preliminary steps are needed before you can program the board with the first sketch. First download and install the development IDE, then install the USB driver to recognize the board and finally update the board firmware. The last step is needed because our card is in early version with a an obsolete firmware. In any case, the functionality is available in the IDE and must be performed before loading any sketch.

Having downloaded the IDE version suited for you, simply unzip it in a folder to your choice.

Now you can proceed to install the USB driver. Check that you have connected the power supply to Galileo, then connect the USB cable to the PC and the micro USB client socket of Galileo. In Figure you can see the device “Gadget Serial v2.4” highlighted with a yellow sign with a small exclamation mark inside. This means that the installation of the driver wasn’t successful. You can now find “Gadget Serial v2.4” under the expansion menu “Other devices” or “Ports (COM & LPT)”. To update the driver, right click on the “Gadget Serial v2.4” from the dropdown menu and choose “Update Driver Software”. In the dialog box choose “Search driver in pc” and in the next window, with “Browse”, go to the folder:

hardware/arduino/x86/tools

which is located inside your IDE installation. Leave the check mark in the check-box “Include subfolders” and click “Next” to begin the installation of the driver. Confirm all by clicking on the “Close” button. Eventually, returning to the “Device Manager”, under “Ports (COM & LPT) find the COM port assigned to your Galileo board, in our case COM18.

Next time the USB port would change: always check in the IDE and in the “Device Manager” window.

Now open the IDE and make sure that the Galileo board is  recognized. From the menu “Tools” >> “Board” select Intel ® Galileo, which actually is the only choice. Then, again from the menu “Tools” >> “Serial port” select the port assigned to the board, in our case COM18. At this point we can program the board with the IDE. The first step is to update the board firmware, as required by the “Getting started” guide. Before this step avoid uploading any sketch. To update the firmware go to the menu “Help” >> “Firmware update”. A message will show up asking to verify that the board is powered through the coaxial connector. Check and click ” Yes “.

A new message shows the firmware version installed on the board and the update version available for substitution. Answer “Yes” and the downloading of the new firmware on the board will start. A further message invites not to power off the board until the end of the process. In few minutes, a new window notifies that the download is finished. Click “OK”. Now try to load the usual test sketch that allows to blink a LED, the LED connected to pin 13 on the board.

Follow the menu chain “File” >> “Examples” >> “01.Basics” >> “Blink”.

Verify, on the Tools menu, that board and serial port are correctly set. Click on the “Upload” button and wait for the compilation and subsequent download of the compiled form on the board. Red messages will advice you that the sketch had been successfully loaded on the board. Look at the LED on the board and you’ll see a green flash per second if everything worked properly.

 

Conclusions

First of all is worth to mention that we haven’t downloaded the Micro SDCard version of the OS that allows the boot from the SDCard itself and has sports additional features such as drivers for USB WiFi dongles, an SSH server and then the ability to connect to the operating system from the outside, and the OpenCV package for images processing, already installed. For now, our impression is that the Galileo board is the starting point for those who want to experience a cheap and easy way to embedded GNU/Linux in Intel architecture to move later on to higher end systems: in line with Arduino vision.

The board has several expansions suitable for interfacing devices typical of the Intel world. From what we understand the Arduino sketch “runs” in the GNU/Linux as a user process. The disadvantage of this solution is not to have a microcontroller completely dedicated to the elaboration of the sketch. The advantage is that it should be easy to make sketch interact with other processes running on GNU / Linux, as they are on the same “machine”. Since this is a early version is too early to make a definitive statements. We’ll examine the GNU / Linux component of the board in depth and keep you informed about the possibilities of Galileo.

Exit mobile version