The Apache Software Foundation has recently released version 0.9 Apache Mynewt open source real-time operating systems for micro-controllers under… an Apache 2.0 license. The RTOS works on STMicro STM32 Cortex-M4, and Arduino Zero / M0 Cortex-M0 boards, but they’ve also implemented the first open source Bluetooth Low Energy stack for MCUs, starting with support for Nordic Semi nRF52 Cortex-M4 and nRF51 Cortex-M1 evaluation boards, and acting as a replacement for Nordic SoftDevice Bluetooth Smart / LE solution.
The operating system competes with ARM mbed, the Zephyr Project, and RIoT, but the foundation claims it is the only one that’s both community driven and permissively licensed (Apache 2.0) project in the embedded space.
The OS is modular and can be configured with a Go-like build and package management tool with components such as secure boot loader, flash file system and TLV storage mechanism, rich logging infrastructure, circular buffering schemes, and Bluetooth 4.2 Low Energy. WiFi, Thread, and Bluetooth 5 are also part of the roadmap, and support for Javascript and Python is currently being worked on.
You can find more information and/or get started with the project on Apache Mynewt microsite.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Great summary. Also of note is that Arduino.org announced the use of Apache Mynewt for the upcoming Primo and Otto boards.
https://globenewswire.com/news-release/2016/05/20/842021/0/en/Arduino-and-Runtime-Collaborate-to-Introduce-Apache-Mynewt-incubating-to-Arduino-Ecosystem.html
It’s distributed as a docker image + wrapper script. I really like this approach for dealing with the usual mess of cross-compiling toolchains and libraries that have to be installed for something like this. It’s so easy to install and use, and easy to update too. (Probably a pain for Windows users right now, but I’m pleased projects are increasingly willing to stop letting that concern hold the rest of the world back from improving. And MS is working to adopt windows to the new-world-order of software development with their ubuntu+bash layer and docker partnerships, so perhaps it is or… Read more »
Actually, it turns out they have a very poor implementation of the docker+wrapper setup. The provided wrapper is too simplistic: it doesn’t pass along the current user (so everything generated ends up owned by root), it chmods everything 0600 (readable only by root), and it doesn’t search for the project root, instead it just mounts the PWD (so you must always change directories back to the top-level of the project before running any ‘newt’ commands). It’s actually incredibly painful to use. I assume everyone on the project uses local, in-development installs of the tools, but I don’t think anyone has… Read more »
Thanks for your comments, John S. Your remark about mounting PWD is accurate, and we can improve the script to search for the project head. The newt command is intended to be run only within a particular project but yes, having to type ../newt could get tedious. Will take a look at yotta’s wrapper script as suggested. However, not everything generated ends up owned by root. I use Docker instances on Mac, and a couple others use it on Windows. The container container itself maybe owned by root but all the project and repo files generated in the project directory… Read more »
@John S.
Just tried the Docker option on Linux – and the downloaded files are indeed owned by root. We will fix this. Thanks for the alert!
@John S.
The updated wrapper script fixes this and makes it simple to use. Give it a try now.
https://mynewt.apache.org/latest/os/get_started/docker/
Apache MyNewt added support for Bluetooth 5 -> http://www.einnews.com/pr_news/373703277/runtime-announces-bluetooth-5-support-for-apache-mynewt