Device Management Client 4.13.0
Device Management Client example
- [Mbed OS] Add DISCO_L496AG board. The cellular settings are for example only.
- Enable EST flow for
LWM2M_COMPLIANT
mode. - Enable server certificate verification in
LWM2M_COMPLIANT
mode. - [Mbed OS] New feature for migrating the bootstrap server URI to another URI.
- This allows moving a device from one Device Management region to another, for example from US to EU.
- Works only with KVStore-based storage.
- More details in PDMC Migration Tutorial document.
- Updated
libcurl
from 7.76.0 to 7.85.0 for Linux targets. - Updated
mbedTLS
from 2.27.0 to 2.28.1 for Linux targets. - Branding changes to Izuma.
- Add the following files to
.gitignore
:mbed_cloud_client_user_config.h
mbed_cloud_dev_credentials.c
andupdate_default_resources.c
to minimize risk of leaking credentials/private configs.- You can still update these files if you wish, but you have to use
git add -f <file>
.
- Zephyr OS updated to 2.7.3.
- Alternating port fallback config example for
MBED_CLOUD_CLIENT_CUSTOM_URI_PORT
added tombed_cloud_client_user_config.h
.- If a socket error is encountered, the next try will be done with the original CoaP port
5684
. - After 2nd fail we alternate back to the custom port.
- NOTE! Only port
443
can be used as an alternative customer port with Izuma Networks.
- If a socket error is encountered, the next try will be done with the original CoaP port
Factory Configurator Client example
Updated mbedTLS
from 2.27.0 to 2.28.1 for Linux targets.
Device Management Client
- Izuma branding changes.
- Support for multiple ciphers via config flag
PAL_MAX_ALLOWED_CIPHER_SUITES
.- This is required for improved LwM2M compliance.
- Please ensure your TLS configuration also enables the required ciphers.
- Add support for parsing Pkcs#7 certificate format. This format is used in EST flow.
- This is required for improved LwM2M compliance.
- Developer flow only: The device goes through a storage reset if the compiled credential file differs from the stored credentials.
- In
LWM2M_COMPLIANT
mode, use Bootstrap server CA as LwM2M server CA for enabling server certificate verification during TLS handshake. - Fix compilation issue with glibc 2.34 and newer where PTHREAD stack sizes have been changed to runtime variables.
- Alternating port fallback function for
MBED_CLOUD_CLIENT_CUSTOM_URI_PORT
added.
Known issues
- The earlier revisions of LPCXpresso 546XX have a different QSPI chip than some of the later revisions. The application needs to specify the chip at compile time. Select the correct QSPI chip in the board configuration file (
define_NXP_LPC54628.txt
). This depends on the board revision. - [PAL tests] PAL file system and PAL update tests currently support external SD card storage. Future releases will add support for other storage types.
- [PAL tests] PAL TLS test (
TCPHandshakeWhileCertVerify_threads
) isn't working on Mbed OS 5.13.0.
Mbed OS
We recommend you read the Mbed OS release notes for known issues and their latest status.
- PSA is in preview level and as such isn't ready for production yet.
- You can't update the precompiled PSA binary through firmware update. You can only update the application, itself.
- 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
- Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level by setting the
PAL_DNS_API_VERSION
flag to 0. glibc
versions 2.23 and 2.24 have a bug in thread creation. It can cause random crashes with Linux. If possible, updateglibc
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.- Yocto release support for client has been deprecated - if you need it, please contact us.
- Primary offering for Linux embedded distributions is our Izuma Edge-solution via LmP.
Zephyr OS
- Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level by setting the
DNS API
selection to POSIX. - Configuration
MBED_CLOUD_CLIENT_CUSTOM_URI_PORT
is not available for Zephyr. If you need, contact us and we will add it. Enabling it now makes the image break the size limit and linking fails.
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. |
Platform support files | BSD 3 Clause | Platform specific files in platform/NXP . |
LPC54608J512 Linker script | BSD 3 Clause | Linker script for GNU C. |
LPC54xxx generated configuration files | BSD 3 Clause | Board-support specific generated files in pal-platform/SDK/LPCXpresso54628/generated . |
LPC54xxx board support software | Copyright NXP | Board support software for LPC5400-series - we don't provide this; you must download this with MCUXpresso SDK Builder yourself. |
MIMXRT106XXX Linker script | BSD 3 Clause | Linker script for GNU C. |
EVK-MIMXRT1060 generated configuration files | BSD 3 Clause | Board-support specific generated files in pal-platform/SDK/EVK-MIMXRT1060/generated . |
EVK-MIMXRT1060 board support software | Copyright NXP | Board support software for EVK-MIMXRT1060 - we don't provide this; you must download this with MCUXpresso SDK Builder yourself. |
Keil SDK
Original | License | Description |
---|---|---|
Platform support files | BSD 3 Clause | Platform-specific files in platform/KEIL . |
Platform adaptation layer files | MIT | Platform adaptation layer files in Source/Port/Reference-Impl/OS_Specific/RTX_MW . |
Renesas SDK
Additional TPIP for Renesas SDK (FSP):
Original | License | Description |
---|---|---|
Amazon FreeRTOS kernel v10.3 | MIT | FreeRTOS kernel from Amazon. |
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. |
Platform support files | BSD 3 Clause | Platform specific files in platform/Renesas_EK_RA6M3 . |
Platform adaptation layer files | MIT | Platform adaptation layer files in Source/Port/Reference-Impl/OS_Specific/Renesas_EK_RA6M3 . |
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 its LICENSE.md file for details.