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.
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!
The RIOT API itself can be built from the code using doxygen. The latest version is uploaded daily to http://riot-os.org/api.
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.
Development Environment in a Box
Everything in a box. RIOT supports Docker. Setup your RIOT development environment very easily. We provide a Docker repository.
Out of the box usage in industry,
research, and private environments.
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.
Arduino Mega 2560
Atmel samr21-Xplained Pro
mbed NXP LPC1768
Nordic nrf51822 (DevKit)
Texas Instruments cc2538 Developer Kit
Texas Instruments EZ430-Chronos
UDOO Board (Cortex-M3 part)
WSN 430 (v1.3b and v1.4)
Radio transceivers: CC2538, CC2420, AT86RF231
Environmental sensors: Sensirion SHT11 Humidity and Temperature Sensor, TI HDC 1000 low power humidity and temperature digital sensor, LPS331AP pressure sensor, SparkFun MQ-3 Alcohol Gas Sensor, Bosch BM180
Battery gas gauge: Linear Technology LTC4150 Coulomb Counter
Acceleration sensors: Bosch SMB380 Triaxial Sensor, Pololu LSM303DLHC 3D Compass and Accelerometer
Gyroscopes: ST L3G4200D three-axis digital output gyroscope
Ultra sonic range finders: Robot Electronics SRF02/SRF08
Light: RGB LED, ISL29020 light sensor
Virtual hardware platform (i.e. board and cpu) to run RIOT inside a UNIX process
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.1 (LGPLv2.1).
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. Do you need more arguments?
Please read our FAQ.
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.
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 details.
You can find our coding conventions and a template for the LICENSE
preamble in the wiki.
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.
Continuous development and progress.
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.
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
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.
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!
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
Acknowledgments and Contact
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.
Furthermore, a special thank goes to Peter Schmerzl!
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, Thomas Schmidt, and