Documentation

Mistake on this page? Email us

Device Management Client 2.0.0 General Availability (GA)

Changes since the previous release

  • This release is compatible with Mbed OS 5.10.0.
  • It introduces the certificate renewal feature for LwM2M and custom certificates.
    • The feature can be used from client as well as from the certificate renewal service.
    • The feature provides a Client API to:
      • Trigger the certificate renewal from the client.
      • Follow the result of the certificate renewal through success/error callbacks.
  • Firmware update is downloaded using CoAP in MbedOS and HTTP in Linux, by default.
  • Support in HTTP source for update to make download fragments per burst user-configurable.

Device Management Client example

Breaking changes in the Mbed OS example

Due to integration of storage and networking drivers to Mbed OS 5.10 and the introduction of new APIs, the application is not compatible with previous releases of Mbed OS.

  • Changed the application to use Mbed OS 5.10 network interfaces directly and removed the dependency to easy-connect.lib.
  • Changed the application to use Mbed OS 5.10 storage interfaces directly and removed the dependency to storage-selector.lib.
  • The example uses Mbed OS bootloader binaries and the new Mbed OS feature FEATURE_BOOTLOADER. This feature makes the combine_bootloader_with_app.py script obsolete. We have removed the obsolete script and old bootloader binaries from the application repository.
  • The bootloader is now automatically combined with the application binary at compile time:
    • mbed-cloud-client-example.bin is the binary you need to flash to the development board.
    • You can use mbed-cloud-client-example_update.bin for the firmware update as long as the prerequisites for the firmware update have been fulfilled (see the application tutorial).
  • Removed the legacy configuration file configs/eth_v4_legacy.json for Mbed Cloud Client 1.2.6.
  • Removed the .autostart configurations used by the online compiler.
  • Enabled serial buffer in all .json files.
  • Increased lwIP buffers for all STM-based targets to improve the stability of the DTLS connection.
    • These changes improve the reliability of the connection with tracing enabled: NUCLEO-F429ZI, for example, had connectivity problems with UDP and traces enabled.
  • Disabled hardware acceleration for Ublox EVK-ODIN-W2 and NUCLEO-F411RE to resolve the connectivity issues seen in previous releases.

Fixes

Device Management Update client

  • Compiler warnings are fixed.
  • Fixed issue related with unhandled dynamic memory allocation in manifest URI.
  • Fixed issue for incorrect handling of asynchronous DNS callback which was causing a firmware download failure.
  • Fixed issue where an update campaign didn't complete when a payload hash mismatch was introduced during firmware update operation.
  • Fixed segfault when Linux update scripts are provided but no header exists.
  • Fixed resume engine to not block on HTTP header errors.

Known issues

Device Management Update client

  • Firmware download over CoAP fails if there is a network break in client connectivity to cloud.
  • Currently, you cannot overwrite the firmware download setting from HTTP to CoAP on non-Mbed OS platforms.
  • You can create the bootloader binary for Device Management Client from the mbed-bootloader repository. Currently, this repository is not compatible with MbedOS 5.10. However, it creates a bootloader binary that is compatible with Device Management Client 2.0.0 compiled with MbedOS 5.10.

Mbed OS

We recommend searching the issue list in the Mbed OS repository for known issues and their latest status.

  • For flashing the .hex binary with Mbed OS 5.10, you must update your board's DAPLINK firmware to version 0250 or later.
  • NUCLEO-F411RE compiled with IAR does not connect.
  • K64F with Thread hard faults (imprecise data access error, in event_core_write) when compiling with ARM CC compiler.

Linux

  • Firmware update from one Linux distribution version to another does not work. For example, firmware update from Yocto distribution Morty to Rocko is not currently possible, as there are Linux version-dependent files (device tree) in the BOOT partition. Therefore, updates need to be done within one major version of a distribution.
  • glibc versions 2.23 and 2.24 have a bug in thread creation. It can cause random crashes with Linux.
    • If possible, update glibc to version 2.25 (or newer). See sourceware issue 20116 for details.
    • We have implemented a workaround for this issue to decrease its likelihood. This issue may still occur under certain circumstances.
  • The Device Management Client application must run as root to have access rights to perform the firmware update.
    • This is not the most secure way to handle this issue, so a more secure implementation will come later.
  • Yocto distribution has only been tested in the developer certificate mode.

Device Management Client 2.0.0 Third Party IP report

Device Management Client uses some open source Third Party IP (TPIP). This table lists the TPIPs whose sources we included:

Original License Description
cn-cbor MIT Factory configurator client uses cn-cbor: A constrained node implementation of CBOR in C, with slight modifications. The code is at mbed-cloud-client/factory-configurator-client/secsrv-cbor.
Unity MIT Platform Adaptation Layer (PAL) tests use Unity framework from ThrowTheSwitch. The code is at mbed-cloud-client/mbed-client-pal/Test/Unity.

You also get more TPIP with the Mbed OS release itself (for example lwIP and FATFS).