Build firmware for a sensor node that sends temperature readings over LoRaWAN to a cloud server.
Create a Bluetooth Low Energy device that responds to commands sent from a smartphone app.
Develop an IPv6-connected IoT device that can receive secure over-the-air firmware updates.
Port existing Unix-style C code to run on a microcontroller with real-time task scheduling.
| riot-os/riot | remzi-arpacidusseau/ostep-projects | tsudakageyu/minhook | |
|---|---|---|---|
| Stars | 5,718 | 5,738 | 5,747 |
| Language | C | C | C |
| Setup difficulty | hard | moderate | moderate |
| Complexity | 4/5 | 4/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a cross-compilation toolchain for the target architecture and physical hardware or an emulator to run firmware.
RIOT is an open-source operating system built specifically for small, low-power devices in the Internet of Things. Unlike a general-purpose operating system like Linux, RIOT is designed to run on microcontrollers, which are tiny chips with very limited memory and processing power. It supports chips using 8-bit, 16-bit, and 32-bit architectures and runs on more than 200 different boards from manufacturers that use processors from ARM, RISC-V, ESP, and others. The project focuses on being efficient with energy and memory, responding to events in real time, and providing a consistent programming interface no matter which hardware you are using. Developers write code in C, C++, or Rust and can call standard POSIX functions, which are familiar to anyone who has written Unix-style software. Optional runtimes for MicroPython, a JavaScript variant, and WebAssembly are also available for those who prefer those languages. Networking is a large part of what RIOT offers. It supports a wide range of protocols suited to IoT environments, including IPv6, UDP, TCP, Bluetooth Low Energy, LoRaWAN (a long-range, low-power radio protocol), CoAP (a lightweight request-response protocol designed for constrained devices), and MQTT (a publish-subscribe messaging protocol). These cover communication over short-range radio, long-range radio, and wired or cellular connections. Beyond networking, RIOT includes a scheduler that manages tasks with priorities and real-time timing, a file system layer, drivers for common hardware interfaces like SPI and I2C, and support for displays, GPS receivers, sensors, motors, and other peripherals. Security features include over-the-air firmware updates, encrypted communication via DTLS, and a standardized cryptography interface. RIOT is developed by an international community, governed by a published governance document, and licensed under LGPLv2.1, which allows it to be linked with proprietary code. The project provides a getting-started guide, beginner tutorials, and an online course for new contributors.
Open source real-time operating system built for tiny IoT microcontrollers with very limited memory, supporting 200+ hardware boards, wireless networking protocols, and code written in C, C++, or Rust.
Mainly C. The stack also includes C, C++, Rust.
Use and link freely including in proprietary products, but any changes you make to RIOT's own source code must be shared under the same LGPLv2.1 license.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.