Book Image

Internet of Things with Intel Galileo

By : Miguel de Sousa, Ricardo Miguel F de Sousa
Book Image

Internet of Things with Intel Galileo

By: Miguel de Sousa, Ricardo Miguel F de Sousa

Overview of this book

Table of Contents (17 chapters)
Internet of Things with Intel Galileo
About the Author
About the Reviewers

Introducing Intel Galileo

Intel® Galileo is a development board based on Intel x86 architecture; it was designed mostly for makers and complies with open source software and hardware licenses. If you are familiar with the Arduino boards, you'll find this board somewhat similar; the reason being this board was designed to be hardware and software compatible with the Arduino shield ecosystem. It combines Intel technology with support for Arduino shields and libraries. It is even possible to write code using the same Arduino development environment.

The expansion header is similar to the Arduino ones. It has 14 digital I/O pins (where six of them can be used as PWM), six analog inputs, a serial port, and an ICSP header. It supports shields operating at either 3.3 V or 5 V. A jumper on the board enables voltage translation at the I/O pins from 5 V to 3.3 V, and vice versa, providing compatibility with the Arduino shields.

Galileo runs over a very light open source Linux OS in its 8 MB flash memory. However, do take into consideration that Arduino is being emulated using Linux, and your code will be running in a separate process.

This board includes a 10/100 Ethernet connector port, and if you wish to use Wi-Fi, you can add a card to the Mini PCIe socket on the back side of the board.

The Galileo Gen 1 board and its components

Breaking down the board, you can find the following major components:

  1. I2C jumper: This jumper allows you to change the I2C address of some on-board components. You may need to do this if you are using I2C components that conflict with other components on the board.

  2. Ethernet port: This port allows you to connect your board to a wired network, allowing you to communicate with other devices and also access the Internet. If you wish to use Wi-Fi, in the backside of the board, you'll find a Mini PCI Express slot where you can connect your Wi-Fi card. It also enables another possible storage device, USB host, bluetooth, or GSM card.

  3. Serial port: There is a serial port for connecting to the Galileo Linux command line from your computer. Although this port looks like an audio jack, it is only used for serial communication.

  4. USB client: When developing with the Arduino IDE, you'll need to connect your USB cable here, so that you can upload your project's code on the board.

  5. USB host: Do not mistake this port for the USB client. This one is not intended to be used to upload your project's code, but to allow you to connect more peripheral devices, such as webcams and extra storage.

  6. Flash memory: This type of memory is persistent and it is where the board firmware is stored, taking most of the available 8 MB of space.

  7. Random Access Memory (RAM): This is where your sketches are stored while running. Galileo has 512 KB of in-built SRAM and an additional 256 MB of external DRAM. Since it is a volatile type of memory, when you reboot your board, your sketch will be lost. If you wish to keep it persistent, you'll need to save it to a microSD card.

  8. Arduino expansion header: It has 14 digital I/O pins (IO2-IO13, TX, RX); all of them can be used as input or output and six of them can be used as Pulse Width Modulation (PWM) outputs. The RX and TX pins control the programmable speed UART port. At the bottom-right side of the expansion header, you'll find six available analog pins with a 12-bit resolution. The pins at the bottom -left of the board are power pins (IOREF, VIN, RESET, 3.3 V, 5 V, and 2 GND).

  9. VIN jumper: This jumper connects the Galileo VIN pin to the 5 V regulator. When using shields that require more voltage than this, you must pull out this jumper to avoid damaging the board.

  10. IOREF jumper: In order to support 3.3 V shields, you can use this jumper to change your board voltage level from 5 V to 3.3 V.

  11. Reboot button: This button reboots the board, including the OS.

  12. Intel Quark SoC X1000 Application Processor: This is the board's processor; it is responsible for processing your code. It is a 32-bit, single core, single-thread, Pentium (P54C/i586) instruction set architecture (ISA)-compatible CPU. It is capable of operating at speeds up to 400 MHz.

  13. Clock battery power: With this inclusion, you won't need to get the date and time from the Internet every time you reboot your board. By connecting a 3 V coin cell battery to the board, you'll be able to keep track of time, even when the board is powered off.

  14. On board LED: This is an on-board LED, directly connected to the pin 13. You can use it to test and run basic sketches.

  15. JTAG header: This is used to debug boards. It should be used with an in-circuit debugger.

  16. Reset button: Pressing this button will restart your code and send the reset signal to the connected shields. It won't restart the OS.

  17. MicroSD card slot: You'll definitely need more space to store your sketches or other apps. Here, you can insert your microSD card and store your persistent sketches or even use it to boot an operating system instead of the on-board one. You'll need to do this if you want additional functionalities, such as Wi-Fi, since those drivers can't fit in the 8 MB of the board's flash memory. It can be done using a card up to 32 GB.

  18. Power input: This is where you must connect your power adapter. The 5 V, 2A feed is the only official way to power the board. Intel recommends you power the board through its power supply before connecting it via USB to your computer, otherwise, you might damage your board.

As you can see, this board is more suitable to work with sensors. The Arduino shield compatibility, familiar IDE, real-time clock and, possibility of using the PCI express connector are some of its best features.