Changelog

All notable changes to this project are documented in this file.

Certification status

For certification status of the released versions, see the nRF9161 Mobile network operator certifications or nRF9160 Mobile network operator certifications, depending on the SiP you are using.

liblwm2m_carrier 3.5.1

Release for modem firmware version 1.3.6 and 2.0.1.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

79247

19691

Library size (reference application)

99624

34288

Changes

  • Minor fixes and improvements.

liblwm2m_carrier 3.5.0

Release for modem firmware version 1.3.6 and 2.0.1.

Changes

liblwm2m_carrier 3.4.0

Release for modem firmware version 1.3.6 and 2.0.1.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

77020

19435

Library size (reference application)

97252

34088

Changes

  • Removed AT&T support. The LwM2M carrier library is no longer required to certify with AT&T.

  • Added preliminary support for Bell Canada subscriber ID. This carrier can be disabled or enabled with the Kconfig option CONFIG_LWM2M_CARRIER_BELL_CA.

  • Changed the default string of the Device Type resource to say “Module” instead of “Smart Device”. This can be changed to other strings using the Kconfig option CONFIG_LWM2M_CARRIER_DEVICE_TYPE.

  • Added disable_queue_mode to the configuration lwm2m_carrier_config_t. Queue Mode can now be disabled using the Kconfig option CONFIG_LWM2M_CARRIER_QUEUE_MODE.

  • Added a timeout to abort Push FOTA operations using the CONFIG_LWM2M_CARRIER_FIRMWARE_DOWNLOAD_TIMEOUT Kconfig option. By default (0), the timer is disabled for unknown subscriber IDs, and set to 30 minutes for the SoftBank subscriber ID.

  • Added the function lwm2m_carrier_data_send(). This function can be used to send Binary App Data Container and Event Log object data.

  • The CONFIG_LWM2M_CARRIER_SERVER_SEC_TAG Kconfig option can now be used to provide a PSK Identity. If a PSK Identity is stored in the configured security tag, the LwM2M carrier library makes use of it alongside the PSK. This behavior does not apply when the device is in the Verizon network, in which case the PSK Identity is overwritten.

  • The FOTA implementation was reworked to use the DFU target library to manage the DFU process, providing a single interface to support different types of firmware upgrades. Consequently, the LwM2M carrier library can now perform generic application FOTA.

  • Removed the firmware update type member type from the lwm2m_carrier_event_fota_start_t structure. The image type is now determined when the LwM2M carrier library calls the glue layer function lwm2m_os_dfu_img_type().

liblwm2m_carrier 3.3.3

Release for modem firmware version 1.3.5 and 2.0.0.

Changes

  • Minor fixes and improvements.

liblwm2m_carrier 3.3.2

Release for modem firmware version 1.3.5 and 2.0.0.

Changes

  • Fixed an issue where failed modem firmware updates would not be reported correctly to the user application and the LwM2M Server.

liblwm2m_carrier 3.3.1

Release for modem firmware version 1.3.5 and 2.0.0.

Changes

  • Minor fixes and improvements.

liblwm2m_carrier 3.3.0

Release for modem firmware version 1.3.5 and 2.0.0.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

78059

17288

Library size (reference application)

98024

40416

Changes

AT&T support has been deprecated

The application must no longer connect to the AT&T Device Management server. Consequently, the LwM2M carrier library is no longer required to certify with AT&T.

  • Automatic connection and handling of custom AT&T logic by the LwM2M carrier library is deprecated.

  • CONFIG_LWM2M_CARRIER_ATT is now to be disabled by default, and might be removed in a future release.

  • CONFIG_LWM2M_CARRIER_ATT must be explicitly enabled to apply the library’s AT&T configurations.

    • In previous releases, AT&T support could be enabled together with all other applicable carriers by initializing lwm2m_carrier_config_t with an empty carriers_enabled parameter.

liblwm2m_carrier 3.2.0

Release for modem firmware version 1.3.5.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

75955

16575

Library size (reference application)

96292

39712

Changes

nRF modem dependency change

LwM2M carrier library no longer explicitly controls the Modem library. Instead, the application can initialize the Modem library at its own convenience. The LwM2M carrier library will then use the Modem library callbacks to start or pause its own operations. See the Modem library callbacks section under Modem library integration layer for more information.

  • Removed lwm2m_carrier_init().

    • The LwM2M carrier library now initializes every time the init callback from the Modem library is called.

    • Renamed lwm2m_carrier_run() to lwm2m_carrier_main().

  • Removed the event LWM2M_CARRIER_EVENT_INIT.

    • This event was used to indicate that the modem was ready to be used by the application, but this is no longer necessary since the application now controls Modem library.

    • Keep in mind that CA root certificates must still be provisioned while the modem is offline (any time the link is down).

    • lte_lc_init() and lte_lc_register_handler() can be called at any time after nrf_modem_lib_init().

  • Removed lwm2m_os_nrf_modem_init() and lwm2m_os_nrf_modem_shutdown().

  • The library no longer sends an initial LWM2M_CARRIER_EVENT_LTE_LINK_UP event after initialization.

    • This event was meant to indicate to the application when it could go online for the first time, but this is no longer needed. Instead, the library waits for the link to be brought up by the application.

    • An additional LWM2M_CARRIER_EVENT_LTE_DOWN event can be triggered by the LwM2M carrier library the first time the application goes online. This is for continuing to write the correct bootstrap keys.

liblwm2m_carrier 3.1.0

Release for modem firmware version 1.3.3 and 1.3.4.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

73482

15960

Library size (reference application)

94644

40192

Changes

liblwm2m_carrier 0.30.2

Release for modem firmware version 1.3.3.

Changes

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

72186

15840

Library size (reference application)

93784

38968

liblwm2m_carrier 0.30.1

Release for modem firmware version 1.3.3.

Changes

  • Minor fixes and improvements.

liblwm2m_carrier 0.30.0

Release for modem firmware version 1.3.1 and 1.3.2.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

71582

15844

Library size (reference application)

93876

38824

Changes

  • Added support for LG U+ network operator.

  • Added the App Data Container object (10250).

  • Added support for application FOTA in the glue layer. This is required for LG U+ support.

  • Added the Kconfig options CONFIG_LWM2M_CARRIER_LG_UPLUS and CONFIG_LWM2M_CARRIER_LG_UPLUS_SERVICE_CODE.

  • Removed the Kconfig options CONFIG_LWM2M_CARRIER_USE_CUSTOM_PSK and CONFIG_LWM2M_CARRIER_USE_CUSTOM_APN.

    • Instead, only the Kconfig options CONFIG_LWM2M_CARRIER_CUSTOM_PSK and CONFIG_LWM2M_CARRIER_CUSTOM_APN are needed. If the Kconfig options are empty, they are ignored.

  • Renamed the event LWM2M_CARRIER_EVENT_CARRIER_INIT to LWM2M_CARRIER_EVENT_INIT.

  • Removed the event LWM2M_CARRIER_EVENT_CERTS_INIT and initialization parameter lwm2m_carrier_event_certs_init_t.

  • Instead, certificates can be written to modem when the LWM2M_CARRIER_EVENT_INIT event is received, before attaching to the network.

  • List of certificates is no longer supplied to the lwm2m_carrier_init() function. LwM2M carrier library will instead iterate through all CA certificates in the modem.

  • Added the Kconfig option CONFIG_LWM2M_CARRIER_SESSION_IDLE_TIMEOUT.

  • Removed some runtime resource _set() functions. The resources are static and therefore added to library initialization instead.

  • Added new initialization configurations to set the static device object resources:

  • The LwM2M carrier library now requests the application to handle the LTE link, instead of handling the link on its own.

  • Renamed the error LWM2M_CARRIER_ERROR_CONNECT_FAIL to LWM2M_CARRIER_ERROR_LTE_LINK_UP_FAIL.

  • Renamed the error LWM2M_CARRIER_ERROR_DISCONNECT_FAIL to LWM2M_CARRIER_ERROR_LTE_LINK_DOWN_FAIL.

  • Removed the event LWM2M_CARRIER_EVENT_LTE_READY. The event was intended to help the user application coexist with the library, but it was not useful.

    • Actions to bring the link up and down are requested using the new LWM2M_CARRIER_EVENT_LTE_LINK_UP and LWM2M_CARRIER_EVENT_LTE_LINK_DOWN events. The application can therefore perform housekeeping at these events if needed.

    • Even when the LWM2M_CARRIER_EVENT_LTE_READY event was sent to the application, the carrier library could still disconnect the link to write keys to the modem after a while in some cases.

    • Any application must handle untimely disconnects anyway, because of factors such as signal coverage, making the LWM2M_CARRIER_EVENT_LTE_READY event redundant.

  • NVS records are no longer statically defined by a devicetree partition. Instead, the Partition Manager is used to define flash partition dynamically.

    • To use the legacy NVS partition, you can add a pm_static.yml file to your project with the following content:

      lwm2m_carrier:
        address: 0xfa000
        size: 0x3000
      free:
        address: 0xfd000
        size: 0x3000
      

      This is strongly encouraged if you are updating deployed devices, to make sure that the persistent configuration of the library is preserved across the versions. The address of the previous storage can be confirmed by checking the build/zephyr/zephyr.dts file in your old project.

liblwm2m_carrier 0.22.0

Release for modem firmware version 1.3.1.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

67872

15484

Library size (reference application)

90532

37592

Changes

  • Added a new event LWM2M_CARRIER_DEFERRED_SIM_MSISDN.

    • This event can trigger on devices with a new SIM card that has not been registered on the network yet. (Therefore, it has not received the phone number needed for device management).

  • Removed dependency on the deprecated AT command and AT notification libraries from the glue layer.

  • Added dependency on the AT monitor library in the glue layer.

  • Changed the lwm2m_os_lte_link_up() function to perform an asynchronous connect.

  • Removed the following unused functions from the glue layer: lwm2m_os_sec_ca_chain_exists(), lwm2m_os_sec_ca_chain_cmp(), lwm2m_os_sec_ca_chain_write().

liblwm2m_carrier 0.21.0

Release for modem firmware version 1.3.1.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

75216

14275

Library size (reference application)

103104

42672

Changes

  • Library can now be provided a non-bootstrap custom URI. Previously, only bootstrap custom URI was accepted.

    • New Kconfig CONFIG_LWM2M_CARRIER_IS_SERVER_BOOTSTRAP indicates if the custom URI is a Bootstrap-Server.

    • New Kconfig CONFIG_LWM2M_CARRIER_SERVER_LIFETIME sets the lifetime for the (non-bootstrap) LwM2M Server.

  • Library will now read bootstrap information from Smartcard when applicable.

  • Added a new event LWM2M_CARRIER_EVENT_MODEM_DOMAIN to indicate modem domain events.

  • Removed logging from the OS glue layer.

  • Added the Cellular Connectivity object.

    • Increased +CEREG notification level requirement from 2 to 4, so that the library can receive Active-Time and Periodic-TAU.

  • Added the Location object, including the API lwm2m_carrier_location_set() and lwm2m_carrier_velocity_set().

  • Removed a limitation which stated that the application could not use the NB-IoT LTE mode.

liblwm2m_carrier 0.20.1

Release for modem firmware version 1.3.0.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

64620

10687

Library size (reference application)

109520

35184

Changes

  • Fixed a race condition that could render the LwM2M carrier library unresponsive.

liblwm2m_carrier 0.20.0

Release for modem firmware version 1.3.0.

Changes

  • CA certificates are no longer provided by the LwM2M carrier library.

    • Application is now expected to store CA certificates into the modem security tags.

    • Added a new event LWM2M_CARRIER_EVENT_CERTS_INIT that instructs the application to provide the CA certificate security tags to the LwM2M carrier library.

  • Renamed the event LWM2M_CARRIER_BSDLIB_INIT to LWM2M_CARRIER_EVENT_MODEM_INIT.

  • Added a new deferred event reason LWM2M_CARRIER_DEFERRED_SERVICE_UNAVAILABLE, which indicates that the LwM2M Server is unavailable due to maintenance.

  • Added a new error code LWM2M_CARRIER_ERROR_CONFIGURATION which indicates that an illegal object configuration was detected.

  • Added new Kconfig options CONFIG_LWM2M_CARRIER_USE_CUSTOM_APN and CONFIG_LWM2M_CARRIER_CUSTOM_APN to set the apn member of lwm2m_carrier_config_t.

  • It is now possible to configure a custom bootstrap URI using CONFIG_LWM2M_CARRIER_USE_CUSTOM_BOOTSTRAP_URI regardless of operator SIM.

liblwm2m_carrier 0.10.2

Release for modem firmware versions 1.2.3 and 1.1.4, and nRF Connect SDK 1.4.2.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

61728

10226

Library size (reference application)

97116

29552

Changes

  • LWM2M_CARRIER_EVENT_LTE_READY will be sent to the application even when the device is outside of AT&T and Verizon networks.

  • The interval to check for sufficient battery charge during FOTA has been reduced from five minutes to one minute.

liblwm2m_carrier 0.10.1

Release for modem firmware versions 1.2.2 and 1.1.4, and nRF Connect SDK 1.4.1.

Changes

  • Minor fixes and improvements.

liblwm2m_carrier 0.10.0

Snapshot release for modem firmware version 1.2.2 and the upcoming version 1.1.4, and nRF Connect SDK 1.4.0.

This release is intended to let users begin integration towards the AT&T and Verizon device management platforms. Modem firmware version 1.1.4 must be used for Verizon, and the modem firmware version 1.2.2 must be used for AT&T.

The snapshot can be used for development and testing only. It is not ready for certification.

Changes

  • Reduced the required amount of stack and heap allocated by the library.

  • Reduced the power consumption of the library.

  • Renamed the event LWM2M_CARRIER_EVENT_READY to LWM2M_CARRIER_EVENT_REGISTERED.

  • Introduced a new event LWM2M_CARRIER_EVENT_LTE_READY, to indicate that the LTE link can be used by the application.

  • The Modem DFU socket can now be used by the application when it is not needed by the library.

liblwm2m_carrier 0.9.1

Release with AT&T support, intended for modem firmware version 1.2.1 and nRF Connect SDK version 1.3.1.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

61450

9541

Library size (reference application)

92750

30992

Changes

  • Minor fixes and improvements.

liblwm2m_carrier 0.9.0

Snapshot release for the upcoming modem firmware version 1.2.1 and the nRF Connect SDK 1.3.0.

This release is intended to let users begin integration towards the AT&T and Verizon device management platforms. It can be used for development and testing only. It is not ready for certification.

Changes

  • Added new APIs to create and access portfolio object instances. A new portfolio object instance can be created using lwm2m_carrier_portfolio_instance_create(). lwm2m_carrier_identity_read() and lwm2m_carrier_identity_write() are used to read and write to the corresponding Identity resource fields of a given portfolio object instance.

  • Expanded API with “certification_mode” variable that chooses between certification (test) or production (live) servers upon the initialization of the LwM2M carrier library.

  • Expanded API with “apn” variable to set a custom APN upon the initialization of the LwM2M carrier library.

  • PSK Key is now set independently of custom URI.

    • Added the LWM2M_CARRIER_USE_CUSTOM_BOOTSTRAP_PSK and LWM2M_CARRIER_CUSTOM_BOOTSTRAP_PSK Kconfig options.

  • PSK format has been modified to be more user-friendly.

    • Previous format: Byte array. For example, static const char bootstrap_psk[] = {0x01, 0x02, 0xab, 0xcd, 0xef};.

    • Current format: A null-terminated string that must be composed of hexadecimal numbers. For example, “0102abcdef”.

liblwm2m_carrier 0.8.2

Release for modem firmware version 1.1.2, with support for Verizon Wireless.

Changes

  • Fixed a memory leak.

  • Added lwm2m_carrier_event_deferred_t to retrieve the event reason and timeout.

  • Added FOTA errors to LWM2M_CARRIER_EVENT_ERROR event.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

45152

7547

Library size (reference application)

65572

28128

liblwm2m_carrier 0.8.1+build1

Release for modem firmware version 1.1.0, with support for Verizon Wireless.

Changes

  • Fixed a memory leak.

Size

See Library size for an explanation of the library size in different scenarios.

Flash (Bytes)

RAM (Bytes)

Library size (binary)

44856

7546

Library size (reference application)

64680

28128

liblwm2m_carrier 0.8.1

Release for modem firmware version 1.1.0, with support for Verizon Wireless.

Changes

  • Numerous stability fixes and improvements.

  • Updated Modem library version dependency.

  • Fixed an issue where high LTE network activity could prevent modem firmware updates over LwM2M.

  • Added the following library events:

    • LWM2M_CARRIER_EVENT_CONNECTING, to indicate that the LTE link is about to be brought up.

    • LWM2M_CARRIER_EVENT_DISCONNECTING, to indicate that the LTE link is about to be brought down.

    • LWM2M_CARRIER_EVENT_DEFERRED, to indicate that the LwM2M operation is deferred for 24 hours.

    • LWM2M_CARRIER_EVENT_ERROR, to indicate that an error has occurred.

  • Renamed the following library events:

    • LWM2M_CARRIER_EVENT_CONNECT to LWM2M_CARRIER_EVENT_CONNECTED.

    • LWM2M_CARRIER_EVENT_DISCONNECT to LWM2M_CARRIER_EVENT_DISCONNECTED.

liblwm2m_carrier 0.8.0

Release for modem firmware version 1.1.0 and nRF Connect SDK v1.1.0, with support for Verizon Wireless.

Changes

  • Abstracted several new functions in the glue layer to improve compatibility on top of the master branch.

  • Reorganized NVS keys usage to make it range-bound (0xCA00, 0xCAFF). This range is not backward compatible, so you should not rely on pre-existing information saved in flash by earlier versions of this library.

  • Added APIs to set the following values from the application:

    • Available Power Sources

    • Power Source Voltage

    • Power Source Current

    • Battery Level

    • Battery Status

    • Memory Total

    • Error Code

    The application must set and maintain these values to reflect the state of the device. Updated values are pushed to the servers autonomously.

  • Added API to set the Device Type resource. If not set, this is reported as Smart Device.

  • Added API to set the “Software Version” resource. If not set, this is reported as “LwM2M 0.8.0”.

  • Added API to set the “Hardware Version” resource. If not set, this is reported as “1.0”.

Known issues and limitations

  • It is not possible to use a DTLS connection in parallel with the library.

  • It is not possible to use a TLS connection in parallel with LwM2M-managed modem firmware updates. The application should close any TLS connections when it receives the LWM2M_CARRIER_EVENT_FOTA_START event from the library.

liblwm2m_carrier 0.6.0

Initial public release for modem firmware version 1.0.1. This release is intended to let users begin the integration on the Verizon Wireless device management platform and start the certification process with Verizon Wireless. We recommend upgrading to the next release when it becomes available. The testing performed on this release does not meet Nordic standard for mass production release testing.

Known issues and limitations

  • It is not possible to use a DTLS connection in parallel with the library.

  • It is not possible to use a TLS connection in parallel with LwM2M-managed modem firmware updates. The application should close any TLS connections when it receives the LWM2M_CARRIER_EVENT_FOTA_START event from the library.

  • The API to query the application for resource values is not implemented yet.

    • The “Available Power Sources” resource is reported as DC power (0) and External Battery (2).

    • The following resources are reported to have value 0 (zero):

      • Power Source Voltage, Power Source Current, Battery Level, Battery Status, Memory Free, Memory Total, Error Code.

    • The “Device Type” resource is reported as Smart Device.

    • The “Software Version” resource is reported as LwM2M 0.6.0.

    • The “Hardware Version” is reported as 1.0.

  • The following values are reported as dummy values instead of being fetched from the modem:

    • “IP address”, reported as 192.168.0.0.

  • The “Current Time” and “Timezone” resources do not respect write operations, instead, read operations on these resources will return the current time and timezone as kept by the nRF91 Series modem.