Documentation

Mistake on this page? Email us

Pelion Device Management Client Lite 0.6.0 preview release

This is a patch release for the sixth increment of the Device Management Lite preview release.

New features

  • Script support for the Client Lite production flow. Production process for Client Lite.
  • Mbed OS 5.10 support with an updated developer flow (breaking change on application level), see Client Lite tutorial.
  • Improved update flow removing the need of manually modifying the HTTP-based upload URI address to CoAP address, when making firmware updates. Client Lite now accepts a direct HTTP URI and internally makes a CoAP download through this address.
  • Support for Mesh networks such as Thread and 6LoWPAN.
  • The example application uses the global event queue provided by Mbed OS. This reduces the dynamic memory usage by client.

Fixed issues

Client Lite example application

  • Fixed Lite OMA Object definitions for Objects 10252 and 10255 to match the Update Client implementation.
  • Mbed TLS configuration: Enabled size optimizations for software implementation of AES, saving 6200 bytes of ROM.
  • Enabled buffered serial.
  • Updated to Mbed OS 5.10.2.
  • The application now gets the network interface status through console logs.
  • The application now uses Mbed OS 5.10 network interfaces directly and the dependency to easy-connect.lib is removed.
  • The application now 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.
    • The bootloader is now automatically combined with the application binary at compile time:
      • mbed-client-lite-example-restricted.bin is the binary you need to flash to the development board.
      • You can use mbed-client-lite-example-restricted_update.bin for the firmware update as long as the prerequisites for firmware update are fulfilled. (See the application tutorial).
  • Introduced a new script generate_firmware_images.py. It allows you to generate one or more firmware images ready to be flashed to a device.
  • Updated the application default lifetime to 3600s, thus reducing multiple registration update messages from client to server.
  • Updated the size-optimized compilation profiles for Mbed OS 5.10.
  • Partial configurations for the NRF52_DK board are now removed. The board configurations will be returned after it fulfills all the client requirements and passes testing.
  • The application is now running on the global event queue from the main thread, thus reducing the need for another thread to run the event loop. This saves dynamic and static memory.
  • Added the support for K64F board with Mesh network.

Device Management Client Lite

  • Implemented the handling of downloading URL into a URI query parameter.
  • The Device Management Update Client configuration now supports mapping of an external download protocol definition to internal configurations. This is needed for download protocol selection in Device Management Client. The default for Client Lite is CoAP download.
  • Fixed occasional Wi-Fi hardfaults observed during long test runs.
  • Fixed a recoverable CoAP error (service unavailable) to resume the firmware download.
  • Enabled CoAP message duplication detection by default.
  • Fixed firmware download failure during registration update.

Update client

  • A new profile flag ARM_UC_PROFILE_MBED_CLIENT_LITE is used to enable the correct profile for Client Lite.
  • Added support for sending update Resource data as part of the Client registration message, thereby reducing network traffic between Client and Device Management.
  • Optimized static RAM usage by reusing the static object ManifestManagerContext during the initialization.
  • HTTP URI can now be used as a parameter in the CoAP GET API.
  • Fixed the issue with campaign not completing when there is a payload hash mismatch during the firmware update operation.
  • Added support for passing the HTTP URI instead of CoAPs to the generate-manifest script.
  • Fixed the memory leak in URI handling when receiving the manifest from cloud.

Known issues

If the size of the firmware to be uploaded is larger than the space available for storing it, the download fails (as it should), but a proper error code is not propagated to Device Management.

Pelion Device Management Client Lite 0.5.1 preview release

This is a patch release for the fifth increment of the Device Management Lite preview release.

Device Management Lite example application

  • Fixed the incorrect flagging for eventloop related parameters. Without this fix, the application would hang with Mbed OS 5.9.3 or later.
  • Fixed the usage of the buttons in the example application.

Known issues

  • Device Management Lite does not yet work with mesh or Thread because of the missing DNS resolving feature on these network stacks in Mbed OS (available in Mbed OS 5.9, but needs integration to Client Lite).
  • If the size of the firmware to be uploaded is larger than the space available for storing it, the download fails (as it should), but a proper error code is not propagated to Device Management.

Mbed Client Lite 0.5.0 preview release

This is the fifth increment of the Mbed Client Lite preview release.

New features

  • Enabled partial production flow support. Client can read all the needed credentials from NVStore when feature is enabled. See documentation in tools/storage_injection.md. Update does not yet fully support production flow.
  • NVStore is used for storing the Root of Trust. If Root of Trust does no exist in NVStore, it will be automatically generated.
  • If you want to trial these features please contact us for more details.
  • Applications can now amend the common LwM2M Object metadata in registry with their own data at runtime.

Fixed issues

Connect Client

  • Fixed wrong CoAP ping message type. CoAP ping must be sent as an empty confirmable message.
  • Fixed issues that sometimes prevented recovery from lost network connection.

Update client

  • Added Update client NVStore support.
  • Improved the scheduler to ensure that events are not lost.
  • Optimized static RAM by reusing the static object ManifestManagerContext during initialization.
  • Fixed compiler warnings in Linux and X86 platforms.
  • Fixed issue when an update campaign used the wrong keytable, the client did not use a proper error message.

Mbed Client Lite example application

  • Updated easy-connect to v1.2.12.
    • ESP8266 driver updated to version 1.5. This should fix issue with DNS failures blocking re-connection of client after a broken WiFi connection.
  • Updated to Mbed OS 5.9.1.
  • Fixed issue in example which was setting string value for Integer type resource 3200/0/5501, hence initial GET request from Cloud failed.

Known issues

  • Mbed Client Lite does not yet work with mesh or Thread because of the missing DNS resolving feature on these network stacks in Mbed OS (available in Mbed OS 5.9, but needs integration to Client Lite).
  • If the size of the firmware to be uploaded is larger than the space available for storing it, the download fails (as it should), but a proper error code is not propagated to Cloud.
  • The buttons in the example application do not work.

Mbed Client Lite 0.4.0 preview release

This is the fourth increment of the Mbed Client Lite preview release.

Connect Client

  • This version of client supports Mbed OS 5.8.4 and onwards patch releases.

  • The core logic of M2MInterfaceImpl was rewritten in C (lwm2m_interface).

    • The C++ wrapper preserves the upward functionality. The new API can be used without it.
  • TLV notifications changed to include only the changed resource values.

    • This is an optimization for TLV notifications that can include multiple resource values.
    • This change has no effect on the notifications only including a single resource value.
    • Makes the Object and Object Instance level observation more usable for constrained devices.

    Note: Unchanged resource values are no longer sent on TLV notifications that are triggered by value changes. The application should not expect to receive them.

Update client

  • Fixed the issue with the firmware update state not reaching the service every time.
    • The client is always waiting for a service acknowledgement for the change in the update state value before moving to next state. This shows all the different update states in the service side device events.
    • Also other missing states for 10252/0/2 added.
  • Fixed the missing device events that can halt the update campaign.
  • Update result value of 12 (Asset failed integrity check) for rollback protection case.
    • The current specification of Object 10252 (Manifest Object) does not specify a corresponding update result (10252/0/3) value to reflect a rollback protection error. The value 12 "Asset failed integrity check" is now returned on such error.

Mbed Client Lite 0.3.0 preview release

This is the third increment of the Mbed Client Lite preview release.

New features

  • Support for an application running the main network event loop from the main program thread instead of a separate thread, thereby saving 3.5 kilobytes of dynamic memory.
  • The client supports Mbed OS 5.8.2 onwards.
  • Cleanup of unused components in the example application including the storage-selector.

Fixed issues

  • The UDP and QUEUE modes now work with notifications.
  • An accurate error message is now displayed in the serial console when uploading a wrong key table for the update.
  • An improvement in the logic of downloading the firmware image reduces the number of firmware update failures.

Known issues

  • The firmware update may fail on rare occasions.
    • A network connection error takes place and the client enters the reconnection loop during the firmware download.
    • To recover from this, you can start the update sequence again from the Cloud portal.
  • Mbed Client Lite does not yet work with mesh or Thread because of the missing DNS resolving feature on these network stacks in Mbed OS.
  • If the firmware image uploaded on the portal is larger than the available flash on the device, the device doesn't indicate an error. You need to ensure that the new firmware image is smaller than the available flash size.
  • An update campaign in the portal doesn't indicate a failure if there is an error in the device caused by the bootloader rejecting the new firmware due to too large firmware size.
  • All firmware update statuses are not reflected correctly in the portal.
    • The portal doesn't show the state when the device starts updating the firmware.
  • The device application doesn't show any update states in the application level console logs.
  • If the user has created a manifest with the payload size larger than the image uploaded in Cloud, the client gives two different errors simultaneously resulting in a misleading message reported in the portal.

Mbed Client Lite 0.2.0 preview release

This is the second increment of the Mbed Client Lite preview release.

New features

  • Firmware update capability using internal flash (K64F only).
  • The client now supports NRF52_DK only for Cloud connectivity and device management. The Update feature is not yet supported for this board.
  • The client supports Mbed OS 5.8.1 onwards.

Fixed issues

  • Removed unused APIs from sources mentioned in the Known issues of the 0.1.0 release.
  • Improved error codes for network connectivity issues.
    • The client now informs the application about:
      • Unreachable server (Error code: DnsResolvingFailed).
      • Using wrong PSK credentials (Error code: SecureConnectionFailed).
      • General network break (Error code: NetworkError).
  • Improved reconnection logic for temporary network connection loss.
    • The client now reconnects automatically after a temporarily lost network connection. The retry logic continues connection retrial until there is a successful connection established with Cloud using exponential back-off logic (starting from 2-10 seconds all the way to 1 week).
  • The portal displays all the endpoint information populated by the client, such as Manufacturer/vendor, Model number/Device class and Serial number.

Known issues

  • The UDP and QUEUE modes are not working with notifications. The workaround is to continue using the TCP mode.
  • This release does not support a multiple device campaign but only supports firmware update to one device at a time. There is direct 1-to-1 mapping between the device firmware image and the device identity, because the PSK credentials are embedded into the update binary. You can only update a device having the particular PSK credentials.
  • An accurate error message is not displayed in the serial console when uploading a wrong key table for update.

Mbed Client Lite 0.1.0 preview release

This is the preview release of Mbed Client Lite library that provides:

  • The means to connect constrained embedded devices to Mbed Cloud.
  • The device management capabilities as described in the OMA Lightweight Machine to Machine specification.

Features

Mbed Client Lite API supports the following features:

  • API for registration and reregistration towards Mbed Cloud service.

  • In-built secure connectivity logic using industry standard TLS/DTLS with Pre-Shared Key (PSK) mechanism.

  • API for device management (based on the OMA LwM2M Specification) and notification sending including full control of endpoint and application logic from the Mbed Cloud service.

  • Supported on Mbed OS (currently, tested only on K64F board) with LwIP Ethernet and ESP8266 WiFi connectivity.

Known issues

  • This is a preview release so some of the LwM2M features may not be supported or working reliably.

  • Update is not yet supported.

  • The credential storage on internal flash is disabled by default. On every board reset, the client performs a full bootstrap sequence but it always gets the same endpoint ID. The REST APIs can then use the same endpoint ID on every device reset.

  • The portal is not displaying all the endpoint information populated by the client, such as Manufacturer/vendor, Model number/Device class and Serial number.

  • Some of the existing unused APIs will be removed in the upcoming release. The following APIs from Mbed Cloud Client are deprecated in Mbed Client Lite. Removing them reduces the flash footprint and simplifies the client solution.

    • M2MBase class:

      • void set_interface_description(const char *description);
      • const char* interface_description() const;
      • void set_resource_type(const char *resource_type);
      • const char* resource_type() const;
      • void set_coap_content_type(const uint16_t content_type);
      • void set_observable(bool observable);
      • M2MBase::Operation operation() const;
      • int32_t name_id() const;
      • uint16_t instance_id() const;
      • uint16_t coap_content_type() const;
      • Mode mode() const;
      • void set_register_uri(bool register_uri);
      • bool register_uri() const;
      • size_t resource_name_length() const;
    • M2MResource class:

      • bool send_delayed_post_response();
  • Client Lite has been tested using a maximum of 256 bits PSK secret. We recommend 128 bits for memory efficiency.

  • API documentation is still draft version and subject to modifications in upcoming releases.

  • Occasional network connection losses can occur and the application may not be able to reconnect. If that happens, reset the board.

  • Proper error codes for unsuccessful connection attempts are missing. Currently, any network or SSL level error is translated to a NetworkError.