Arduino is an open-source single-board microcontroller, which is used in building electronics projects. It can be connected to sensors, LEDs, motors, and other devices to create an interactive display, analysis kits, and anything else electronics-based that you can think of.
Arduino has been popular among students, hobbyists, and even professionals ever since it was first introduced in 2005.
The first Arduino started as a project for the students of the Interaction Design Institute Ivrea. A hardware thesis was contributed for Hernando Barragan's (a Columbian student) wiring design. When the wiring platform was completed, a team of researchers and developers worked on the thesis to create a lighter and less expensive prototype to be available to the open source community. The five-man team that created the prototype Arduino board was led by Massimo Banzi.
Before the Intel-based boards, the Arduino platform was composed of either an 8-bit Atmel AVR microcontroller or a 32-bit Atmel ARM. The latest Arduino models have 6 analog inputs and 14 digital I/O pins with a USB interface.
However, as with all developing technologies, Arduino boards have evolved a lot. Here are the Arduino versions that are commercially available along with their basic features:
Each of these board versions differ in voltage, processor frequency, dimensions, flash memory, Electrically Erasable Programmable Read-Only Memory (EEPROM), and Static Random Access Memory (SRAM).
Among these Arduino versions, the Galileo Board is the first board to be based on Intel x86 architecture.
Galileo is based on 32-bit Quark SoC x1000, Intel's first ever product from the Intel Quark family, which features low power small-core products. The board is hardware compatible with Arduino's expansion cards (called shields) and is software compatible with Arduino's Integrated software Development Environment (IDE). It can run on Linux, Mac OSX, and Microsoft Windows.
Currently, there are two versions of Intel Galileo—Gen 1 and Gen 2. The difference between the two lies in the General-Purpose Input/Output (GPIO) pins, the latter having improved performance and compatibility with Arduino shields and accessories.
Here is a picture of the Intel Galileo Gen 2 board:
You will notice that Intel Galileo has 3.3V and 5V power supply ports, 14 digital pins, 6 analog pins, In-Circuit Serial Programming (ICSP) header, and Universal Asynchronous Receiver/Transmitter (UART) ports. Galileo has similar basic port locations as the Arduino Uno R3, but it features components that stretch its capabilities beyond the usual Arduino shield system. You can find a microSD slot, RS-232 serial port, USB port, a full-size mini-PC Express slot, Joint Test Action Group (JTAG) header, an 8-byte NOR flash, and a 100Mb Ethernet port.
Here is a short description of the Intel Galileo facility features:
- The default operating voltage of Galileo is 3.3V, but you can modify the jumper on the board to translate the voltage to 5V. The 5V option allows you to be able to use 5V Uno shields. Ensure that you check the state of this jumper before starting any project using the board.
- The 400MHz 32-bit Intel microprocessor is simple to program, can support Advanced Configuration and Power Interface (ACPI) compatible CPU sleep states and runs on an integrated Real-Time Clock (RTC).
- Among the 14 digital I/O ports, you can utilize 6 as Pulse Width Modulation (PWM) outputs. PWM is used to control the power sent to electrical devices: for example, to modulate the intensity of a LED or the speed of a DC motor. The analog pins have 12-bit resolution via an AD7298 A-to-D converter.
- The 6-pin ICSP header is situated on the same location as the other Arduino boards, so you can easily plug existing shields. The ICSP supports SPI communication.
- The Serial Peripheral Interface (SPI) port's default frequency is 4MHz to directly support the Arduino Uno shields, but you can program it to 25MHz. Note that the Galileo SPI acts as a master and cannot be a slave to other SPIs. It can be a slave to the USB client connector, though.
- The Peripheral Component Interconnect (PCI) Express slot is compliant with PCle 2.0 and works with PCle cards with an optional converter plate. Any standard module can be connected to provide Bluetooth, Wi-Fi, or cellular connection.
- The USB 2.0 port can support up to 128 USB endpoint devices.
- The 10-pin Standard JTAG header is present for debugging.
- UART TTL is available for serial communication, while a second UART is available via a 3.5mm jack for RS-232 support.
- The USB Device port supports serial (CDC) USB communication.
- Mice, keyboards, and other peripherals can be connected through the USB Host port.
- The Ethernet RJ45 connector enables wired network connections.
- Access to the micro SD is through the SD library.
- Use of TWI/I2C bus is simplified through the Arduino wire library.
Aside from the improved shield compatibility of Galileo Gen 2, it has upgraded the input power range from 7V to 15V instead of just 5V, upgraded resolution of digital pins with PWM, and provides optional 12V PoE support.
Note
In this book, we will use Galileo Gen 2.
Now that you are familiar with the parts and features of Galileo, you will learn how to set up the development environment.
Setting up the development environment
Note that you should not use the same power supply for Galileo Board Gen 1 and Gen 2. Gen 1 is only rated at 3.3V to 5V, while Gen 2 boards are powered up with a voltage between 7V and 15V. Using the Gen 2 power supply on Gen 1 boards will cause permanent damage to the Gen 1 boards.
Let's get started with setting up the development environment. You need to perform the following steps:
- First, connect the Galileo DC jack to power up your board. You will see the LEDs light up. Then, connect your Galileo board to your computer through the USB client port. Look at the picture here for the connection reference:
- Next, download the Galileo development environment. It is a custom version of the usual Arduino IDE developed by Intel. You may download the IDE at the following link:
https://communities.intel.com/docs/DOC-22226
- Install the downloaded software in your computer and launch the application.
- Before proceeding, ensure that the latest firmware is installed. To update the firmware, follow these steps:
- Navigate to Help | Firmware Update. You will need to wait for a bit, as this takes several minutes.
- Now, load the Blink example in the IDE by navigating to Examples | Basics | Blink.
- The Blink code will load and you will end up with the editor window shown in the following screenshot:
- Click on Upload to load the program.
- The LED will blink on the board.
That's how easy navigation is on the Galileo interface!
If your LED light does not blink, check the following:
- Confirm that you have the latest Galileo IDE loaded.
- Ensure that the latest firmware is installed.
- Check the version of the board that has been selected by navigating to the board in Tools | Board.
- Ensure that there are no loose cable connections.
In this chapter, you learned what the Arduino platform is, how it came to be, what it is for, where it is used, and its commercially available versions. Most of all, we found out about one of the latest boards of the Arduino platform and the first to use the Intel microprocessor: the Intel Galileo board.
We know that there are two current versions of Intel Galileo: Gen 1 and Gen 2. We will focus on Galileo Gen 2 in this book, but Gen 1 will work as well for all the projects of the book. You also learned how to set up the development environment for Intel Galileo and how to update its firmware.
We are just starting to explore the first ever Arduino board to run on an Intel microprocessor and we are just barely scratching the surface. You have so much more to discover and learn!
In the following chapters, you will learn more of Galileo's basic and core functions. You will study structure, variables, and functions of Gen 2. We will explore digital, analog, and communication applications by creating our own DIY projects. We'll also start with the weather measurement and data logging station project in the next chapter.