Apache Mynewt

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Mynewt
Logo-mynewt.png
DeveloperApache Software Foundation, community
Written inC (Mynewt OS)
Go (Newt Tool)
Working stateStable
Source modelOpen-source
Latest release1.5.0 / November 5, 2018; 34 days ago (2018-11-05)
PlatformsCortex-M0, Cortex-M3, Cortex-M4, Cortex-M7, MIPS32, Microchip PIC32, RISC-V
LicenseApache 2.0
Official websitemynewt.apache.org

Apache Mynewt is a modular real-time operating system for connected Internet of things (IoT)[1] devices that must operate for long times under power, memory, and storage constraints. It is free and open-source software incubating under the Apache Software Foundation,[2] with source code distributed under the Apache License 2.0, a permissive license that is conducive to commercial adoption of open-source software.[3]

Overview[edit]

Apache Mynewt is a real-time operating system with a rich set of libraries intended to make prototyping, deploying, and managing 32-bit microcontroller based IoT devices easy.[4] It is highly composable, to allow building embedded system applications (e.g., locks, medical devices, industrial IoT) across different types of microcontrollers. The name Mynewt is wordplay on the English word minute, meaning very small: the kernel is only 6 KB in size.

The OS is designed for connectivity, and comes with a full implementation of the Bluetooth low energy 4.2 stack. With the addition of BLE (supporting all Bluetooth 4.2 compliant security features except privacy) and various utilities such as the default file system, console, shell, logs, stats, etc., the image size is approximately 96 KB for the Nordic nRF51822 Bluetooth SoC.[5] This size metric excludes the boot loader image.

Core features[edit]

The core operating system supports:[3]

Other features and utilities include:

Bluetooth low energy[edit]

The first network stack available in Mynewt is Bluetooth low energy[6] and is called NimBLE. It complies with Bluetooth Core Specification 4.2.[7]

NimBLE includes both the host and controller components. Access to the controller source code makes the BLE performance highly configurable. For example, the BLE throughput can be adjusted by changing the connection intervals, data packet size, packet queue size etc. A use case requiring a large number of concurrent connections can similarly be configured, provided there is adequate RAM allocated. Example applications that demonstrate how to use available services are included in the package.

Supported boards[edit]

The operating system is designed for cross-platform use in embedded systems (devices) and microcontrollers. It includes board support packages for the following, as of March 2017:

Package management[edit]

The project includes the Newt Tool which is a command-line interface (CLI) based smart source package manager system for embedded systems development. Also, it allows composing builds with specified packages and compiler options, generating images and their digital signatures, and finally downloading and debugging the firmware on different targets.

See also[edit]

External links[edit]

References[edit]

  1. ^ "Arduino and Runtime Collaborate to Introduce Apache Mynewt (incubating) to Arduino Ecosystem". globenewswire.com. Retrieved 2016-05-24.
  2. ^ "Mynewt Incubation Status – Apache Incubator". incubator.apache.org. Retrieved 2016-05-24.
  3. ^ "Apache Mynewt RTOS Addresses IoT Power, Memory, Storage Constraints". www.infoq.com. Retrieved 2016-06-28.
  4. ^ "Open RTOS Targets Net of Things". www.eetimes.com. Retrieved 2016-05-24.
  5. ^ nRF51822
  6. ^ "Apache Mynewt finds a home on Arduino Srl's latest SBCs". www.linuxtoday.com. Retrieved 2016-05-24.
  7. ^ Bluetooth Core Specification 4.2