The Intel® Edison Module is a tiny SD card–sized computing chip designed for building Internet of Things (IoT) and wearable computing products. The Edison module contains a high-speed, dual-core processing unit, integrated Wi-Fi*, Bluetooth* low energy, storage and memory, and a broad spectrum of input/output (I/O) options for interfacing with user systems. Because of its small footprint and low power consumption, the Edison module is an ideal choice for projects that need a lot of processing power without being connected to a power supply.
The Edison module is meant to be embedded in devices or development boards for connectivity and power options. To get started, Intel® provides the Intel® Edison Kit for Arduino* and Intel® Edison Breakout Board Kit*, which you can use for rapid prototyping. For production deployment, you can also create a custom board.
The Intel® Edison Kit for Arduino allows for quick and easy prototyping with open source hardware and the widely used Arduino software development environment. The kit gives you the option to extend the Edison module to interface with existing Arduino UNO R3 shields for extended functionality. The Intel® Edison Breakout Board Kit primarily provides power and USB connectivity options; for instance, you can connect the Edison board to your laptop’s USB port and get started quickly.
Intel® Edison Module Overview
Figure 1 shows the block diagram of the Edison module.
[Source: http://download.intel.com/support/edison/sb/edisonmodule_hg_331189004.pdf]
The module consists of an Intel® Atom™ processor operating at a clock speed of 500 MHz and 4 GB of managed flash memory. By default, the Yocto Linux* operating system is installed in flash memory.
For Wi-Fi and Bluetooth low energy connectivity, the module includes a Broadcom BCM43340 chip that supports standard dual-band 2.4-GHz and 5-GHz IEEE 802.11 a/b/g/n standards as well as Wi-Fi Protected Access (WPA) and WPA2 (personal) for powerful encryption and authentication. This connectivity option makes it easier to connect Edison module embedded devices to existing Wi-Fi infrastructure in a standardized way. Bluetooth low energy enables Edison devices to connect to other Bluetooth low energy devices like smartphones so that the smartphone can act as a gateway to connect to the Internet.
Connectivity options for an IoT product is a key design consideration for how the IoT product would interface with the world. With the Edison module providing support for the two most widely-used connectivity options, it’s easier to focus on the actual product. The Edison module interfaces with user systems through a Hirose 70-pin DF40 Series header connector, which has 40 pins dedicated to general-purpose I/O (GPIO).
The Edison module provides a solid set of unique capabilities, starting with a small form factor, high-speed dual core processor, low power usage, standard connectivity options, and a broad set of I/O support. These features enable a variety of use cases for building innovative connected solutions.
Programming the Intel® Edison Module
To program the Edison module, you can use the C, C++, Python*, or JavaScript* (Node.js*) programming language. To develop and debug the device code on Edison development boards or devices, download the integrated development environment (IDE) for your programming environment. For instance, you can download Intel® XDK for JavaScript, Intel® System Studio IoT Edition for C/C++, Intel® System Studio IoT Edition for Java, or the Arduino IDE for programming an Edison board with Arduino. The choice of IDE depends on your project and device requirements as well as which programming language you’ll use to interface with the devices.
To interact with sensors and actuators on Edison devices (or any supported device), Intel® provides the Libmraa* library. Libmraa provides an abstraction layer on top of supported hardware, so that you can read data from sensors and actuators in a standard way and create portable code that works across supported platforms. To check supported sensors and actuators from various manufacturers for Edison devices, browse the Useful Packages & Modules (UPM) Sensor/Actuator repository at GitHub* (https://github.com/intel-iot-devkit/upm). UPM is a high-level repository for various sensors, and provides a standard pattern for integrating with sensors using the Libmraa library. With the option of widely-used programming languages and a community of various sensor projects, you can reuse your existing programming knowledge to develop connected products, and use the Libmraa library to interact easily with GPIO pins for I/O functionality.
Connecting Edison Devices to a Cloud Platform
Based on your IoT solution, you’ll have to connect Edison devices to a cloud platform for further computation and advanced analytics of sensor data. Edison devices provide seamless support for connecting to leading cloud platforms like Microsoft Azure*, IBM Watson* IoT Platform, or Amazon Web Services* (AWS*).
These cloud platforms typically provide a software development kit (SDK) or device SDK in C++, Python, or JavaScript, which makes it easier to connect Edison devices (or any device, for that matter). The typical development process involves reading the sensor values from the devices and transmitting the sensor data to the cloud platform over supported protocols like Message Queuing Telemetry Transport or Advanced Message Queuing Protocol from the SDK library. See the following links for details on connecting Edison devices to cloud platforms:
- Using the IBM Watson* IoT Platform with Intel® IoT Devices and Gateways
- Using Microsoft Azure* IoT Suite with Intel® IoT Devices and Gateways
- Using Amazon Web Services* (AWS) IoT with Intel® IoT Devices and Gateways
To start building IoT applications quickly, you could also buy starter kits that include an Edison board and come preinstalled with connectivity to a cloud platform. For details, check out the following links:
- Intel® Edison Board and Grove* Indoor Environment Kit, Powered by AWS*
- IoT Development Made Easy on IBM* Cloud
- Intel and Microsoft Work Better Together
What Will You Develop?
The Edison module provides endless opportunities for building connected products for consumer and industrial use cases:
- Consumer Use Cases. Use cases range from embedding an Edison module in wearable devices like watches or health devices for tracking various health and lifestyle parameters to home automation devices for controlling entertainment equipment or smart energy utilization.
- Edge Analytics. The Edison module, because of its dual-core, high-speed processor and low power usage, can be embedded in industrial devices to provide local analytics and computation support. Example use cases include running analytics or algorithms locally on devices for condition-based maintenance of machinery equipment and raising alerts to image analysis and object recognition for surveillance and security purposes in smart buildings.
For other projects that makers are developing with this tiny, innovative module, check out:
- IoT Path-to-Product: How to Build the Smart Home Prototype
- How-To Intel® IoT Technology Code Samples: Watering System In C++
- Analysis of High-Volume Sensor Data
- Control Robots Using Cylon.js* and the Intel® Edison Board
- A Support Vector Machine Implementation for Sign Language Recognition on Intel Edison
- Reach: Intel® Edison Based Device Is Making Highly Precise GPS Affordable for Everyone
- Hackster.io, a community of projects and ideas for the Edison board (https://www.hackster.io/intel/products/intel-edison)
Summary
This article looked at the Intel® Edison Module, its hardware specification, and itscore set of features—all of which provide unique opportunities for makers to build connected products. It looked at the programming languages that the Edison module supports, the available IDEs, and the Libmraa library for rapid development and deployment of Edison devices. Finally, you saw how to connect Edison devices to cloud platforms and discovered use cases for Edison technology. The Edison module provides many capabilities; it’s up to you and your imagination to discover what you can build.