EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Apache Mynewt: Community-driven, open source OS; first open source BLE for MCUs

Started by pacebot3000 June 14, 2016
A quick FYI for Apache Mynewt's 0.9 release...

    http://mynewt.apache.org/
    http://mynewt.apache.org/download/

Noteworthy is the world's first open source (controller level) Bluetooth Low Energy stack for MCUs. The first ports were to Nordic's nRF52 and nRF51. Specific to the OS with BLE (4.2), the open source approach has obvious benefits to developers: access to source code; better debugging through setting breakpoints, avoiding stack smashes, no stolen interrupts, etc.; direct access to peripherals for granular power control; better, precise configurability of concurrent connections and flexibility across central and peripheral roles. The project aims to also have timely Bluetooth 5 support.

The OS is composable via a modern, Go-like build and package management tool. Components include secure boot loader, flash file system and TLV storage mechanisms, rich logging infrastructure, circular buffering schemes, and BLE! Scripting languages such as Javascript and Python is currently being worked.

The community welcomes your participation and feedback!
> The community welcomes your participation and feedback!
It looks promising except the Quick Start link is broken. So I can't download it. JJS
On 6/14/2016 8:59 PM, pacebot3000 wrote:
> A quick FYI for Apache Mynewt's 0.9 release... > > http://mynewt.apache.org/ > http://mynewt.apache.org/download/ > > Noteworthy is the world's first open source (controller level) Bluetooth Low Energy stack for MCUs. The first ports were to Nordic's nRF52 and nRF51. Specific to the OS with BLE (4.2), the open source approach has obvious benefits to developers: access to source code; better debugging through setting breakpoints, avoiding stack smashes, no stolen interrupts, etc.; direct access to peripherals for granular power control; better, precise configurability of concurrent connections and flexibility across central and peripheral roles. The project aims to also have timely Bluetooth 5 support. > > The OS is composable via a modern, Go-like build and package management tool. Components include secure boot loader, flash file system and TLV storage mechanisms, rich logging infrastructure, circular buffering schemes, and BLE! Scripting languages such as Javascript and Python is currently being worked. > > The community welcomes your participation and feedback!
If I can be lazy and not wade into the info available but ask, will this BLE stack allow devices to talk to one another? I don't recall if BLE doesn't support that or if it was just some of the implementations I've seen that preclude it. -- Rick C
On Wednesday, June 15, 2016 at 12:44:57 PM UTC-7, John Speth wrote:
> > The community welcomes your participation and feedback! > > It looks promising except the Quick Start link is broken. So I can't > download it. > > JJS
The orange "Click Start" link on the top navigation bar is working - please click on that for now. Thanks for finding the broken link - will fix it right now.
:) Yes, it will allow devices to talk to one another. Two devices each running the Mynewt NimBLE stack (BLE stack) can talk BLE with each other. A device with Mynewt NimBLE stack can talk BLE to a phone or some other non-Mynewt BLE device. We have tested with iOS and Android phones, for example. Mynewt NimBLE just successfully completed the Bluetooth SIG interoperability testing in Hongkong last week. It will talk with BLE 4.2 and 4.0 devices.


> > If I can be lazy and not wade into the info available but ask, will this > BLE stack allow devices to talk to one another? I don't recall if BLE > doesn't support that or if it was just some of the implementations I've > seen that preclude it. > > -- > > Rick C
On 6/15/2016 5:34 PM, adh wrote:
> :) Yes, it will allow devices to talk to one another. Two devices each running the Mynewt NimBLE stack (BLE stack) can talk BLE with each other. A device with Mynewt NimBLE stack can talk BLE to a phone or some other non-Mynewt BLE device. We have tested with iOS and Android phones, for example. Mynewt NimBLE just successfully completed the Bluetooth SIG interoperability testing in Hongkong last week. It will talk with BLE 4.2 and 4.0 devices. > > >> >> If I can be lazy and not wade into the info available but ask, will this >> BLE stack allow devices to talk to one another? I don't recall if BLE >> doesn't support that or if it was just some of the implementations I've >> seen that preclude it. >> >> -- >> >> Rick C
That's pretty awesome! -- Rick C

On 15/06/2016 03:59, pacebot3000 wrote:
> A quick FYI for Apache Mynewt's 0.9 release... > > http://mynewt.apache.org/ > http://mynewt.apache.org/download/ > > Noteworthy is the world's first open source (controller level) Bluetooth Low Energy stack for MCUs. The first ports were to Nordic's nRF52 and nRF51. Specific to the OS with BLE (4.2), the open source approach has obvious benefits to developers: access to source code; better debugging through setting breakpoints, avoiding stack smashes, no stolen interrupts, etc.; direct access to peripherals for granular power control; better, precise configurability of concurrent connections and flexibility across central and peripheral roles. The project aims to also have timely Bluetooth 5 support.
Very cool! I wonder how hard it will be for me (or if it will be permitted) to extract just the BLE portion for our hardware work.
You are permitted to take any part of the code and use it with any hardware :) Currently it hooks into the Mynewt OS with the host part using more of the core OS features than the controller portion. So how easy/hard it is depends on what you want to do. If you want to use only the controller drivers for a certain chip then it should not be too hard. Feel free to reach out to dev@mynewt.incubator.apache.org if you have any specific use cases in mind!


> Very cool! I wonder how hard it will be for me (or if it will be > permitted) to extract just the BLE portion for our hardware work.
You are permitted to take any part of the code and use it with any hardware :) Currently the BLE stack hooks into the Mynewt OS with the host part using more of the core OS features than the controller portion. So how easy/hard it is depends on what you want to do. If you want to use only the BLE controller drivers for a certain chip then it should not be too hard. Feel free to reach out to dev@mynewt.incubator.apache.org if you have any specific use cases in mind! 


> > Very cool! I wonder how hard it will be for me (or if it will be > permitted) to extract just the BLE portion for our hardware work.
You are permitted to take any part of the code and use it with any hardware :) Currently the BLE stack hooks into the Mynewt OS with the host part using more of the core OS features than the controller portion. So how easy/hard it is depends on what you want to do. If you want to use only the low-level controller drivers for a certain chip for BLE then it should not be too hard. Feel free to reach out to dev@mynewt.incubator.apache.org if you have any specific use cases in mind! 


> > Very cool! I wonder how hard it will be for me (or if it will be > permitted) to extract just the BLE portion for our hardware work.

The 2024 Embedded Online Conference