The Intel® Internet of Things (IoT) Developer Kit (dev kit) is a complete solution for creating and testing applications targeted for Intel® IoT platforms like the Intel® Galileo board.
The Intel IoT Developer Kit provides software and hardware components for developers to create innovative projects using the Galileo board and the Grove* Starter Kit. The software’s three main parts are: the Eclipse* Integrated Development Environment, the Yocto Linux* system, and a set of libraries, which provides an easy way to control the hardware components integrated into the Galileo board and allow high-level access to the sensors and actuators.
The Yocto Linux is a meta distribution designed for embedded projects. More than just a Linux distribution, Yocto is an environment for producing tailored Linux-based operating systems. Yocto provides tools for selecting software packages, preparing settings, and creating images that can be used to install the OS. Yocto is the operating system that powers the Intel Galileo board. The developer kit’s version includes even more libraries and resources to help developers create applications in their favorite programming language. This version includes GCC*, Python*, Node.js*, OpenCV*, to name a few. If you would like to know more about Yocto, visit www.yoctoproject.org.
The Eclipse* IDE has been customized to create and run applications directly on the Galileo board. It has preinstalled libraries, compilers, and settings for cross compiling from a Linux* environment to the Yocto system into the Galileo. This custom version of Eclipse also provides sample applications that we’ll show you how to use in a later section. Eclipse offers the ability to remotely run and debug your application from your desktop. Since Galileo is intended for IoT projects, its processing power is somewhat limited, so bigger or more complex projects can take advantage of a more powerful processor to run a complete developer environment. It certainly does not mean that developers are bound to Eclipse, but it’s a great tool to have.
The libmraa and UPM included in the kit are specially designed for the Galileo board. libmraa  is a low-level library that offers a translation from the General Purpose Input/Output (GPIO) interfaces to the pins available on Galileo. So instead of reading the raw level information from the GPIO module available on the Linux kernel, you can easily select a pin number and work directly with it—libmraa will take care of the underlying details. UPM is a high-level repository of sensor representations, written in C++, utilizing the libmraa. Supported sensors have a corresponding class in UPM, offering an object representation of this sensor and some useful functions specific to that sensor. For instance, the Grove Buzzer has a Buzzer class available in UPM, together with a useful playSound(int) function definition. Both libraries are available with an open-source license and welcome contributions from developers. You can submit your code to the Github repository for UPM or libmraa.
In the next sections, you will see how to set up these elements to create a complete developer environment. Now, however, let’s look at the hardware components.