À propos du projet

RIOT est un système d'exploitation open-source pour microcontrôleurs destiné à l'Internet des objets (IdO) et à d'autres appareils embarqués. Il cible les microcontrôleurs 8 bits, 16 bits et 32 bits et est conçu autour de l'efficacité énergétique, des capacités temps réel, d'une faible empreinte mémoire, de la modularité et d'une API uniforme partiellement compatible POSIX et indépendante du matériel sous-jacent. Les plateformes prises en charge incluent plus de 200 cartes basées sur AVR, MSP430, ESP8266, ESP32, RISC-V, ARM7 et ARM Cortex-M. Un port natif permet à RIOT de fonctionner tel quel sur Linux et BSD, et plusieurs instances sur une même machine peuvent être interconnectées via un pont Ethernet virtuel ou un réseau IEEE 802.15.4 simulé (ZEP). La programmation peut se faire en C, C++ ou Rust, en utilisant les API POSIX, les abstractions matérielles et les interfaces Rust embarquées standard. Des environnements d'exécution dynamiques tels que MicroPython, elm (JavaScript) et WASM peuvent être intégrés. La prise en charge réseau couvre IPv6, IPv4 via lwIP, 6LoWPAN, UDP, TCP, RPL, CoAP, MQTT et MQTT-SN, LwM2M, Bluetooth LE via NimBLE, LoRaWAN, UWB, CAN, IEEE 802.15.4, Ethernet (y compris via USB), la mise en réseau série SLIP/ethos et la mise en réseau de type single-pair-Ethernet sur UART. Les fonctionnalités de sécurité incluent les mises à jour OTA via SUIT, l'API cryptographique PSA, DTLS et EDHOC. Les fonctionnalités système incluent un planificateur préemptif sans tick avec priorités et tourniquet périodique optionnel, une gestion flexible de la mémoire, des minuteries haute résolution à long terme, une couche d'abstraction MTD pour les dispositifs mémoire et l'intégration de systèmes de fichiers. Les pilotes de périphériques couvrent SPI, I2C, UART, USB, CAN, RTC, PWM, minuteries, ADC, DAC, capteurs environnementaux, IMU, magnétomètres, capteurs de particules, servos, moteurs, gradateurs, interrupteurs, LED RGB, écrans, écrans tactiles et GNSS. Le projet est développé par une communauté internationale indépendante des fournisseurs spécifiques et est sous licence LGPLv2.1, ce qui permet de lier du code propriétaire. Les ressources de démarrage incluent un guide, des tutoriels pratiques, un cours en ligne et une documentation API. Le code source peut être cloné via Git ou téléchargé à partir des versions trimestrielles. Le support communautaire est disponible via un forum et un chat Matrix, avec les rapports de bugs et les demandes de fonctionnalités gérés sur GitHub.