Operating Systems

Originally created by Qualcomm, this open source operating system for the Internet of Things is now sponsored by one of the most prominent IoT organizations—The AllSeen Alliance, whose members include the Linux Foundation, Microsoft, LG, Qualcomm, Sharp, Panasonic, Cisco, Symantec and many others. It includes a framework and a set of services that will allow manufacturers to create compatible devices. It's cross-platform with APIs available for Android, iOS, OS X, Linux and Windows 7.

Contiki describes itself as "the open source OS for the Internet of Things." It connects low-power microcontrollers to the internet and supports standards like IPv6, 6lowpan, RPL and CoAP. Other key features include highly efficient memory allocation, full IP networking, very low power consumption, dynamic module loading and more. Supported hardware platforms include Redwire Econotags, Zolertia z1 motes, ST Microelectronics development kits and Texas Instruments chips and boards. Paid commercial support is available.

While the Raspberry Pi was intended as an educational device, many developers have begun using this credit-card-sized computer for IoT projects. The complete hardware specification is not open source, but much of the software and documentation is. Raspbian is a popular Raspberry Pi operating system that is based on the Debian distribution of Linux.

RIOT bills itself as "the friendly operating system for the Internet of Things." Forked from the FeuerWhere project, RIOT debuted in 2013. It aims to be both developer- and resource-friendly. It supports multiple architectures, including MSP430, ARM7, Cortex-M0, Cortex-M3, Cortex-M4, and standard x86 PCs.

Spark is a distributed, cloud-based IoT operating system. The same company also offers easy-to-use hardware development kits and related products that start at just $39 (and the hardware designs are also open source). It includes a Web-based IDE, a command-line interface, support for multiple languages, and libraries for working with many different IoT devices. It has a very active user community, and a lot of documentation and online help are available.

Freeboard aims to let users create their own dashboards for monitoring IoT deployments. The code is freely available on GitHub or you can try the service for free if you make your dashboard public. Low-priced plans are also available for those who want to keep their data private. Sample dashboards oon the site show how they can be used to track air quality, residential appliances, distillery performance or environmental conditions in a humidor.

Exciting offers an open source kit for experimenting with IoT printing. It makes it possible to build your own small printer and use that printer to print out information obtained from various IoT devices. For example, it could print out a list of daily reminders, the weather report, etc. And in a interesting twist, if you want to contact the project owners, you can draw a picture that will be printed on the IoT printer in their office.

Platforms and Integration Tools

This project offers a machine-to-machine (M2M) communication framework for connecting devices to the Internet of Things. It includes easy-to-use Web-based management software for creating networks, applying security rules and monitoring devices. The website offers sample projects built with DeviceHub, and it also has a "playground" section that allows users to use DeviceHub online to see how it works.

Devicehub.net describes itself as "the open source backbone for the Internet of Things." It's a cloud-based service that stores IoT-related data, provides visualizations of that data and allows users to control IoT devices from a Web page. Developers have used the service to create apps that track health information, monitor the location of children, automate household appliances, track vehicle data, monitor the weather and more.

The group behind this project is working on a variety of tools for integrating multiple IoT-related sensor networks and protocols. The primary project is a Smart Object API, but the group is also working on an HTTP-to-CoAP Semantic mappin , an application framework with embedded software agents and more. They also sponsr a meetup group in Silicon Valley for people who are interested in IoT development.

Mango bills itself as "the world's most popular open source Machine-to-Machin (M2M) software." Web-based, it supports multiple platforms. Key features include support for multiple protocols and databases, meta points, user-defined events, import/export and more.

Nimbits can store and process a specific type of data—data that has been time- or geo-stamped. A public platform as a service is available, or you can download the software and deploy it on Google App Engine, any J2EE server on Amazon EC2 or on a Raspberry Pi. It supports multiple programming languages, including Arduino, JavaScript, HTML or the Nimbits.io Java library.

OpenRemote offers four different integration tools for home-based hobbyists, integrators, distributors, and manufacturers. It supports dozens of different existing protocols, allowing users to create nearly any kind of smart device they can imagine and control it using any device that supports Java. The platform is open source, but the company also sells a wide variety of support, ebooks and other tools to aid in the design and product development process.

SiteWhere is an open source IoT platform. It provides a system that facilitates the ingestion, storage, processing, and integration of device data. This project provides a complete platform for managing IoT devices, gathering data and integrating that data with external systems. Github

ThingSpeak can process HTTP requests and store and process data. Key features of the open data platform include an open API, real-time data collection, geolocation data, data processing and visualizations, device status messages and plugins. With ThingSpeak, the user can create sensor logging applications, location tracking applications, and a social network of things with status updates.