This section provides an overview of the various software components that you'll use to create your Intel® IoT Gateway solution. Although you can technically get up and running without the information in this section, you'll need a basic understanding of what you're installing and why to start really developing your own projects.
This section contains a summary of the gateway operating systems supported by the Intel® IoT Developer Kit.
Intel® IoT Gateway Software Suite
The Intel® IoT Gateway Software Suite is a free-to-use software suite, designed to provide a cost-effective way for users to explore Intel® IoT Gateway Technology. When you install it as an image on your gateway, it comes with the following:
- Wind River* Intelligent Device Platform XT: A customizable middleware development environment that provides security, connectivity, rich networking options, and device management. It includes Wind River Linux* 7, which simplifies the development, integration, and deployment of gateways for the Internet of Things. In the binary image you'll have access to the Intel® IoT Gateway Developer Hub, an on-gateway user interface to make evaluation and development easier than ever by providing quick visual programming tools, cloud connectors, and other helpful development features.
- McAfee® Embedded Control Essential: A limited version of McAfee® Embedded Control, made especially for our Software Suite to provide recommended base security settings during the evaluation and prototyping stages. McAfee Embedded Control Essential lets you update files in the home directory without restriction; unauthorized changes to all other files are detected and execution is prevented, stopping malware before it can run. Updates to system files require a password and a simple begin/end update command sequence. If and when you decide to move to the Pro Software Suite, the upgrade includes a smooth transition to the fully-featured McAfee® Embedded Control Pro.
About the Intel® IoT Gateway Developer Hub
The Intel® IoT Gateway Developer Hub is a web-based, on-gateway user interface (UI) included in the Intel IoT Gateway Software Suite. Essentially, it's a portal that you can log into from a browser to view information about your gateway, view sensor information, install packages and software updates, and more. The Intel IoT Gateway Developer Hub allows for quick evaluation and development of your IoT application.
- Development tools: With built-in tutorials, you can quickly begin working with visual programming tools like Node-RED* and Wind River Helix* App Cloud.
- Security made easy: Apply preconfigured security profiles (including McAfee Embedded Control for white-listing) to your OS image with the click of a button.
- Update and customize: Use Cloud Commander to quickly integrate your own application and customize it with downloadable packages from Intel or third parties right in the user interface, enabling easy updates and feature delivery through RPM.
Ubuntu* 16.04 LTS or Ubuntu* Server 16.04 LTS
Ubuntu* 16.04 LTS is a well-known, user-friendly Linux* distribution available for laptop and desktop computers; the Intel IoT Developer Kit now includes support for Ubuntu* on the Intel® IoT Gateway. Two flavors of Ubuntu* are supported on gateways, depending on the type of gateway you choose to work with, as described below:
- For the Gigabyte* GB-BXBT-3825 or Dell Wyse* 3290, Ubuntu Desktop is supported: https://www.ubuntu.com/desktop
- For the Intel® NUC, Ubuntu* Server 16.04 LTS is supported: https://www.ubuntu.com/server
Wind River Pulsar* Linux*
Wind River Pulsar* Linux* is a small, high-performance, secure, and manageable Linux distribution designed to simplify and speed your embedded and IoT development projects. It is available at no additional cost on the MinnowBoard Turbot*.
Wind River Pulsar Linux combines the best of Wind River open source technology and delivers it without the traditional cross-build complexity. Designed to be simple to download and develop on, Pulsar provides a vendor certified and ready-to-use binary image for specific hardware, delivered as an application-ready platform. It includes selected packages and middleware from Intel's traditional Wind River Linux* and market-specific profiles.
MRAA and Firmata
The MRAA I/O library, also called libmraa, allows you to access and manipulate the basic capabilities of an IoT board. MRAA is a low-level library written in the C language and serves as a translation layer on top of the Linux* general purpose input/output (GPIO) facilities. MRAA makes developing programs less complicated because it can be used to create platform-independent code; in other words, you can use the same code to talk to different hardware boards. See the MRAA page on GitHub for additional background information and details.
During the setup process, you install MRAA on your gateway. Because your sensors are connected to the Arduino 101* (branded Genuino 101* outside the U.S.) board, however, MRAA has been enhanced to allow you to run MRAA code on the Arduino 101 board. As of Intel® IoT Developer Kit 3.5, MRAA abstracts the Firmata protocol, allowing you to control the Arduino 101 board from the gateway using the same code.
Specifically, on the Dell Wyse* 3290, Gigabyte* GB-BXBT-3825, and Intel® NUC, you load a general purpose Firmata sketch on your Arduino 101 board. This Firmata sketch then listens for MRAA code running from the gateway. When you run your code from the gateway, the Firmata sketch does all the work necessary to run the code on the Arduino 101 board.
Note that in the setup described in this guide, you are essentially using an Arduino 101 board with Firmata sketch as a subplatform, as opposed to directly connecting and programming the Arduino 101 board with your host computer. For this reason, you'll need to add an offset of 512 to the pin number when working with the pins on the Arduino 101 board. For example, when initializing pin 13 on the Arduino 101 board (the onboard LED), you would instead initialize pin 13 + 512 = pin 525.
The combination of Firmata sketch and Arduino 101 board is not required for the MinnowBoard Turbot; instead, you can connect sensors directly to the MinnowBoard Turbot.
For additional information on the Firmata library for Arduino and Arduino-compatible devices, see https://github.com/firmata/arduino. For general information on the Firmata protocol, see https://github.com/intel-iot-devkit/mraa/tree/master/src/firmata.
Integrated development environments (IDEs)
If you're not programming your gateway using the Node-RED visual programming interface (available for gateways running the Intel IoT Gateway Software Suite), you'll need an IDE to use when creating your project code and running it on your gateway device. The Intel IoT Developer Kit provides the following IDEs:
- Use the Intel® System Studio to program gateways running Ubuntu. For steps to install this application, see the readme. General information on the Intel System Studio, including steps to perform common tasks like creating new projects, uploading code to your board, and more, is included in the Intel® System Studio User Guide for Internet of Things (IoT) C/C++ Development.
- Use the Intel® System Studio IoT Edition to program gateways running Intel IoT Gateway Software Suite or Wind River Pulsar Linux. For steps to install and use this IDE, see Intel® System Studio IoT Edition User Guide for C/C++ or Intel® System Studio IoT Edition User Guide for Java*.
Refer to the FAQ for detailed information on compatibility with gateways and the Intel IoT Developer Kit.