Device Management Client 4.4.0
Features
Added support for new SDKs:
- NXP FreeRTOS.
- Renesas FreeRTOS.
Device Management Client example
-
Added support for NXP FreeRTOS SDK.
-
The supported board is
LPCXpresso54628
.Note: Select the correct QSPI chip in the board configuration file (
define_NXP_LPC54628.txt
). This depends on the board revision.
-
-
Added support for Renesas FreeRTOS SDK.
- The supported board is
EK-RA6M3
.
- The supported board is
-
Replaced Icetea-based test framework and tests with the Pelion E2E Test Library v0.2.5.
-
Updated to Mbed OS 5.15.1.
-
Added a sleep callback function on application to indicate when client goes to sleep using
MBED_CLOUD_CLIENT_TRANSPORT_MODE_UDP_QUEUE
mode. -
Changed the default DTLS fragmentation to 1024 bytes for Wi-SUN mesh.
-
Removed application dependency for int64 printf support which is not present in the nanolib-C library.
-
Restricted the size of applications using internal storage on Mbed OS builds.
-
pal-platform: Fixed an issue in
pal-platform.json
due to an incompatibility withclick
version later than 7.0.
Factory Configuration Client example
Updated to Mbed OS 5.15.1.
Device Management Client
- Changed the handling of numeric resources. Client now converts payloads to correct underlying data type. Previously, it allowed storing of
string-type
data in a resource with numeric data type. - Fixed off-by-one bug in
m2mstring::convert_ascii_to_float()
. - Deprecated and removed the usage of
PAL_UDP_MTU_SIZE
. The implementation was not correct and was not doing what it claimed to do. Applications should use insteadmbed-client-pal.pal-max-frag-len
to enable DTLS fragmentation support for network stacks with MTU limitations. - Added KVStore library as a new component.
- Allow client to pause in any state.
- Client now cancels existing subscriptions after a full registration. This matches the server side behaviour for full registration, and ensures that notification tokens are properly synchronized.
Factory Configuration Client
Bugfix: When a device with PSA configuration was restarted, the time was read before storage initialization. This caused rebootstrap of the device on every restart.
Platform Adaptation Layer (PAL)
- Reintroduced backwards compatibility with Mbed OS 5.x releases to the PAL layer. String-based Mbed OS APIs are also supported in function
pal_plat_getNetInterfaceInfo
. - Added support for NXP SDK.
- Added support for Renesas SDK.
- Flagged
pal_sslGetVerifyResult
andpal_sslGetVerifyResultExtended
functions withPAL_USE_SECURE_TIME
option. These functions rely on having the current time available and are not guaranteed to work withoutPAL_USE_SECURE_TIME
.
Yocto changes
- Updated Yocto to Zeus.
- Fixed Yocto deployment issues with Mbed tooling.
Known issues
- Renesas RA6M3 has Ethernet stability issues with the default configuration supplied.
- This will be fixed in the next release.
- In the meantime, you can modify the 'pal-platform/SDK/Renesas_EK_RA6M3/e2studio_gen/ra_gen/common_data.c' file on line 28 and change the Ethernet buffer size from
[1 +1]
to[4 +4]
.
- The earlier revisions of LPCXpresso 546XX have different QSPI chip than the some of the later revisions. Application needs to specify at compile-time which is supported. Select the correct QSPI chip in the board configuration file (
define_NXP_LPC54628.txt
). This depends on the board revision. - The provided precompiled binary for NXP LPC54628 supports only revision D or older boards. Firmware update will fail with later revisions of the provided bootloader.
DISCO_L475VG_IOT01A
production and update flow is broken due to RoT not being initialized correctly.- Developer flow works correctly with hard-coded RoT. However, that is not suitable for production.
- We are working on a fix, but for any urgent needs please contact us for workaround support.
- [Mbed OS] Current version of the Atmel secure element driver does not support IAR compiler.
- [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 64KiB. For example, large binary objects (opaque resources) cannot exceed 64KiB.
- 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 the chunks through multiple opaque resource instances.
- [Mbed OS] Neither firmware update nor production flow is currently working with
Nucleo F303RE
. This is most likely due to issues in SPI flash. - [Mbed OS] The device may stall at certificate renewal when compiling with the PSA configuration.
- [Mbed OS]
Nucleo F429ZI
may hardfault with debug profile. The device may also halt at runtime.
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 640KB flash. PSA takes 192KB 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 hardware 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.5KB) and flash/ROM consumption (+18.5KB).
- 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.
- If possible, update
- 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 third-party IP (TPIP) components. 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. |
NXP SDK
Additional TPIP for NXP SDK:
Original | License | Description |
---|---|---|
Amazon FreeRTOS kernel v10.2 | MIT | FreeRTOS kernel from Amazon. |
lwIP | Modified BSD | Lightweight IP stack. |
K64F Linker script | [BSD-3 Clause] | Linker script for GNU C. |
LPC54608J512 Linker script | [BSD-3 Clause] | Linker script for GNU C. |
LPC54xxx board support software | Copyright NXP | Board support software for LPC5400-series - we do not provide this, you must download this via MCUXpresso SDK Builder yourself. |
Renesas SDK
Additional TPIP for Renesas SDK (FSP):
Original | License | Description |
---|---|---|
Amazon FreeRTOS kernel v10.3 | MIT | FreeRTOS kernel from Amazon. |
MCUBoot | Apache 2.0 | Bootloader for RA6M3 by Renesas. Pre-built binary provided. |
Renesas Flexible software Package (FSP) v1.0.0 | Copyright (c) Renesas | Board support package for RA6M3 boards. Running pal-platform.py will git clone this repository to your work area under pal-platform/SDK/Renesas_EK_RA6M3/fsp . |
Renesas e2studio generated configuration files | Copyright (c) Renesas | Renesas e2studio generates a number of files, available in pal-platform/SDK/Renesas_EK_RA6M3/e2studio_gen . |
lwIP | Modified BSD | Lightweight IP stack. |
Secure Device Access (SDA)
If you enable Secure Device Access (SDA), you will use some additional TPIP.
Original | License | Description |
---|---|---|
cose-c | BSD-3 clause | IETF Concise Binary Object Representation (CBOR) Encoded Message Syntax (COSE), a copy of this library is located under mbed-cloud-client/tree/master/secure-device-access-client/cose-c. |
Mbed-OS
You also get more TPIP with the Mbed OS release itself, see their LICENSE.md for details.