Sobre o projeto

RIOT é um sistema operacional de microcontroladores de código aberto voltado para a Internet das Coisas (IoT) e outros dispositivos embarcados. Ele tem como alvo microcontroladores de 8, 16 e 32 bits e é construído em torno de eficiência energética, capacidades de tempo real, pequeno consumo de memória, modularidade e uma API uniforme que é parcialmente compatível com POSIX e independente do hardware subjacente. As plataformas suportadas incluem mais de 200 placas baseadas em AVR, MSP430, ESP8266, ESP32, RISC-V, ARM7 e ARM Cortex-M. Uma porta nativa permite que o RIOT seja executado como está no Linux e BSD, e múltiplas instâncias em uma mesma máquina podem ser interconectadas por meio de uma ponte Ethernet virtual ou de uma rede IEEE 802.15.4 simulada (ZEP). A programação pode ser feita em C, C++ ou Rust, usando APIs POSIX, abstrações de hardware e interfaces padrão de Rust para embarcados. Runtimes dinâmicos como MicroPython, elm (JavaScript) e WASM podem ser integrados. O suporte de rede abrange IPv6, IPv4 via lwIP, 6LoWPAN, UDP, TCP, RPL, CoAP, MQTT e MQTT-SN, LwM2M, Bluetooth LE via NimBLE, LoRaWAN, UWB, CAN, IEEE 802.15.4, Ethernet (inclusive via USB), rede serial SLIP/ethos e rede semelhante a single-pair Ethernet sobre UART. Os recursos de segurança incluem atualizações OTA via SUIT, a PSA Cryptographic API, DTLS e EDHOC. Os recursos do sistema incluem um escalonador preemptivo tickless com prioridades e round robin periódico opcional, gerenciamento flexível de memória, temporizadores de alta resolução e longo prazo, uma camada de abstração MTD para dispositivos de memória e integração com sistemas de arquivos. Os drivers de dispositivo abrangem SPI, I2C, UART, USB, CAN, RTC, PWM, temporizadores, ADC, DAC, sensores ambientais, IMUs, magnetômetros, sensores de material particulado, servos, motores, dimmers, interruptores, LEDs RGB, displays, telas sensíveis ao toque e GNSS. O projeto é desenvolvido por uma comunidade internacional independente de fornecedores específicos e é licenciado sob LGPLv2.1, o que permite a vinculação de código de código fechado. Os recursos para começar incluem um guia, tutoriais práticos, um curso online e documentação da API. O código-fonte pode ser clonado via Git ou baixado das versões trimestrais. O suporte da comunidade está disponível por meio de um fórum e do chat Matrix, com relatórios de bugs e solicitações de recursos tratados no GitHub.