Release Date

July 31, 2017 (Final)

July 15, 2017 (Planned)

Enhancement/Fixes to existing features 

NimBLE stack enhancements

Bluetooth 5 Support

  • LE 2M and LE Coded (aka Long Range) PHYs

  • Extended Advertising (advertiser and scanner, no chaining)

  • Channel Selection Algorithm #2

  • High Duty Non-Connectable Advertising

  • Multiple Advertising instances (controller only)

Strict scheduling

This allows the creation of applications where multiple peripherals (eg body motion sensor) that generate fixed size data at fixed high rate are connected to a single central device. Central allocates fixed time slots for connected peripheral and guarantees those are available for each peripheral. Connection events are never extended past a given time slot.

For details see https://www.mail-archive.com/dev@mynewt.incubator.apache.org/msg03043.html

Support for low power 32768 Hz clock

NimBLE controller now uses low power 32768 Hz clock for scheduling. This reduces power consumption. For details see JIRA ticket.

MYNEWT-701 - Getting issue details... STATUS

API for retrieving public and static random addresses from chip specific locations

This allows to configure controller address from chip specific locations. For details see JIRA ticket.

MYNEWT-707 - Getting issue details... STATUS

Support for monitoring interface compatible with BlueZ HCI monitor (btmon).

This allows to trace HCI traffic between host and controller using BlueZ HCI monitor. Support for interleaving HCI traces and console output is also present.

Bonding material persists over reboots

A new package: ble/host/store/config has been added to hold security material and CCCDs in RAM, and optionally saves them to sys/config. Because this package is a superset of store/ram, it deprecates that one.

Various fixes and improvements in Link Layer, LE Connection Oriented Channels and GATT/ATT protocols and more.

Newt Tool enhancements

newt target amend

The "amend" command allows the user to add, change, or delete values for multi-value target variables, such as syscfg, cflags etc. It supports the -d flag to delete values. The format of the amend command is: 

newt target amend <target-name> <var-name=var-value> [var-name=var-value...]

 For a more detailed description, see https://mynewt.apache.org/latest/newt/command_list/newt_target/ 

Newtmgr enhancements

newtmgr image erase

The newtmgr image erase command erases an unused image from the secondary image slot on a device. The image cannot be erased if the image is a confirmed image, is marked for test on the next reboot, or is an active image for a split image setup.

newtmgr conn add 

The command now supports additional connection types and conn strings to increase the options for communicating with a remote device. An example usage of the updated command is:

newtmgr conn add myudp5683 type=oic_udp connstring=[127.0.0.1]:5683

which creates a connection profile named myudp5683 to communicate over UDP with the oicmgr on a device listening on localhost and port 5683.

newtmgr repo

The code for newtmgr, the protocol for remotely communicating with a Mynewt instance, was previously nested within newt repo. It has been moved to its own separate repository. 

https://github.com/apache/mynewt-newtmgr

Native support for ARMv7 (Raspberry Pi 3)

A simulated instance of Mynewt can be run as a Linux process on Raspberry Pi 3. An example usage would be to run a host BLE application on the Linux processor and communicate via HCI over UART with a BLE controller on an nRF52 processor.  

STM32 ethernet driver

The sample app "iptest" uses the ethernet driver.

New Features

Sensor Framework

Sensor framework is an abstraction layer between the HAL and the app to make using sensors easier and flexible. It also defines a default OIC server which exposes the sensors as individual resources.

The following diagram shows how the main components of the sensor framework fit into the Mynewt architecture.

Some key features of the sensor management include:

  • Device creation in the BSP  
  • Device drivers for sensors
  • Sensor API (Sensor framework in the diagram) for apps to read and configure sensors
  • Sensor shell to communicate with sensors during development
  • Sensor representation as OIC 1.1 compliant resources for auto-discovery, write/read/delete/notify operations

The sensor drivers currently available are:

  • BNO055
  • LSM303DLHC
  • TSL2561
  • TCS34725
  • BME280 (Ruuvitag)
  • LIS2DH12 (Ruuvitag, nRF52 Thingy)

Segger RTT support

This allows to use Segger RTT for console and logging (HCI monitor and SystemView).

Segger SystemView support

"SystemView can record data from the target system while it is running. The recorded data is analyzed and the system behavior is visualized in different views." More info here: https://www.segger.com/systemview.html

Console improvements

The Mynewt 1.1 console package adds a new API for reading input data from the console. The package supports backward compatibility for the Mynewt 1.0 console API. The newly added function, console_set_queues(), allows the app  to specify two event queues for the console to manage input data buffering and to send notification when a full line of data is received.

Console functionality has been improved with tab completion, multiple subshell support, optional help messages and more.

Shell improvements

The Mynewt 1.1 shell package adds a new API to register shell commands under a name space. The package supports backward compatibility for the Mynewt 1.0 shell API. The newly added function, shell_register(), allows the app  to register a module and group commands under a name space. 

Shell functionality has been improved with name space, enhance command help support, and tab completion.

For Mynewt 1.0 shell backward compatibility usage, you may need to increase the SHELL_MAX_COMPAT_COMMANDS syscfg setting value. See http://mynewt.apache.org/latest/os/modules/shell/shell/ for more details.

Additional Board Support Packages

  • SiFive HiFive1 (RISC-V Instruction Set Architecture)
  • PIC32 Family (MIPS32 Instruction Set Architecture)
    • PIC32MZ2048EFG100 microcontroller
    • Microchip PIC32MX470 Curiosity Development Board
  • Telenor EE-02 board with nRF52 SOC and Semtech Sx1276 chip
  • VBLUno51 board (nRF51822)
  • VBLUno52 board (nRF52832)
  • ublox NINA-B112 (nRF52832)
  • Nordic nRF52 Thingy (nRF52832)

  • NUCLEO-F767 (Cortex-M7)
  • STM32F7 Discovery (Cortex-M7)
  • RedBear Blend 2 (nRF52832)
  • BLE400 (nRF51822)

Known Issues and Limitations

Bluetooth 5 LE Coded PHY on nRF52840 PDK  - T_IFS is not stable

MYNEWT-783 - Getting issue details... STATUS  

Newtmgr disconnects during image upgrade over BLE

MYNEWT-821 - Getting issue details... STATUS

MYNEWT-822 - Getting issue details... STATUS

The workaround is to use log level INFO or lower for your application. You can set the log level to INFO as follows:

newt target amend YOURTARGET syscfg="LOG_LEVEL=1"

Newt has warning on multiple console  API exported  when building boot/boot_serial

newt resolves to use the correct console package and the warning can be ignored.

Installation Notes

runtimeco APT Repo Signing Key Change

If you have previously set up your computer to install newt or newtmgr Debian packages using apt-get prior to 1.1.0 release, the signing key for the runtimeco APT repo has changed. You will need to import the new public key again. You can do so as follows: 

wget -qO - https://raw.githubusercontent.com/runtimeco/debian-mynewt/master/mynewt.gpg.key | sudo apt-key add -


MYNEWT-820 - Getting issue details... STATUS

Features under development

 LoRa stack

  • No labels