Mistake on this page? Email us

Device Management Client 4.2.0

Features

  • Mbed OS - compatibility with Mbed OS 5.15.0.
  • Mbed OS - support for STM Nucleo F303RE board.
  • Added a developer feature to enable testing client in non-persistent RAM storage. This helps with initial porting effort as you can ignore filesystem porting in the first steps.

Device Management Client example

  • Added support for Nucleo F303RE + ESP8266 + SPI-flash. Firmware update is not yet supported on this target due to data corruption issues during firmware download.
  • Added a timer that automatically increments the value of the button press resource. This allows you to test the example application on devices with no hardware buttons.
  • On Mbed OS 5.15, added support for all Wi-SUN channel configuration settings for testing purposes to the Mbed OS mesh configuration interface. You can use the settings for test configurations, for example for fixed channel mode. Do not use them in normal Wi-SUN operation. Removed unnecessary Wi-SUN channel configuration settings from the Wi-SUN configuration file.
  • Updated to Mbed OS 5.15.0.
  • Extended the mesh network configuration with a new macro STARTUP_MIN_RANDOM_DELAY to supplement the existing STARTUP_MAX_RANDOM_DELAY. The new macro defaults to STARTUP_MAX_RANDOM_DELAY/4 (the value of STARTUP_MAX_RANDOM_DELAY divided by four). You can use these configurations to provide mesh networks more time to properly stabilize before the client application starts its registration flow. For Mbed OS, you can use the configuration options client_app.startup_min_random_delay and client_app.startup_max_random_delay to define STARTUP_MIN_RANDOM_DELAY and STARTUP_MAX_RANDOM_DELAY in the application configuration. See configs/mesh_wisun.json for an example.

Factory Configurator Client example

  • Added support for Nucleo F303RE.
  • [Mbed OS] Updated to Mbed OS 5.15.0.

Secure Device Access Client example

  • [Mbed OS] Updated to Mbed OS 5.15.0.

Device Management Client

  • Fixed the handling of small blockwise sizes in delta update.
  • Updated Mbed CoAP to 5.1.2.
  • Notification tokens are cleared before a full registration.
    • Fixed an error that occurred in certain situations where subscriptions are lost and never come back until reboot.

Platform Adaptation Layer (PAL)

  • Added a developer feature to enable testing client in non-persistent RAM storage.
    • To enable the feature, define PAL_SIMULATOR_FILE_SYSTEM_OVER_RAM 1.
  • Fixed PAL filesystem API to allow access to files larger than 2 GB.
  • [Mbed OS] Added compatibility workaround for the DNS Getaddrinfo returning more than one address in future Mbed OS release.

Known issues

  • [PAL tests] PAL filesystem and PAL update tests currently support external SD card storage. Support for other storage types will be added in future releases.
  • [PAL tests] PAL TLS test (TCPHandshakeWhileCertVerify_threads) is not working on Mbed OS 5.13.0.
  • Client resource size is limited to 64 KiB. For example, large binary objects (opaque resources) cannot exceed 64 KiB.
    • Upload large pictures or other large binary objects to a different hosting service and use the LwM2M resources for passing the URI for that type of objects.
    • Alternatively, you can split a large object into chunks, and expose those chunks through multiple opaque resource instances.
  • [Mbed OS] Neither firmware update nor production flow is currently working with Nucleo F303RE.
  • [Mbed OS] The device may stall at certificate renewal when compiling with the PSA configuration.
  • [CoAP library] We have a number of reported issues in the CoAP library. They have not been fixed yet. To be able to use the vulnerabilities, an attacker needs to bypass or hijack the Pelion Device Management connection using a malicious connection, so the risk is not imminent.

Mbed OS

We recommend that you read the Mbed OS release notes for known issues and their latest status.

  • PSA is in preview level and as such not ready for production yet.
    • You cannot update the pre-compiled PSA binary through firmware update. You can only update the application itself.
    • NXP LPC55S69:
      • The board has only 640 KB flash. PSA takes 192 KB out of it.
      • You can use the Client example (with firmware update and bootloader) with release profile due to the flash size limitation.
      • Only ARMC6 is supported for compilation.
    • K64F:
      • You can use the board in PSA mode (without real HW PSA implementation).
      • The configuration file that allows this is placed under the configs-psa folder in the example.
      • The PSA mode adds RAM consumption (static +3.5 KB) and flash/ROM consumption (+18.5 KB).
      • Arm and partners are optimizing the solution in future releases.

Linux

  • Firmware update installation of very large images on Raspberry Pi3B or Pi3B+ may result in a mmc0 timeout failure. This is a generic Raspberry Pi3 issue. See RPI issue #2392.
  • 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, you must update 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 later). 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 developer certificate mode.
  • Yocto distribution used does not yet support Raspberry Pi4.

Device Management Client Third Party IP report

Device Management Client uses some open source third-party IP (TPIP). This table lists the TPIP and sources:

Original License Description
bsdfiff BSD 2 clause Diff algorithm used for delta update image generation.
LZ4 BSD 2 clause (lz4.c and lz4.h under /lib in LZ4) Compression algorithm used for compressing delta update images.
TinyCBOR MIT Factory configurator client (FCC) uses TinyCBOR, which is a constrained node implementation of CBOR in C, with slight modifications. The code is at mbed-cloud-client/tinycbor and in a standalone repository in GitHub.
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, see their LICENSE.md for details.