← Projects

FlintOS

Rust · no_std · ESP32 + RP2040 · Apache-2.0 · v0.1

FlintOS is a preemptive real-time operating system for 32-bit microcontrollers, written in no_std Rust. It boots, schedules and preempts on real silicon across two architectures — Xtensa on the ESP32 family, and ARMv6-M on the RP2040 — with 48 priorities banded into Critical, Normal and Background, round-robin within a level, and a 1 ms tick.

The build has no Kconfig, no CMake and no vendor SDK. A clone and a single make flash BOARD=<your board> puts three tasks on a board, and adding a new board is one manifest file. The board argument is deliberately required with no default, because a wrong pin map looks like broken hardware rather than a build error.

It is pre-alpha, and the project says so plainly: it runs on real hardware, but most drivers are thin and the API will change. If you need general-purpose userspace isolation, a filesystem today, or something production-proven, FreeRTOS, Zephyr and Embassy are the better answers.

Advantages & key features

  • Preemptive from the first line — 48 priorities, mutexes with priority inheritance, and typed bounded queues with an ISR-safe send
  • A three-layer driver model enforced by a CI lint rather than convention: a new sensor is only a device driver, a new peripheral is only a register driver
  • Verified on hardware on both architectures — ESP32-DevKitC, three M5Stack boards, the Raspberry Pi Pico and the Wio RP2040 Mini
  • On ESP32, Wi-Fi runs as a station: a first-party Rust supplicant completes a WPA2-PSK handshake, then DHCP, DNS and outbound TCP come up over smoltcp
  • On RP2040, opt-in isolated compute tasks get private guarded stacks and a restricted supervisor-call API, verified on both cores
  • Debugging at zero release cost — levelled logging, metrics, stack high-water marks and postmortem capture all compile out when the feature is off
  • 1,216 host test executions, plus on-target self-test suites over serial on Xtensa and over SWD on ARM

What we did

FlintOS is our own project, designed and built in-house and released under Apache-2.0 with its patent grant. The kernel, both architecture ports, the SoC and board layers, the driver stack and the Rust Wi-Fi supplicant are all first-party — there is no vendor SDK underneath.

Products

  • flintos.dev ↗ Quickstart, the layer model, supported boards and pinouts, and the generated API reference.
  • GitHub ↗ Source and issue tracker. Open work lives in the issues, which the project treats as its source of truth.