The friendly Operating System for the Internet of Things. Learn more.

RIOT logo

Community

Join the RIOT!

Developers

You want to participate and contribute to the kernel development or integrate new MCU and platform support? You're welcome! Read the newcomer guide and subscribe to the RIOT-devel mailing list, which is the right place in case you have questions. For live discussions, join the IRC channel #riot-os at irc.freenode.net.

The RIOT issue tracker informs about bugs and enhancement requests. You could also subscribe to the notifications mailing list to get informed about new issues, comments, and pull requests. All commits to the source code will be posted to the commits mailing list.

Users

Whether you are looking for help with writing an application for RIOT, learn more about it, or just want to stay in the loop, you are invited to join the RIOT-users mailing list.

Testing

A high code quality and thorough testing is a major concern for the RIOT community. Therefore, established tools like embUnit - Unit Testing and Travis are used.

See the latest build status for RIOT here:

Travis Build Status

Features

Three good reasons to think about a new OS for the IoT.

glass bulb

RIOT is Developer Friendly

Program like you are used to. Do not waste time with complex or new environments.

  • Standard programming in C or C++
  • Standard tools such as gcc, gdb, valgrind
  • Minimized hardware dependent code
  • Zero learning curve for embedded programming
  • Code once, run both on 16-bit platforms (e.g. MSP430) and on 32-bit platforms (e.g. ARM)
  • Partial POSIX compliance. Towards full POSIX compliance.
  • Develop under Linux or Mac OS using the native port, deploy on embedded device
batteries

RIOT is Resource Friendly

Benefit from a microkernel architecture and a tickless scheduler on very lightweight devices.

  • Robustness & code-footprint flexibility
  • Enabling maximum energy-efficiency
  • Real-time capability due to ultra-low interrupt latency (~50 clock cycles) and priority-based scheduling
  • Multi-threading with ultra-low threading overhead (<25 bytes per thread)
symbol

RIOT is IoT Friendly

Make your applications ready for the smaller things in the Internet with common system support.

  • 6LoWPAN, IPv6, RPL, TCP, and UDP
  • Content-centric networking (CCN-lite)
  • Static and dynamic memory allocation
  • High resolution and long-term timers
  • Wiselib support (C++ algorithm library, including algorithms for routing, clustering, timesync, localization, security, and more)
  • Tools and utilities (System shell, SHA-256, Bloom filters, ...)

Comparison of Current Operating Systems

OS Min RAM Min ROM C Support C++ Support Multi-Threading MCU w/o MMU Modularity Real-Time
Contiki < 2kB < 30kB neutral orange cross red neutral orange check green neutral orange neutral orange
Tiny OS < 1kB < 4KB cross red cross red neutral orange check green cross red cross red
Linux ~ 1MB ~ 1MB check green check green check green cross red neutral orange neutral orange
RIOT ~ 1.5kB ~ 5kB check green check green check green check green check green check green
Full support
Partial support
No support

Get Started

Development and deployment with open tools and common platforms.

Getting Started

You find all the information you need to get started on the GitHub wiki and in the Introduction into RIOT. You might find answers to your questions in the FAQ.

Joint Coding

You find our coding conventions and development procedures on the GitHub wiki.

Download

RIOT is a community project and publicly available. We host our source code on GitHub. Checkout the code from https://github.com/RIOT-OS/ or download the latest release.

Native Linux and Mac OS Port

For those of you who are more familiar with non-embedded programming, you should start with the native port of RIOT. This allows to run RIOT inside a process on Linux or Mac OS. It eases the development and debugging of both, RIOT and projects written for RIOT. Such a native process can be analyzed using readily available tools such as gdb or valgrind. You can create virtual testbeds of multiple instances of RIOT running simultaneously and networked together, via a configurable topology. All you need is your PC and Linux or Mac OS!

API

The RIOT API itself can be built from the code using doxygen. The latest version is uploaded daily to http://riot-os.org/api.

Usage

Out of the box usage in industry, research, and private environments.

Hardware Support

RIOT runs on several platforms including embedded devices as well as common PCs. It supports multiple drivers, which allows you to start out of the box. The hardware dependent code is reduced to a minimum and abstracted from the kernel itself.

Architectures

  • MSP430
  • ARM7
  • Cortex-M0
  • Cortex-M3
  • Cortex-M4
  • x86

Boards

  • Arduino Due
  • UDOO Board (Cortex-M3 part)
  • Nordic nrf51822 (DevKit)
  • mbed NXP LPC1768
  • TelosB
  • Zolertia Z1
  • Texas Instruments EZ430-Chronos
  • STM32F4DISCOVERY
  • STM32F3DISCOVERY
  • STM32F0DISCOVERY
  • WSN 430 (v1.3b and v1.4)
  • HiKoB FOX
  • ScatterWeb MSB-A2
  • ScatterWeb MSB-430H

Virtualization

  • Virtual hardware platform (i.e. board and cpu) to run RIOT inside a UNIX process
  • Nativenet transceiver to create virtual testbeds
  • Configurable topology
  • Standard sniffing tools such as Wireshark
  • No special hardware required
  • RIOT embedded on PC with Linux or Mac OS

Drivers

  • Radio transceivers: CC2420, CC1100, CC1101, CC1111, and AT86RF231
  • Environmental sensors: Sensirion SHT11 Humidity and Temperature Sensor
  • Battery gas gauge: Linear Technology LTC4150 Coulomb Counter
  • Acceleration sensor: Bosch SMB380 Triaxial Sensor
  • Ultra sonic range finders: Robot Electronics SRF02 SRF08

Core Software Support

  • 6LoWPAN: RFC6282 and RFC6775 compliant
  • RPL: RFC6550 and RFC6719 compliant
  • TCP with header compression for 6LoWPAN
  • CCN-lite
  • Wiselib

Additional Tools

Open Testbeds




License

Core Code

RIOT is free software: you can redistribute it and/or modify. Software developed by the RIOT community is available under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 2 (LGPLv2).

In short, LGPLv2 allows you to redistribute, use and/or modify the free open source code developed and maintained by the RIOT community, without requiring you to necessarily open your code. Other software released under LGPLv2 include for example VLC, GNU C Library, or Git, as well as software for industrial products, such as Panasonic LCD HDTV software.

Through this license, RIOT use is suitable for virtually all scenarios. But if you think your use case is not covered, contact us and we will work something out.

External Code

Some external sources, especially files developed by SICS are published under a separate license.

But don't worry, all code files contain licensing information that provide the necessary information.

You can find our coding conventions and a template for the LICENSE preamble in the wiki.



Reference

You are using RIOT in a scientific context? Please cite RIOT as follows.

  • Oliver Hahm, Emmanuel Baccelli, Mesut Günes, Matthias Wählisch, Thomas C. Schmidt, "RIOT OS: Towards an OS for the Internet of Things," in Proceedings of the 32nd IEEE International Conference on Computer Communications (INFOCOM), Poster Session, April 2013.

About

Continuous development and progress.

History

2008

Project roots. The seed for RIOT was FeuerWare, an operating system for Wireless Sensor Networks. It was part of the FeuerWhere project where firefighters should be monitored. Major design goals were reliability and real-time guarantees.

2010

Towards Internet compliance. To increase modularity and include new IETF protocols, µkleos was forked from the orignal FeuerWare repository. Support for 6LoWPAN, RPL, and TCP was integrated over the following years.

2013

RIOT goes public. RIOT is the direct successor of µkleos. We decided on re-branding to avoid problems with spelling and pronouncing the name of the operating system. We explicitly promote RIOT to a larger community.

Future

We have a vision. Be part of the community and follow ongoing enhancements in our issue tracker. Start working on new features or let the RIOT community know what you miss!

Scientific Papers

  • Oliver Hahm, Emmanuel Baccelli, Mesut Günes, Matthias Wählisch, Thomas C. Schmidt, "RIOT OS: Towards an OS for the Internet of Things," in Proceedings of the 32nd IEEE International Conference on Computer Communications (INFOCOM), Poster Session, April 2013.

Acknowledgments and Contact

Personal Thank

To the original authors of FeuerWare, the members of the research projects AVS Extrem, G-Mesh-Lab, OPNEX, SAFEST and VIVE, and anybody else who has contributed to FeuerWare, µkleos, and RIOT.

Supporters

RIOT is significantly supported by Freie Universität Berlin, by INRIA, and by Hamburg University of Applied Sciences.

Contact

Many people are working on RIOT. Public development questions should be directed to the RIOT-devel mailing list. If you require one-to-one communication for other development questions, you can contact the RIOT maintainers, and for questions related to formal project establishment or collaboration, you can contact Emmanuel Baccelli and Matthias Wählisch.