Release Date

November 6, 2018 (Final)

October 23, 2018 (Planned)


Important Notes

BLE samples removed from Apache Mynewt release

Those can now be found in Apache NimBLE repository. Transient packages in core repository are provided for backward compatibility with existing targets.

Nordic nRF52xxx MCU package has been refactored

Previous version of package is available as hw/mcu/nordic/nrf52xxx-compat, however all users are strongly encouraged to migrate custom BSPs to new package as the old code will no longer be maintained and will be eventually removed.

For more information see below.

New Features

Logs storage usage tracking and watermarking

Two new APIs were added to the log subsystem. They can be enabled by setting sysconfig variables LOG_STORAGE_INFO and LOG_STORAGE_WATERMARK, respectively, to 1.

The watermark for each log is persisted in config and restored on reboot. 

Per-log statistics 

The option to keep statistics for the number of log entries written, logs filtered out because of log level settings, log entries dropped due to log collection not fetching (clearing) them on time, and errors while writing has been added. The sysconfig setting to enable this option is LOG_STATS.

Support for new Cortex-M3 and Cortex M-7 MCUs

Drivers

Encrypted flash support

Support has been added for encrypted flash (e.g. external SPI flash). The implementation allows you to encrypt by partitions. The hal_flash API exposes encrypt/decrypt operations on a pseudo flash device which is split into a common part and architecture-specific part. The first architecture-specific part supported is the Nordic nRFf51 and nRF52 platforms. Such a split allows the developer to leverage cryptographic hardware acceleration, if available in the platforms.

Support for STM32L4 Cube and STM32L0 Cube libraries

I2C retries

A common set of error codes for the I2C HAL and a new hw/util/i2cn library (as in I2C-n logic for n retries) has been added. The dev-list discussion can be found here: https://lists.apache.org/thread.html/bd2b854cbf7d6e0811fff33177c85fa1435dff7f1fb3c8baab6061e0@%3Cdev.mynewt.apache.org%3E 

API to use FCB as generic key-value storage

The API enables the use of config_fcb engine as a generic key-value storage without the need to use config module. It makes it possible to read and write any key at any time and they are immediately persisted and loaded directly from FCB so there is no need to store them in RAM. 

Reporting of sensor read errors

 "Sensor error listeners" can be registered with a sensor. When a read from a sensor fails, all error listeners that match the read attempt are notified of the error.

Enhancement/Fixes to existing features 

Mbed TLS updated to version 2.13.0

Mbed TLS 2.13.0 introduces several new features improving DTLS support over low-bandwidth, high latency networks with high packet loss. It also has a security fix and other features.

https://tls.mbed.org/tech-updates/releases/mbedtls-2.13.0-2.7.6-and-2.1.15-released

Better RTT integration

SEGGER Real-Time Transfer (RTT) support was updated to provide better integration with Apache Mynewy. Changes include:

Improved concurrent access to I2C/SPI interfaces for LEDs and Sensors

An interface lock has been added for the sensor_itfled_itf. It can be used for the interface structure for any driver e.g. the battery. If a BSP shares an interface particularly I2C, it can initialize and set a mutex for shared interface access.

Nordic nRF52xxx MCU support refactor

The hw/mcu/nordic/nrf52xxx package was refactored to cleanup the peripherals code in BSPs. Changes include:

All existing BSPs for nRF52xxx boards are converted to use new package.

Travis CI integration

Travis Continuous Integration (CI) can now be used to build and test Apache Mynewt on both Linux and OSX systems. The following can be performed:

HAL watchdog monitor

A HAL watchdog monitor has been added which tries to dump system state before HAL watchdog fires. A check has been added to check that the watchdog timeout is at least 4 seconds when this monitor is enabled.

Tickless min/max idle times made configurable

The relevant syscfgs are OS_IDLE_TICKLESS_MS_MIN and OS_IDLE_TICKLESS_MS_MAX (in milliseconds).

test/runtest library replaces testbench app 

A generic task-allocation mechanism has been added to the test/runtest library. When a unit test needs a new task, it requests one from runtest. When a test completes, runtest suspends all the allocated tasks. The number of generic tasks are no longer limited to four and adding new unit tests is simpler.

Tracing user-defined events using SysView

SysView can now be used to trace/profile any user-defined events. Event identifier is any number selected by user - SysView client will match start/stop traces for each identifier and display execution time as well as run count.

Flow control in console

Console handles queue of available line events and triggers flow control on UART automatically.

Newt Tool enhancements

A transient package is an empty package that simply links to another package. It enables easier, backwards-compatible upgrade path when moving or renaming packages.  Every time transient package is included in build, newt will emit a warning which encourages to change configuration to use linked package instead. Transient package can be defined as follows:

pkg.name: old-package
pkg.type: transient
pkg.link: @repo/target-package

It is now possible to have two debug sessions open from the same machine. "newt debug" can now have a session with JLink as well as openocd simultaneously open. One example of its use is for debugging a BLE session between a central and a peripheral. 

newt debug slinky_nrf52 --extrajtagcmd "-port 5431 -select usb=682148664"

Newt now warns/returns an error if you use any repository that is incompatible with the current newt version.




>newt info
Error: This version of newt (1.3.0) is incompatible with your version of the
apache-mynewt-core repo (1.4.1); Please upgrade your newt tool to version 1.4.0


It will also warn/return error when you try to install/upgrade a repository to a version that is not compatible with current newt.



A new flag has been added to create-image command to allow generation of encrypted images. RSA-OAEP encryption scheme is used to encrypt the AES-128 encryption key.
-e <rsa-pub-key.pem> 

Support has also been added to create encrypted images using AES-128-KEK. This requires a recent version of mbedtls with nist_kw support and decreases the flash usage by 8KB from RSA-OAEP.

Corresponding support has been added in the open source MCUboot project (https://github.com/runtimeco/mcuboot/pull/330) to store, decrypt, and use an encrypted image.

Newt Manager (newtmgr)

Support for specifying connection timeout 

Upload progress bar improvements 

Support for boolean values in resource key-value pair 

Support for selecting used BLE controller (Linux only)

Additional Board Support Packages

B-L072Z-LRWAN1 BSP

Fanstel EV-BT840E

Nucleo-L476RG BSP

Known Issues and Limitations