Mistake on this page? Email us

Device Management Client 3.3.0


  • Mbed OS 5.13.0 support.
  • Client support added for Wi-SUN FAN stack, which is now supported by Mbed OS.

Device Management Client example

  • Updated to Mbed OS 5.13.0.
  • Added support for Wi-SUN mesh on Nucleo F429ZI (configs/mesh_wisun.json).
  • Added PSA support for Linux PC.
    • PSA configuration (define_linux_psa.txt) for PSA-enabled Linux PC.

Factory Configurator Client example

  • Updated to Mbed OS 5.13.0.
  • Added support for building FCCE with PSA over Linux_x86 for development and testing purposes. There is no security underneath. Please refer to FCCE documentation (part of the FCU zip file) for detailed build instructions.

Device Management Connect client

  • Updated Mbed CoAP to 4.8.0.
  • A fix to accommodate a null terminator space for managing a common name parameter (max 64 characters) in an X.509 certificate.
  • A fix to clear a stored SSL session when the device rebootstraps. Without clearing, a bootstrap loop may render the device unusable.

Factory configurator client

New kcm_item_get_size_and_data API combines kcm_item_get_data_size and kcm_item_get_data into one synchronous API.

Yocto changes

Changed the meta-mbed-cloud-client.lib file to use https format instead of ssh.

Known issues

  • If you are using Device Management Client 3.2.0, we recommend that you upgrade to 3.3.0 (or later) as soon as possible. In 3.2.0, if an SSL session is stored when the device rebootstraps, a bootstrap loop may render the device unusable. Client 3.3.0 release fixes this issue by clearing the SSL session.
  • [PAL tests] PAL filesystem and PAL update tests currently support external SD card as storage. Support for other storages 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 be bigger than 64 kilobytes.
    • For example large pictures (or other large binary objects) should be uploaded to a different hosting service and use the LwM2M resources for passing the URI for that type of objects.
    • Alternatively you could split the large object to chunks and expose them via multiple opaque resource instances.

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.
    • Cypress PSoC6:
      • Issues with storage. Random failures can occur in testing.
      • The native Wi-Fi driver is feature-rich and as such it is quite large (400 KB) and with PSA included (220 KB) there is not much space for the OS and application.
      • Client has been tested with ESP8266 (due to flash size) without flow control, because flow-control does not work with this board yet. ESP8266 without flow-control will not work reliably.
    • 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 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.


  • Mbed TLS 2.18.0 is not compatible with Device Management Client, thus 3.3.0 will continue to use Mbed TLS 2.17.0. This will be fixed in later release.
  • Firmware update installation for very large images on Raspberry Pi3B or Pi3B+ may fail with 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.

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.