apache/mynewt-core
FreeAn OS to build, deploy and securely manage billions of devices
About apache/mynewt-core
Apache Mynewt is an open-source, real-time operating system (RTOS) designed for tiny, low-power embedded devices. It provides a modular, package-based build system (Newt) that lets developers compose only the components needed for their microcontroller-based projects. The core packages include a pre-emptive RTOS kernel, a full Bluetooth 5.0 stack (NimBLE) supporting all four roles (Broadcaster, Observer, Peripheral, Central) with up to 32 simultaneous connections, secure pairing, and advertising extensions. It also features a flash filesystem (NFFS) optimized for small flashes (128KB–16MB), FatFS support, a flash circular buffer, JSON and CBOR encoding, a bootloader with remote software upgrade capabilities, and a HAL/BSP abstraction layer. Mynewt supports a wide range of hardware platforms, including Nordic nRF52, nRF51, STM32F4, STM32F7, Arduino Zero/M0/MKR1000, BBC micro:bit, SiFive HiFive1 (RISC-V), and many others.
Key Features
Pros & Cons
- Fully open-source under Apache License 2.0
- Modular design allows minimal memory footprint by selecting only needed packages
- Includes a complete, production-ready Bluetooth 5.0 stack (NimBLE) that replaces proprietary SoftDevice on Nordic chips
- Supports an extensive list of popular development boards and MCUs
- Built-in bootloader with remote software upgrade capability
- Strong community and backing from the Apache Software Foundation
- Primarily focused on microcontroller-class devices; not suitable for general-purpose computing
- Requires familiarity with embedded development (C, cross-compilation, hardware details)
- Documentation and community size are smaller compared to mainstream RTOSes like FreeRTOS or Zephyr
- NimBLE source was moved to a separate repository, adding an extra dependency