Click here to Skip to main content
14,122,160 members
Click here to Skip to main content
Add your own
alternative version


1 bookmarked
Posted 19 Jul 2016
Licenced CPOL

Navigating The Landscape Of Ides

, 19 Jul 2016
Rate this:
Please Sign up or sign in to vote.
This article provides general guidelines to help you choose the right IDE for your projects as well as the high-level features and programming languages that each IDE supports.

This article is for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers

Get access to the new Intel® IoT Developer Kit, a complete hardware and software solution that allows developers to create exciting new solutions with the Intel® Galileo and Intel® Edison boards. Visit the Intel® Developer Zone for IoT.

Intel offers three integrated development environments (IDEs)—Intel® XDK IoT Edition, Intel® System Studio IoT Edition, and the Arduino* IDE—to help you build and deploy your Internet of Things (IoT) projects. The choice of IDE depends on your project and its device requirements as well as which programming language you’ll use to interface with the devices. This article provides general guidelines to help you choose the right IDE for your projects as well as the high-level features and programming languages that each IDE supports.

Intel® XDK IoT Edition

Intel® XDK IoT Edition is a HTML5 hybrid–Node.js* application development environment that you can use to create, run, debug, and deploy JavaScript*-based IoT projects. Many development boards have adopted the Node.js programming language, making it an ideal choice if you want to read sensor values and transmit the sensor data quickly to the cloud for further processing. Together with the HTML5 hybrid development environment that Intel® XDK IoT Edition provides, you can easily create an application (web application or mobile app) that displays the sensor values.

To get you started, Intel® XDK IoT Edition provides a variety of Node.js templates and samples for running on Intel® IoT platforms like the Intel® Edison and Intel® Galileo boards. These templates make it easier to interface with sensors and actuators connected to your board. Figure 1 provides a snapshot of the template view in Intel® XDK IoT Edition.

Figure 1. Templates in Intel® XDK IoT Edition

A list of supported sensors and actuators is available in the IoT Sensor Library Explorer, which makes it easier to add sensor code or modify the code to interact with a component (Figure 2). The code uses the Libmraa* sensor communication library to communicate with sensors. 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. The code available in the Sensor Library Explorer is part of the sensor library project included with the Useful Packages & Modules (UPM). UPM makes calls to MRAA application programming interfaces to provide a high-level repository for various sensors and a standard pattern for integrating with them.

Figure 2. IoT Sensor Library Explorer

Intel® XDK IoT Edition also provides HTML5 hybrid templates that you can use or customize to deploy your IoT application to the web or mobile devices (Android*, iOS*, or Windows*). To test your application, you can use the emulator or deploy it to an actual device. Typical use cases include reading the values from the sensor, performing analysis, and displaying the analyzed sensor data on the web or on mobile devices or sending out notifications.

Intel® System Studio IoT Edition

Intel® System Studio IoT Edition is an IDE based on Eclipse* for developing in the C++ or Java* programming language. It allows you to connect, update, and develop IoT projects on a compatible board, such as the Intel® Edison board or Intel® Galileo board. You use C++ when you need full control over your interactions with a device, and a host of C++ libraries is available. For instance, if your application involves image processing (for example, facial recognition), you’re better off using the readily available Open Source Computer Vision (OpenCV) C++ libraries rather than building your own.

Intel® System Studio IoT Edition is available for Windows, Mac* OS X*, or Linux*. To get started, download the installer for your operating system. You can create Java or C++ projects and add the appropriate sensors to start interacting with the components on boards. Figure 3 shows the Intel® System Studio IoT Edition IDE.

Figure 3. The Intel® System Studio IoT Edition integrated development environment

To make it easier to interface with sensors, you can import the required UPM and MRAA libraries (C++ or Java) for your sensors to the IDE and start interacting with the devices.

Intel System Studio IoT Edition also makes it easier to synchronize the libraries that your projects use in the IDE and on the actual devices, ensuring that you always use the latest libraries. The IDE also makes it easier to work with and synchronize code across multiple development boards.

The Arduino* IDE

Arduino* is an easy, open source, C++-based programming environment that makes it easier to program devices using the Arduino language and deploy applications on compatible boards. Arduino is supported on the Intel® Edison board and Intel® Galileo board, as well as Arduino 101*/Genuino 101* boards (which ship with the Intel® Curie™ Compute Module).

You use the Arduino IDE primarily when you’re working with Arduino-compatible devices, such as the Intel® Edison board, Intel® Galileo board, and Arduino 101/Genuino 101 boards. Because Arduino is widely supported, it’s a good choice when you want to build meaningful IoT applications quickly by adding sensors, actuators, and shields (such as Wi-Fi shields) because many code samples are available.

The Arduino IDE is available for Windows*, Mac OS X*, and Linux*. To get started, download the installer for your operating system. Start the Arduino application, and then choose Tools > Board > Boards Manager to select your board type and install it on the Arduino board. For the Intel® Edison board, choose Intel i686 Boards. For the Galileo board, choose Intel i586 Boards; for Intel® Curie™ modules, choose Arduino/Genuine 101. You can than create a sketch (that is, programming code) or install one of the available examples the IDE provides (such as LED blink) on your board.


Intel doesn’t currently provide an IDE for Python*, but you can use any of the available Python IDEs to build and deploy Python code on compatible boards, including the Intel® Edison board, or Intel® Galileo board. You can use the Python libraries available in UPM at GitHub* at to interact with compatible sensors.


This article discussed the various Intel® IDEs for developing IoT solutions. It looked at the typical requirements for when to use a particular IDE based on your project requirements. Using these IDEs makes it easier to interact with sensors and actuators through MRAA and UPM libraries and build, deploy, debug, and run your IoT projects.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Intel Corporation
United States United States
You may know us for our processors. But we do so much more. Intel invents at the boundaries of technology to make amazing experiences possible for business and society, and for every person on Earth.

Harnessing the capability of the cloud, the ubiquity of the Internet of Things, the latest advances in memory and programmable solutions, and the promise of always-on 5G connectivity, Intel is disrupting industries and solving global challenges. Leading on policy, diversity, inclusion, education and sustainability, we create value for our stockholders, customers and society.
Group type: Organisation

43 members

You may also be interested in...


Comments and Discussions

-- There are no messages in this forum --
Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web01 | 2.8.190518.1 | Last Updated 19 Jul 2016
Article Copyright 2016 by Intel Corporation
Everything else Copyright © CodeProject, 1999-2019
Layout: fixed | fluid