apache/mynewt-core logo

apache/mynewt-core

Free

An OS to build, deploy and securely manage billions of devices

FreeFree tier
Type
Open Source
Company
Apache Software Foundation

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

Pre-emptive, real-time OS kernel
Open-source Bluetooth 5.0 stack (NimBLE) with support for all 4 roles, up to 32 simultaneous connections, legacy and SC secure connections, SMP pairing/bonding, and advertising extensions
Flash filesystem (NFFS) designed for tiny (128KB–16MB) flashes
FatFS and flash circular buffer support
JSON and CBOR encoding
Bootloader with remote software upgrade capability
HAL and BSP infrastructure for microcontroller abstraction
Newt build and package management system for component selection
Shell and console interface
Broad hardware platform support including Cortex-M0/M4/M7/M33 and RISC-V

Pros & Cons

Pros
  • 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
Cons
  • 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

Best For

IoT sensor nodes and beaconsWearable devices (e.g., smartwatches, fitness trackers)Bluetooth Low Energy (BLE) peripherals and central devicesSmart home and building automation controllersIndustrial monitoring and control systemsPrototyping with Arduino and STM32 development boardsRemote firmware update (OTA) applications

FAQ

What is Apache Mynewt?
Apache Mynewt is an open-source operating system for tiny embedded devices. It is designed to make it easy to develop applications for microcontroller environments where power and cost are key factors.
Which hardware platforms does Mynewt support?
It supports a wide range of platforms, including Nordic nRF52/nRF51 DKs, RuuviTag, STM32F4DISCOVERY, STM32-E407, Arduino Zero/M0/MKR1000, BBC micro:bit, SiFive HiFive1 (RISC-V), and many others.
Does Mynewt include a Bluetooth stack?
Yes, it includes NimBLE, an open-source Bluetooth 5.0 stack (both Host and Controller) that supports all four roles, up to 32 simultaneous connections, secure connections, and advertising extensions.
Is Mynewt free to use?
Yes, Apache Mynewt is open-source and free to use under the Apache License 2.0.
How do I build a custom OS with Mynewt?
Mynewt uses the Newt build and package management system. You can compose your OS by selecting only the components (packages) you need for your application.