NuttX

NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards.

Features

  • Standards Compliant.
  • Core Task Management.
  • Modular, micro-kernel.
  • Fully pre-emptible.
  • Naturally scalable.
  • Highly configurable.
  • Easily extensible to new processor architectures, SoC architecture, or board architectures. See Porting Guide.
  • FIFO and round-robin scheduling.
  • Realtime, deterministic, with support for priority inheritance.
  • POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, environment variables, filesystem.
  • VxWorks-like task management and watchdog timers.
  • BSD socket interface.
  • Extensions to manage pre-emption.
  • Optional tasks with address environments (Processes).
  • Inheritable

Sample projects and resources

  • spresense. Spresense SDK source code.
  • pinephone-nuttx. Apache NuttX RTOS for PinePhone.
  • spresense-nuttx. NuttX fork for Spresense.
  • pinephone-emulator. Emulate PinePhone and Apache NuttX RTOS with Unicorn Emulator.
  • zig-bl602-nuttx. Zig on RISC-V BL602 with Apache NuttX RTOS and LoRaWAN.
  • luavgl. lua + lvgl = luavgl An optimized lvgl Lua binding.
  • NuttX-apps. Standard NuttX apps with current PX4 patches.
  • nuttx.rs. Rust’s std library like wrapper for NuttX.
  • pinephone-lvgl-zig. LVGL for PinePhone (and WebAssembly) with Zig and Apache NuttX RTOS.
  • nuttx-star64. Apache NuttX RTOS for Pine64 Star64 64-bit RISC-V SBC (StarFive JH7110).
  • smoothie-nuttx. A version of nuttx used by smoothie-v2.
  • zig-lvgl-nuttx. Zig LVGL Touchscreen App on Apache NuttX RTOS.
  • cst816s-nuttx. Hynitron CST816S Touch Controller Driver for Apache NuttX RTOS.
  • rust-i2c-nuttx. Rust talks I2C to Bosch BME280 Sensor on Apache NuttX RTOS.
  • visual-zig-nuttx. Visual Programming for Zig with NuttX Sensors.
  • rust_test. Rust Test App for Apache NuttX OS.
  • rust-nuttx. Rust Stub Library for Apache NuttX OS.
  • nuttx-embedded-hal. Rust Embedded HAL for Apache NuttX RTOS.
  • pinedio-stack-nuttx. PineDio Stack BL604 RISC-V Board on Apache NuttX RTOS.
  • NuttX-Chinese. NuttX 实时操作系统 官方网站:www.nuttx.org.
  • nuttx_api_examples. nuttx api examples.
  • nuttx-riscv64. Apache NuttX RTOS on 64-bit RISC-V.
  • FMoto. FM Transmitter for Moto Mod Developer Production..
  • st7789-nuttx. ST7789 and LVGL Demo for Apache NuttX RTOS.
  • remote-bl602. Flash and test BL602 remotely via a Linux Single-Board Computer.
  • pinephone-nuttx-usb. PinePhone USB Driver for Apache NuttX RTOS.
  • mcontrol. PX4/NuttX application to control PX4 Quadcopter internally without any external companion computer.
  • bl602_adc. BL602 ADC and Temperature Sensor Library for Apache NuttX OS.
  • bl602_expander. GPIO Expander for BL602 / BL604 on Apache NuttX RTOS.
  • nxscli. A command-line client to the Apache NuttX NxScope real-time logging module.
  • lorawan_test. LoRaWAN Test App for Apache NuttX OS.
  • bl602_adc_test. Test App for BL602 ADC and Temperature Sensor Library for Apache NuttX OS.
  • sx1262_test. LoRa Test App for Semtech SX1262 and Apache NuttX OS.
  • bme280-nuttx. Apache NuttX Driver for Bosch BME280 I2C Sensor (Temperature + Humidity + Air Pressure) ported from Zephyr OS.
  • ikea_air_quality_sensor. IKEA VINDRIKTNING Air Quality Sensor connected to LoRaWAN and The Things Network with Apache NuttX OS.
  • sama5d27resource. SAMA5D2 development resources, useful demo and experience sharing.
  • lvglterm. LVGL Terminal for PinePhone on Apache NuttX RTOS.
  • tinycbor_test. TinyCBOR Test App for Apache NuttX OS.
  • lvgltest-nuttx. LVGL Test App for Apache NuttX RTOS.
  • riscv-emu. RISC-V emulator that is written in Rust. Support Linux, xv6, NuttX, FreeRTOS, Zephyr OS etc..
  • Apache-NuttX-Getting-Started. Getting Started with Apache NuttX on Ubuntu/WSL2 (Windows).
  • Nuttx-7.15-mini. This is modified version of nuttx 7.15. Add support for 正点原子战舰mini开发板.
  • nshtask. Apache NuttX RTOS: NSH Task Demo.
  • sf2000-nuttx. This is an attempt to port NuttX RTOS to the Data Frog SF2000..
  • nuttx. My experiments with Nuttx.
  • nuttx_microbit. Memos that how to porting nuttx on microbit.
  • Afan_SAME70_MicroPython. MicroPython V1.12 on Microchip SAME70Q21/SAMV71Q21 MCU..
  • nxslib. A client library to the Apache NuttX NxScope module.
  • nuttx_esp32_wsl2. Repository with environment to build nuttx for esp32 in windows using wal2.
  • nuttx-dev-docker. Nuttx development environment using Docker container..
  • stm32_m. STM32F334 custom NuttX board low level drivers.

Website: https://nuttx.apache.org/

Source code: https://github.com/apache/nuttx

License: Apache License 2.0


NuttX Platforms

  • ARM
  • AVR
  • 8051
  • PIC
  • x86
  • MIPS
  • Xtensa
  • RISC-V
  • Freescale HCS12
  • Zilog

NuttX Components

  • FileSystem
  • Network
  • 6LoWPAN
  • Command Line Interface
  • USBHost
  • USBDevice
  • GUI