FOTA - THINGY91 lwm2m Leshan Demo Server

Good day

I have recently updated my toolchain and now I seem to be have having trouble with FOTA updates over lwm2m using the lwm2m client and over NBIOT.  I am following the instructions and help stated in this link https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.2.0/nrf/ug_nrf91_features.html#nrf9160-fota  .  Please assist if possible.

# General config
CONFIG_NEWLIB_LIBC=y
CONFIG_ASSERT=y
CONFIG_REBOOT=y

# Network
CONFIG_NETWORKING=y
CONFIG_NET_NATIVE=n
CONFIG_NET_IPV6=n
CONFIG_NET_IPV4=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_OFFLOAD=y

# Sensors
CONFIG_I2C=y
CONFIG_SPI=y
CONFIG_SENSOR=y

# LwM2M and IPSO
CONFIG_LWM2M=y
CONFIG_LWM2M_COAP_BLOCK_SIZE=512
CONFIG_LWM2M_COAP_MAX_MSG_SIZE=1280
CONFIG_LWM2M_ENGINE_MAX_OBSERVER=15
CONFIG_LWM2M_ENGINE_MAX_MESSAGES=15
CONFIG_LWM2M_ENGINE_MAX_PENDING=15
CONFIG_LWM2M_ENGINE_MAX_REPLIES=15
CONFIG_LWM2M_DNS_SUPPORT=y
CONFIG_LWM2M_RW_JSON_SUPPORT=n
CONFIG_LWM2M_SERVER_DEFAULT_PMIN=1
CONFIG_LWM2M_SERVER_DEFAULT_PMAX=300
CONFIG_LWM2M_CLIENT_UTILS=y
CONFIG_LWM2M_CLIENT_UTILS_LOCATION_OBJ_SUPPORT=n
CONFIG_LWM2M_IPSO_SUPPORT=y

# DTLS settings
CONFIG_LWM2M_DTLS_SUPPORT=y

# nRF9160 helper libraries
CONFIG_MODEM_KEY_MGMT=y

# Default app to debug logging
CONFIG_LOG=y
CONFIG_APP_LOG_LEVEL_DBG=y

# Support HEX style PSK values (double the size + NULL char)
CONFIG_LWM2M_SECURITY_KEY_SIZE=33

# extend CoAP retry timing to 4 seconds for LTE/LTE-M
CONFIG_COAP_INIT_ACK_TIMEOUT_MS=4000

# Enable CoAP extended option length
CONFIG_COAP_EXTENDED_OPTIONS_LEN=y
CONFIG_COAP_EXTENDED_OPTIONS_LEN_VALUE=40

# Enable settings storage
CONFIG_SETTINGS=y
CONFIG_FCB=y
CONFIG_SETTINGS_FCB=y

# LTE link control
CONFIG_LTE_LINK_CONTROL=y
CONFIG_LTE_AUTO_INIT_AND_CONNECT=n
CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y

# Modem library
CONFIG_NRF_MODEM_LIB=y

# Modem info
CONFIG_MODEM_INFO=y
CONFIG_MODEM_INFO_ADD_DATE_TIME=n

# Enable shell
CONFIG_LWM2M_SHELL=y

# Heap and stacks
CONFIG_HEAP_MEM_POOL_SIZE=16384
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_LWM2M_ENGINE_STACK_SIZE=3072
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048

# Allow FOTA downloads using download-client
CONFIG_DOWNLOAD_CLIENT=y
CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
CONFIG_FOTA_DOWNLOAD=y
CONFIG_DFU_TARGET=y
CONFIG_BOOTLOADER_MCUBOOT=y
# CONFIG_COAP_WELL_KNOWN_BLOCK_WISE=y

# Application version
CONFIG_MCUBOOT_IMAGE_VERSION="1.0.0"



# Set LwM2M Server IP address here
CONFIG_LWM2M_CLIENT_UTILS_SERVER="coaps://leshan.eclipseprojects.io:5684"
CONFIG_APP_LWM2M_PSK="000102030405060708090a0b0c0d0e0f"

# Application Event Manager
CONFIG_APP_EVENT_MANAGER=y

# Date-Time library
CONFIG_DATE_TIME=y
CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=86400

# NBIOT
CONFIG_LTE_NETWORK_MODE_NBIOT=y
CONFIG_PDN=y
CONFIG_PDN_DEFAULTS_OVERRIDE=y
CONFIG_PDN_DEFAULT_APN="nbiot.vodacom.za"

# Enable LwM2M Queue Mode
CONFIG_LWM2M_QUEUE_MODE_ENABLED=n

# Enable TLS session caching to prevent doing a full TLS handshake for every send.
CONFIG_LWM2M_TLS_SESSION_CACHING=y

# Socket close is skipped at RX off idle state which optimize power consumption
# Socket close call will enable RCC connection for send Alert message to server
# Alert is now send right before opening a new connection.
CONFIG_LWM2M_RD_CLIENT_SUSPEND_SOCKET_AT_IDLE=y

# Sets the duration that the lwm2m engine will be polling for data after transmission before
# the socket is closed.
# Adjust so that we can detach from network in 30 seconds
CONFIG_LWM2M_QUEUE_MODE_UPTIME=30

# Set lifetime of 12 hours
CONFIG_LWM2M_ENGINE_DEFAULT_LIFETIME=43200

# Do registration update after 5400 seconds (90 minutes)
CONFIG_LWM2M_SECONDS_TO_UPDATE_EARLY=37800

# Configure PSM mode
# Request periodic TAU of 3600 seconds (60 minutes)
CONFIG_LTE_PSM_REQ_RPTAU="00000110"

# Set Requested Active Time (RAT) to 30 seconds. Preferably a little bit longer than the
# configured LWM2M_QUEUE_MODE_UPTIME. Due to NAT/firewall UDP connections are usually
# closed within 30-60 seconds so there is in general no point in setting a longer
# Queue mode uptime / LTE PSM active time.
CONFIG_LTE_PSM_REQ_RAT="00001111"

# Request eDRX mode
CONFIG_LTE_EDRX_REQ=y

# Request eDRX cycle length of 10.24 seconds for LTE-M
CONFIG_LTE_EDRX_REQ_VALUE_LTE_M="0001"

# Request eDRX cycle length of 20.48 seconds for NB-IoT
CONFIG_LTE_EDRX_REQ_VALUE_NBIOT="0010"

# Request Paging time window of 1.28 seconds for LTE-M
CONFIG_LTE_PTW_VALUE_LTE_M="0000"

# Request Paging time window of 2.56 seconds for NB-IoT
CONFIG_LTE_PTW_VALUE_NBIOT="0000"

# Get notification before Tracking Area Update (TAU). Notification triggers registration
# update and TAU will be sent with the update which decreases power consumption.
CONFIG_LTE_LC_TAU_PRE_WARNING_NOTIFICATIONS=y

The error i get is

Obtained date-time from modem[0m[1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:58.221,557] 
[0m<inf> lwm2m_firmware: Image type 1 [0m[1;32muart:~$ [m[8D[J[00:00:58.226,379] 
[0m<inf> lwm2m_firmware: Application firmware download started.[0m[1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:59.594,360] 
[1;31m<err> net_lwm2m_message_handling: Cannot find block context[0m[1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:02:08.828,063] 

Parents
  • Hi

     

    Could you share your full log?

    It looks like that error is thrown after the application image has been downloaded, is that correct?

    I have recently updated my toolchain and now I seem to be have having trouble with FOTA updates over lwm2m using the lwm2m client and over NBIOT. 

    From which ncs version did you upgrade from? Have you tried to replicate this issue in the stock lwm2m_client sample?

     

    Kind regards,

    Håkon

  • Hi Håkon

    I am currently using v3.2.99-ncs2-rc1.  The error is  thrown before the download takes place.

    023-03-06T11:36:29.504Z DEBUG Application data folder: C:\Users\Hassa\AppData\Roaming\nrfconnect\pc-nrfconnect-linkmonitor
    2023-03-06T11:36:29.572Z DEBUG App pc-nrfconnect-linkmonitor v2.0.3 local
    
    2023-03-06T11:36:30.043Z INFO Using nrf-device-lib-js version: 0.5.0
    2023-03-06T11:36:30.043Z INFO Using nrf-device-lib version: 0.13.11
    2023-03-06T11:36:30.043Z INFO Using nrfjprog DLL version: 10.18.2
    2023-03-06T11:36:30.044Z INFO Using JLink version: JLink_V7.80c
    2023-03-06T11:36:30.276Z INFO Installed JLink version does not match the provided version (V7.66a)
    2023-03-06T11:36:32.159Z INFO Modem port is opened
    2023-03-06T11:36:32.170Z DEBUG modem >> AT+CFUN?
    2023-03-06T11:36:49.342Z INFO Modem port is opened
    2023-03-06T11:36:49.345Z DEBUG modem >> AT+CFUN?
    2023-03-06T11:36:49.358Z DEBUG modem << [1;31mAT+CFUN?: command not found
    2023-03-06T11:36:49.486Z DEBUG modem << [m[1;32muart:~$ [m[8D[J*** Booting Zephyr OS build v3.2.99-ncs2-rc1 ***
    2023-03-06T11:36:49.489Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.507,720] [0m<inf> app_lwm2m_client: Run LWM2M client[0m
    2023-03-06T11:36:49.491Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.507,720] [0m<inf> app_lwm2m_client: Initializing modem.[0m
    2023-03-06T11:36:49.494Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.509,948] [0m<inf> BH1749: BH1749 initialized[0m
    
    2023-03-06T11:36:49.499Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.598,846] [1;31m<err> net_lwm2m_registry: res instance 0 not found[0m
    2023-03-06T11:36:49.501Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.598,876] [1;31m<err> net_lwm2m_registry: resource 5700 not found[0m
    2023-03-06T11:36:49.504Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.598,999] [0m<dbg> app_lwm2m: buzzer_intensity_cb: Intensity: 100[0m
    2023-03-06T11:36:51.581Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:03.600,402] [0m<inf> app_sensors: Finished accelerometer calibration[0m
    2023-03-06T11:36:51.583Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.600,708] [0m<dbg> app_sensors: colour_sensor_create: Created IPSO Colour Sensor instance: 0[0m
    2023-03-06T11:36:51.585Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.600,860] [0m<dbg> app_sensors: colour_sensor_create: Created IPSO Colour Sensor instance: 1[0m
    2023-03-06T11:36:51.586Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.600,982] [0m<inf> lwm2m_lte_notification: Registering ncell notification handler[0m
    2023-03-06T11:36:51.587Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.601,074] [0m<inf> lwm2m_firmware: Image is confirmed OK[0m
    2023-03-06T11:36:51.589Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.601,104] [0m<inf> app_lwm2m_client: Connecting to network.[0m
    2023-03-06T11:36:51.590Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.601,104] [0m<inf> app_lwm2m_client: This may take several minutes.[0m
    2023-03-06T11:36:54.536Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:06.617,065] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2[0m
    2023-03-06T11:37:08.737Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:20.744,873] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1[0m
    2023-03-06T11:37:08.739Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:20.745,605] [0m<inf> app_lwm2m_client: Connected to NB-IoT network[0m
    2023-03-06T11:37:08.740Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:20.745,697] [0m<dbg> app_lwm2m_client: main: HELLO UPDATE[0m
    2023-03-06T11:37:08.741Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:20.746,124] [1;31m<err> gnss_module: Failed to set GNSS use case (-13)[0m
    2023-03-06T11:37:08.743Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:20.746,734] [0m<inf> app_lwm2m_client: Client connect to server[0m
    2023-03-06T11:37:08.744Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:20.746,887] [0m<inf> net_lwm2m_rd_client: Start LWM2M Client: 
    2023-03-06T11:37:08.745Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:20.800,476] [1;31m<err> net_lwm2m_registry: resource 5700 not found[0m
    2023-03-06T11:37:08.746Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:21.510,986] [0m<inf> net_lwm2m_rd_client: RD Client started with endpoint '' with client lifetime 43200[0m
    2023-03-06T11:37:10.951Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:23.010,833] [0m<inf> lwm2m_security: Need to write credentials, requesting LTE and GNSS offline...[0m
    2023-03-06T11:37:10.953Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:23.488,342] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 0[0m
    2023-03-06T11:37:10.954Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:23.488,464] [0m<inf> app_lwm2m_client: LwM2M is connecting to server[0m
    2023-03-06T11:37:12.000Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:24.083,526] [0m<inf> lwm2m_security: Requesting LTE and GNSS online[0m
    2023-03-06T11:37:14.988Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:27.070,739] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2[0m
    2023-03-06T11:37:16.260Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:28.322,570] [0m<inf> lwm2m_security: Modem connection restored[0m
    2023-03-06T11:37:16.263Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:28.522,399] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1[0m
    2023-03-06T11:37:16.264Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:28.522,705] [0m<inf> app_lwm2m_client: LwM2M is connecting to server[0m
    2023-03-06T11:37:17.656Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:29.729,827] [0m<inf> net_lwm2m_engine: Connected, sock id 0[0m
    2023-03-06T11:37:17.658Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:30.334,197] [0m<dbg> app_lwm2m_client: rd_client_event: Registration complete[0m
    2023-03-06T11:37:17.685Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:30.334,259] [0m<inf> net_lwm2m_rd_client: Registration Done (EP='k32BCto0Tf')[0m
    2023-03-06T11:37:17.687Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:30.334,564] [0m<inf> app_lwm2m_client: LwM2M is connected to server[0m
    2023-03-06T11:37:17.688Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:30.334,625] [0m<inf> app_lwm2m_client: Obtained date-time from modem[0m
    2023-03-06T11:38:04.491Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:01:16.557,006] [0m<inf> lwm2m_firmware: Image type 1[0m
    2023-03-06T11:38:04.496Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:01:16.563,079] [0m<inf> lwm2m_firmware: Application firmware download started.[0m
    2023-03-06T11:38:04.497Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:01:17.377,136] [1;31m<err> net_lwm2m_message_handling: Cannot find block context[0m

    # General config
    CONFIG_NEWLIB_LIBC=y
    CONFIG_ASSERT=y
    CONFIG_REBOOT=y
    
    # Network
    CONFIG_NETWORKING=y
    CONFIG_NET_NATIVE=n
    CONFIG_NET_IPV6=n
    CONFIG_NET_IPV4=y
    CONFIG_NET_SOCKETS=y
    CONFIG_NET_SOCKETS_OFFLOAD=y
    
    # Sensors
    CONFIG_I2C=y
    CONFIG_SPI=y
    CONFIG_SENSOR=y
    
    # LwM2M and IPSO
    CONFIG_LWM2M=y
    CONFIG_LWM2M_COAP_BLOCK_SIZE=512
    CONFIG_LWM2M_COAP_MAX_MSG_SIZE=1280
    CONFIG_LWM2M_ENGINE_MAX_OBSERVER=15
    CONFIG_LWM2M_ENGINE_MAX_MESSAGES=15
    CONFIG_LWM2M_ENGINE_MAX_PENDING=15
    CONFIG_LWM2M_ENGINE_MAX_REPLIES=15
    CONFIG_LWM2M_DNS_SUPPORT=y
    CONFIG_LWM2M_RW_JSON_SUPPORT=n
    CONFIG_LWM2M_SERVER_DEFAULT_PMIN=1
    CONFIG_LWM2M_SERVER_DEFAULT_PMAX=300
    CONFIG_LWM2M_CLIENT_UTILS=y
    CONFIG_LWM2M_CLIENT_UTILS_LOCATION_OBJ_SUPPORT=n
    CONFIG_LWM2M_IPSO_SUPPORT=y
    
    # DTLS settings
    CONFIG_LWM2M_DTLS_SUPPORT=y
    
    # nRF9160 helper libraries
    CONFIG_MODEM_KEY_MGMT=y
    
    # Default app to debug logging
    CONFIG_LOG=y
    CONFIG_APP_LOG_LEVEL_DBG=y
    
    # Support HEX style PSK values (double the size + NULL char)
    CONFIG_LWM2M_SECURITY_KEY_SIZE=33
    
    # extend CoAP retry timing to 4 seconds for LTE/LTE-M
    CONFIG_COAP_INIT_ACK_TIMEOUT_MS=4000
    
    # Enable CoAP extended option length
    CONFIG_COAP_EXTENDED_OPTIONS_LEN=y
    CONFIG_COAP_EXTENDED_OPTIONS_LEN_VALUE=40
    
    # Enable settings storage
    CONFIG_SETTINGS=y
    CONFIG_FCB=y
    CONFIG_SETTINGS_FCB=y
    
    # LTE link control
    CONFIG_LTE_LINK_CONTROL=y
    CONFIG_LTE_AUTO_INIT_AND_CONNECT=n
    CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y
    
    # Modem library
    CONFIG_NRF_MODEM_LIB=y
    
    # Modem info
    CONFIG_MODEM_INFO=y
    CONFIG_MODEM_INFO_ADD_DATE_TIME=n
    
    # Enable shell
    CONFIG_LWM2M_SHELL=y
    
    # Heap and stacks
    CONFIG_HEAP_MEM_POOL_SIZE=16384
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_LWM2M_ENGINE_STACK_SIZE=3072
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
    
    # Allow FOTA downloads using download-client
    CONFIG_DOWNLOAD_CLIENT=y
    CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
    CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
    CONFIG_FOTA_DOWNLOAD=y
    CONFIG_LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT=y
    CONFIG_DFU_TARGET=y
    CONFIG_BOOTLOADER_MCUBOOT=y
    
    # Application version
    CONFIG_MCUBOOT_IMAGE_VERSION="1.0.0"
    
    
    
    # Set LwM2M Server IP address here
    
    
    CONFIG_LWM2M_CLIENT_UTILS_SERVER="coaps://leshan.eclipseprojects.io:5684"
    CONFIG_APP_LWM2M_PSK="redacted"
    
    # Application Event Manager
    CONFIG_APP_EVENT_MANAGER=y
    
    # Date-Time library
    CONFIG_DATE_TIME=y
    CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=86400
    
    # NBIOT
    CONFIG_LTE_NETWORK_MODE_NBIOT=y
    CONFIG_PDN=y
    CONFIG_PDN_DEFAULTS_OVERRIDE=y
    CONFIG_PDN_DEFAULT_APN="redacted"
    
    # Enable LwM2M Queue Mode
    CONFIG_LWM2M_QUEUE_MODE_ENABLED=n
    
    # Enable TLS session caching to prevent doing a full TLS handshake for every send.
    CONFIG_LWM2M_TLS_SESSION_CACHING=y
    
    # Socket close is skipped at RX off idle state which optimize power consumption
    # Socket close call will enable RCC connection for send Alert message to server
    # Alert is now send right before opening a new connection.
    CONFIG_LWM2M_RD_CLIENT_SUSPEND_SOCKET_AT_IDLE=y
    
    # Sets the duration that the lwm2m engine will be polling for data after transmission before
    # the socket is closed.
    # Adjust so that we can detach from network in 30 seconds
    CONFIG_LWM2M_QUEUE_MODE_UPTIME=30
    
    # Set lifetime of 12 hours
    CONFIG_LWM2M_ENGINE_DEFAULT_LIFETIME=43200
    
    # Do registration update after 5400 seconds (90 minutes)
    CONFIG_LWM2M_SECONDS_TO_UPDATE_EARLY=37800
    
    # Configure PSM mode
    # Request periodic TAU of 3600 seconds (60 minutes)
    CONFIG_LTE_PSM_REQ_RPTAU="00000110"
    
    # Set Requested Active Time (RAT) to 30 seconds. Preferably a little bit longer than the
    # configured LWM2M_QUEUE_MODE_UPTIME. Due to NAT/firewall UDP connections are usually
    # closed within 30-60 seconds so there is in general no point in setting a longer
    # Queue mode uptime / LTE PSM active time.
    CONFIG_LTE_PSM_REQ_RAT="00001111"
    
    # Request eDRX mode
    CONFIG_LTE_EDRX_REQ=y
    
    # Request eDRX cycle length of 10.24 seconds for LTE-M
    CONFIG_LTE_EDRX_REQ_VALUE_LTE_M="0001"
    
    # Request eDRX cycle length of 20.48 seconds for NB-IoT
    CONFIG_LTE_EDRX_REQ_VALUE_NBIOT="0010"
    
    # Request Paging time window of 1.28 seconds for LTE-M
    CONFIG_LTE_PTW_VALUE_LTE_M="0000"
    
    # Request Paging time window of 2.56 seconds for NB-IoT
    CONFIG_LTE_PTW_VALUE_NBIOT="0000"
    
    # Get notification before Tracking Area Update (TAU). Notification triggers registration
    # update and TAU will be sent with the update which decreases power consumption.
    CONFIG_LTE_LC_TAU_PRE_WARNING_NOTIFICATIONS=y
    
    # CONFIG_COAP_WELL_KNOWN_BLOCK_WISE=y
    

    I have made the stock lwm2m_sample with my NBIOT settings and this is what ive found.  Apologies for the late reply.

    Kind regards, Hassan.

  • Hi Hassan,

     

    I wasn't able to use the "package" properly, but I did find this in the leshan wiki:

    https://github.com/eclipse/leshan/wiki/Using-CoAP-Block-Wise-to-transfer-large-file-%3F

    I would recommend that you try to push an URI instead.

      

    Kind regards,

    Håkon

  • Hi Håkon

    Thank you for your assistance. Is this "package" method a feature I can expect to work in future updates or would it be worthwhile to build with the assumption that a "Package URI" method will only be available.

    Kind regards,

    Hassan

  • Hi Hassan,

     

    As stated in the former link, this is not a recommended method by leshan either.

    It is recommended that you provide an URI to the object.

     

    Kind regards,

    Håkon

  • Hi Håkon

    I've attempted to do this by pulling an update from our own server.  This is the error I'm getting.

    2023-04-17T10:51:55.817Z DEBUG modem << [m[1;32muart:~$ [m[8D[J*** Booting Zephyr OS build v3.2.99-ncs2 ***
    2023-04-17T10:51:55.822Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.507,812] [0m<inf> app_lwm2m_client: Run LWM2M client[0m
    2023-04-17T10:51:55.826Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.507,812] [0m<inf> app_lwm2m_client: Initializing modem.[0m
    2023-04-17T10:51:55.829Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.509,918] [0m<inf> BH1749: BH1749 initialized[0m
    2023-04-17T10:51:55.833Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.524,810] [0m<inf> app_lwm2m_client: endpoint: urn:imei:******[0m
    2023-04-17T10:51:55.836Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.571,014] [0m<dbg> app_lwm2m: buzzer_intensity_cb: Intensity: 100[0m
    2023-04-17T10:51:57.900Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:03.572,448] [0m<inf> app_sensors: Finished accelerometer calibration[0m
    2023-04-17T10:51:57.905Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.572,753] [0m<dbg> app_sensors: colour_sensor_create: Created IPSO Colour Sensor instance: 0[0m
    2023-04-17T10:51:57.908Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.572,906] [0m<dbg> app_sensors: colour_sensor_create: Created IPSO Colour Sensor instance: 1[0m
    2023-04-17T10:51:57.912Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.573,059] [0m<inf> lwm2m_lte_notification: Registering ncell notification handler[0m
    2023-04-17T10:51:57.915Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.573,150] [0m<inf> lwm2m_firmware: Image is confirmed OK[0m
    2023-04-17T10:51:57.919Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.582,031] [0m<inf> app_lwm2m_client: PSM mode requested[0m
    2023-04-17T10:51:57.922Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.582,031] [0m<inf> app_lwm2m_client: Connecting to network.[0m
    2023-04-17T10:51:57.925Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.582,061] [0m<inf> app_lwm2m_client: This may take several minutes.[0m
    2023-04-17T10:52:00.799Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:06.542,358] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2[0m
    2023-04-17T10:52:03.020Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:08.711,151] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1[0m
    2023-04-17T10:52:03.024Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,036] [0m<inf> app_lwm2m_client: Connected to NB-IoT network[0m
    2023-04-17T10:52:03.027Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,432] [1;31m<err> gnss_module: Failed to set GNSS use case (-13)[0m
    2023-04-17T10:52:03.030Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,554] [0m<inf> app_lwm2m_client: Client connect to server[0m
    2023-04-17T10:52:03.033Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,615] [0m<inf> 3: Start LWM2M Client: urn:*************[0m
    2023-04-17T10:52:03.036Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:09.508,758] [0m<inf> 3: RD Client started with endpoint '********' with client lifetime 43200[0m
    2023-04-17T10:52:05.311Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:11.032,226] [0m<inf> lwm2m_security: Need to write credentials, requesting LTE and GNSS offline...[0m
    2023-04-17T10:52:05.316Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:11.573,089] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 0[0m
    2023-04-17T10:52:05.319Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:11.573,242] [0m<inf> app_lwm2m_client: LwM2M is connecting to server[0m
    2023-04-17T10:52:06.424Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:12.168,334] [0m<inf> lwm2m_security: Requesting LTE and GNSS online[0m
    2023-04-17T10:52:09.417Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:15.161,254] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2[0m
    2023-04-17T10:52:10.843Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:16.567,321] [0m<inf> lwm2m_security: Modem connection restored[0m
    2023-04-17T10:52:10.849Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:16.767,120] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1[0m
    2023-04-17T10:52:10.866Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:16.767,425] [0m<inf> app_lwm2m_client: LwM2M is connecting to server[0m
    2023-04-17T10:52:12.263Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:17.969,573] [0m<inf> net_lwm2m_engine: Connected, sock id 0[0m
    2023-04-17T10:52:12.267Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.547,973] [0m<dbg> app_lwm2m_client: rd_client_event: Registration complete[0m
    2023-04-17T10:52:12.270Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.548,034] [0m<inf> 3: Registration Done (EP='9CjKyTlser')[0m
    2023-04-17T10:52:12.273Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.548,339] [0m<inf> app_lwm2m_client: LwM2M is connected to server[0m
    2023-04-17T10:52:12.277Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.548,431] [0m<inf> app_lwm2m_client: Obtained date-time from modem[0m
    2023-04-17T10:52:19.743Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:25.425,445] [0m<inf> download_client: Setting up TLS credentials, tag 16842753[0m
    2023-04-17T10:52:19.748Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.425,567] [0m<inf> download_client: Connecting to https://download.*redacted*.com[0m
    2023-04-17T10:52:19.751Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.682,983] [1;31m<err> download_client: Unable to connect, errno 116[0m
    2023-04-17T10:52:19.754Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.683,380] [1;31m<err> lwm2m_firmware: fota_download_start() failed, return code -116[0m
    2023-04-17T10:52:19.757Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.684,783] [1;33m<wrn> fota_download: fota_download_cancel invalid state[0m
    2023-04-17T10:52:19.760Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.684,814] [1;31m<err> lwm2m_firmware: Unsupported Image type 0[0m
    2023-04-17T10:52:19.763Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.684,814] [1;31m<err> lwm2m_firmware: Failed to reset DFU target, err: -13[0m
    2023-04-17T10:52:49.241Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:54.987,121] [0m<dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed[0m

     

    The error is documented as a connection timeout.  Have you any idea what the issue could be ?

    All i've changed is the prj.conf file as follows:

    # General config
    CONFIG_NEWLIB_LIBC=y
    CONFIG_ASSERT=y
    CONFIG_REBOOT=y
    
    # Network
    CONFIG_NETWORKING=y
    CONFIG_NET_NATIVE=n
    CONFIG_NET_IPV6=n
    CONFIG_NET_IPV4=y
    CONFIG_NET_SOCKETS=y
    CONFIG_NET_SOCKETS_OFFLOAD=y
    
    # Sensors
    CONFIG_I2C=y
    CONFIG_SPI=y
    CONFIG_SENSOR=y
    
    # LwM2M and IPSO
    CONFIG_LWM2M=y
    CONFIG_LWM2M_COAP_BLOCK_SIZE=512
    CONFIG_LWM2M_COAP_MAX_MSG_SIZE=1280
    CONFIG_LWM2M_ENGINE_MAX_OBSERVER=15
    CONFIG_LWM2M_ENGINE_MAX_MESSAGES=15
    CONFIG_LWM2M_ENGINE_MAX_PENDING=15
    CONFIG_LWM2M_ENGINE_MAX_REPLIES=15
    CONFIG_LWM2M_DNS_SUPPORT=y
    CONFIG_LWM2M_RW_JSON_SUPPORT=n
    CONFIG_LWM2M_SERVER_DEFAULT_PMIN=1
    CONFIG_LWM2M_SERVER_DEFAULT_PMAX=300
    CONFIG_LWM2M_CLIENT_UTILS=y
    CONFIG_LWM2M_CLIENT_UTILS_LOCATION_OBJ_SUPPORT=n
    CONFIG_LWM2M_IPSO_SUPPORT=y
    
    # DTLS settings
    CONFIG_LWM2M_DTLS_SUPPORT=y
    
    # nRF9160 helper libraries
    CONFIG_MODEM_KEY_MGMT=y
    
    # Default app to debug logging
    CONFIG_LOG=y
    CONFIG_APP_LOG_LEVEL_DBG=y
    
    # Support HEX style PSK values (double the size + NULL char)
    CONFIG_LWM2M_SECURITY_KEY_SIZE=33
    
    # extend CoAP retry timing to 4 seconds for LTE/LTE-M
    CONFIG_COAP_INIT_ACK_TIMEOUT_MS=4000
    
    # Enable CoAP extended option length
    CONFIG_COAP_EXTENDED_OPTIONS_LEN=y
    CONFIG_COAP_EXTENDED_OPTIONS_LEN_VALUE=40
    
    # Enable settings storage
    CONFIG_SETTINGS=y
    CONFIG_FCB=y
    CONFIG_SETTINGS_FCB=y
    
    # LTE link control
    CONFIG_LTE_LINK_CONTROL=y
    CONFIG_LTE_AUTO_INIT_AND_CONNECT=n
    CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y
    
    # Modem library
    CONFIG_NRF_MODEM_LIB=y
    
    # Modem info
    CONFIG_MODEM_INFO=y
    CONFIG_MODEM_INFO_ADD_DATE_TIME=n
    
    # Enable shell
    CONFIG_LWM2M_SHELL=y
    
    # Heap and stacks
    CONFIG_HEAP_MEM_POOL_SIZE=16384
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_LWM2M_ENGINE_STACK_SIZE=3072
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
    
    # Allow FOTA downloads using download-client
    CONFIG_DOWNLOAD_CLIENT=y
    CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
    CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
    CONFIG_FOTA_DOWNLOAD=y
    CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT=y
    
    
    # Application version
    CONFIG_MCUBOOT_IMAGE_VERSION="1.0.0"
    
    # Set LwM2M Server IP address here
    CONFIG_LWM2M_CLIENT_UTILS_SERVER="coaps://leshan.eclipseprojects.io:5684"
    
    # Application Event Manager
    CONFIG_APP_EVENT_MANAGER=y
    
    # Date-Time library
    CONFIG_DATE_TIME=y
    CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=86400
    
    # Enable LwM2M Queue Mode
    CONFIG_LWM2M_QUEUE_MODE_ENABLED=n
    
    # Enable TLS session caching to prevent doing a full TLS handshake for every send.
    CONFIG_LWM2M_TLS_SESSION_CACHING=y
    
    # Socket close is skipped at RX off idle state which optimize power consumption
    # Socket close call will enable RCC connection for send Alert message to server
    # Alert is now send right before opening a new connection.
    CONFIG_LWM2M_RD_CLIENT_SUSPEND_SOCKET_AT_IDLE=y
    
    # Sets the duration that the lwm2m engine will be polling for data after transmission before
    # the socket is closed.
    # Adjust so that we can detach from network in 30 seconds
    CONFIG_LWM2M_QUEUE_MODE_UPTIME=30
    
    # Set lifetime of 12 hours
    CONFIG_LWM2M_ENGINE_DEFAULT_LIFETIME=43200
    
    # Do registration update after 5400 seconds (90 minutes)
    CONFIG_LWM2M_SECONDS_TO_UPDATE_EARLY=37800
    
    # Configure PSM mode
    # Request periodic TAU of 3600 seconds (60 minutes)
    CONFIG_LTE_PSM_REQ_RPTAU="00000110"
    
    # Set Requested Active Time (RAT) to 30 seconds. Preferably a little bit longer than the
    # configured LWM2M_QUEUE_MODE_UPTIME. Due to NAT/firewall UDP connections are usually
    # closed within 30-60 seconds so there is in general no point in setting a longer
    # Queue mode uptime / LTE PSM active time.
    CONFIG_LTE_PSM_REQ_RAT="00001111"
    
    # Request eDRX mode
    CONFIG_LTE_EDRX_REQ=y
    
    # Request eDRX cycle length of 10.24 seconds for LTE-M
    CONFIG_LTE_EDRX_REQ_VALUE_LTE_M="0001"
    
    # Request eDRX cycle length of 20.48 seconds for NB-IoT
    CONFIG_LTE_EDRX_REQ_VALUE_NBIOT="0010"
    
    # Request Paging time window of 1.28 seconds for LTE-M
    CONFIG_LTE_PTW_VALUE_LTE_M="0000"
    
    # Request Paging time window of 2.56 seconds for NB-IoT
    CONFIG_LTE_PTW_VALUE_NBIOT="0000"
    
    # Get notification before Tracking Area Update (TAU). Notification triggers registration
    # update and TAU will be sent with the update which decreases power consumption.
    CONFIG_LTE_LC_TAU_PRE_WARNING_NOTIFICATIONS=y
    
    # NBIOT
    
    CONFIG_LTE_NETWORK_MODE_NBIOT=y
    CONFIG_PDN=y
    CONFIG_PDN_DEFAULTS_OVERRIDE=y
    CONFIG_PDN_DEFAULT_APN="nbiot.*******"
    
    CONFIG_LWM2M_CLIENT_UTILS_SERVER="coaps://leshan.eclipseprojects.io:5684"
    CONFIG_APP_LWM2M_PSK="000102030405060708090a0b0c0d0e0f"
    CONFIG_BOOTLOADER_MCUBOOT=y
    
    CONFIG_DOWNLOAD_CLIENT=y
    CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
    CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
    CONFIG_FOTA_DOWNLOAD=y
    CONFIG_LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT=y
    CONFIG_DFU_TARGET=y

    The main.c file remains the same.  Kind regards,

    Hassan

Reply
  • Hi Håkon

    I've attempted to do this by pulling an update from our own server.  This is the error I'm getting.

    2023-04-17T10:51:55.817Z DEBUG modem << [m[1;32muart:~$ [m[8D[J*** Booting Zephyr OS build v3.2.99-ncs2 ***
    2023-04-17T10:51:55.822Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.507,812] [0m<inf> app_lwm2m_client: Run LWM2M client[0m
    2023-04-17T10:51:55.826Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.507,812] [0m<inf> app_lwm2m_client: Initializing modem.[0m
    2023-04-17T10:51:55.829Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.509,918] [0m<inf> BH1749: BH1749 initialized[0m
    2023-04-17T10:51:55.833Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.524,810] [0m<inf> app_lwm2m_client: endpoint: urn:imei:******[0m
    2023-04-17T10:51:55.836Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:01.571,014] [0m<dbg> app_lwm2m: buzzer_intensity_cb: Intensity: 100[0m
    2023-04-17T10:51:57.900Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:03.572,448] [0m<inf> app_sensors: Finished accelerometer calibration[0m
    2023-04-17T10:51:57.905Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.572,753] [0m<dbg> app_sensors: colour_sensor_create: Created IPSO Colour Sensor instance: 0[0m
    2023-04-17T10:51:57.908Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.572,906] [0m<dbg> app_sensors: colour_sensor_create: Created IPSO Colour Sensor instance: 1[0m
    2023-04-17T10:51:57.912Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.573,059] [0m<inf> lwm2m_lte_notification: Registering ncell notification handler[0m
    2023-04-17T10:51:57.915Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.573,150] [0m<inf> lwm2m_firmware: Image is confirmed OK[0m
    2023-04-17T10:51:57.919Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.582,031] [0m<inf> app_lwm2m_client: PSM mode requested[0m
    2023-04-17T10:51:57.922Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.582,031] [0m<inf> app_lwm2m_client: Connecting to network.[0m
    2023-04-17T10:51:57.925Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:03.582,061] [0m<inf> app_lwm2m_client: This may take several minutes.[0m
    2023-04-17T10:52:00.799Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:06.542,358] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2[0m
    2023-04-17T10:52:03.020Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:08.711,151] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1[0m
    2023-04-17T10:52:03.024Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,036] [0m<inf> app_lwm2m_client: Connected to NB-IoT network[0m
    2023-04-17T10:52:03.027Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,432] [1;31m<err> gnss_module: Failed to set GNSS use case (-13)[0m
    2023-04-17T10:52:03.030Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,554] [0m<inf> app_lwm2m_client: Client connect to server[0m
    2023-04-17T10:52:03.033Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:08.712,615] [0m<inf> 3: Start LWM2M Client: urn:*************[0m
    2023-04-17T10:52:03.036Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:09.508,758] [0m<inf> 3: RD Client started with endpoint '********' with client lifetime 43200[0m
    2023-04-17T10:52:05.311Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:11.032,226] [0m<inf> lwm2m_security: Need to write credentials, requesting LTE and GNSS offline...[0m
    2023-04-17T10:52:05.316Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:11.573,089] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 0[0m
    2023-04-17T10:52:05.319Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:11.573,242] [0m<inf> app_lwm2m_client: LwM2M is connecting to server[0m
    2023-04-17T10:52:06.424Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:12.168,334] [0m<inf> lwm2m_security: Requesting LTE and GNSS online[0m
    2023-04-17T10:52:09.417Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:15.161,254] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2[0m
    2023-04-17T10:52:10.843Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:16.567,321] [0m<inf> lwm2m_security: Modem connection restored[0m
    2023-04-17T10:52:10.849Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:16.767,120] [0m<dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1[0m
    2023-04-17T10:52:10.866Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:16.767,425] [0m<inf> app_lwm2m_client: LwM2M is connecting to server[0m
    2023-04-17T10:52:12.263Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:17.969,573] [0m<inf> net_lwm2m_engine: Connected, sock id 0[0m
    2023-04-17T10:52:12.267Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.547,973] [0m<dbg> app_lwm2m_client: rd_client_event: Registration complete[0m
    2023-04-17T10:52:12.270Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.548,034] [0m<inf> 3: Registration Done (EP='9CjKyTlser')[0m
    2023-04-17T10:52:12.273Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.548,339] [0m<inf> app_lwm2m_client: LwM2M is connected to server[0m
    2023-04-17T10:52:12.277Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:18.548,431] [0m<inf> app_lwm2m_client: Obtained date-time from modem[0m
    2023-04-17T10:52:19.743Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:25.425,445] [0m<inf> download_client: Setting up TLS credentials, tag 16842753[0m
    2023-04-17T10:52:19.748Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.425,567] [0m<inf> download_client: Connecting to https://download.*redacted*.com[0m
    2023-04-17T10:52:19.751Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.682,983] [1;31m<err> download_client: Unable to connect, errno 116[0m
    2023-04-17T10:52:19.754Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.683,380] [1;31m<err> lwm2m_firmware: fota_download_start() failed, return code -116[0m
    2023-04-17T10:52:19.757Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.684,783] [1;33m<wrn> fota_download: fota_download_cancel invalid state[0m
    2023-04-17T10:52:19.760Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.684,814] [1;31m<err> lwm2m_firmware: Unsupported Image type 0[0m
    2023-04-17T10:52:19.763Z DEBUG modem << [1;32muart:~$ [m[8D[J[00:00:25.684,814] [1;31m<err> lwm2m_firmware: Failed to reset DFU target, err: -13[0m
    2023-04-17T10:52:49.241Z DEBUG modem << [1;32muart:~$ [m[8D[J[1;32muart:~$ [m[8D[J[00:00:54.987,121] [0m<dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed[0m

     

    The error is documented as a connection timeout.  Have you any idea what the issue could be ?

    All i've changed is the prj.conf file as follows:

    # General config
    CONFIG_NEWLIB_LIBC=y
    CONFIG_ASSERT=y
    CONFIG_REBOOT=y
    
    # Network
    CONFIG_NETWORKING=y
    CONFIG_NET_NATIVE=n
    CONFIG_NET_IPV6=n
    CONFIG_NET_IPV4=y
    CONFIG_NET_SOCKETS=y
    CONFIG_NET_SOCKETS_OFFLOAD=y
    
    # Sensors
    CONFIG_I2C=y
    CONFIG_SPI=y
    CONFIG_SENSOR=y
    
    # LwM2M and IPSO
    CONFIG_LWM2M=y
    CONFIG_LWM2M_COAP_BLOCK_SIZE=512
    CONFIG_LWM2M_COAP_MAX_MSG_SIZE=1280
    CONFIG_LWM2M_ENGINE_MAX_OBSERVER=15
    CONFIG_LWM2M_ENGINE_MAX_MESSAGES=15
    CONFIG_LWM2M_ENGINE_MAX_PENDING=15
    CONFIG_LWM2M_ENGINE_MAX_REPLIES=15
    CONFIG_LWM2M_DNS_SUPPORT=y
    CONFIG_LWM2M_RW_JSON_SUPPORT=n
    CONFIG_LWM2M_SERVER_DEFAULT_PMIN=1
    CONFIG_LWM2M_SERVER_DEFAULT_PMAX=300
    CONFIG_LWM2M_CLIENT_UTILS=y
    CONFIG_LWM2M_CLIENT_UTILS_LOCATION_OBJ_SUPPORT=n
    CONFIG_LWM2M_IPSO_SUPPORT=y
    
    # DTLS settings
    CONFIG_LWM2M_DTLS_SUPPORT=y
    
    # nRF9160 helper libraries
    CONFIG_MODEM_KEY_MGMT=y
    
    # Default app to debug logging
    CONFIG_LOG=y
    CONFIG_APP_LOG_LEVEL_DBG=y
    
    # Support HEX style PSK values (double the size + NULL char)
    CONFIG_LWM2M_SECURITY_KEY_SIZE=33
    
    # extend CoAP retry timing to 4 seconds for LTE/LTE-M
    CONFIG_COAP_INIT_ACK_TIMEOUT_MS=4000
    
    # Enable CoAP extended option length
    CONFIG_COAP_EXTENDED_OPTIONS_LEN=y
    CONFIG_COAP_EXTENDED_OPTIONS_LEN_VALUE=40
    
    # Enable settings storage
    CONFIG_SETTINGS=y
    CONFIG_FCB=y
    CONFIG_SETTINGS_FCB=y
    
    # LTE link control
    CONFIG_LTE_LINK_CONTROL=y
    CONFIG_LTE_AUTO_INIT_AND_CONNECT=n
    CONFIG_LTE_NETWORK_MODE_LTE_M_GPS=y
    
    # Modem library
    CONFIG_NRF_MODEM_LIB=y
    
    # Modem info
    CONFIG_MODEM_INFO=y
    CONFIG_MODEM_INFO_ADD_DATE_TIME=n
    
    # Enable shell
    CONFIG_LWM2M_SHELL=y
    
    # Heap and stacks
    CONFIG_HEAP_MEM_POOL_SIZE=16384
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_LWM2M_ENGINE_STACK_SIZE=3072
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
    
    # Allow FOTA downloads using download-client
    CONFIG_DOWNLOAD_CLIENT=y
    CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
    CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
    CONFIG_FOTA_DOWNLOAD=y
    CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT=y
    
    
    # Application version
    CONFIG_MCUBOOT_IMAGE_VERSION="1.0.0"
    
    # Set LwM2M Server IP address here
    CONFIG_LWM2M_CLIENT_UTILS_SERVER="coaps://leshan.eclipseprojects.io:5684"
    
    # Application Event Manager
    CONFIG_APP_EVENT_MANAGER=y
    
    # Date-Time library
    CONFIG_DATE_TIME=y
    CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=86400
    
    # Enable LwM2M Queue Mode
    CONFIG_LWM2M_QUEUE_MODE_ENABLED=n
    
    # Enable TLS session caching to prevent doing a full TLS handshake for every send.
    CONFIG_LWM2M_TLS_SESSION_CACHING=y
    
    # Socket close is skipped at RX off idle state which optimize power consumption
    # Socket close call will enable RCC connection for send Alert message to server
    # Alert is now send right before opening a new connection.
    CONFIG_LWM2M_RD_CLIENT_SUSPEND_SOCKET_AT_IDLE=y
    
    # Sets the duration that the lwm2m engine will be polling for data after transmission before
    # the socket is closed.
    # Adjust so that we can detach from network in 30 seconds
    CONFIG_LWM2M_QUEUE_MODE_UPTIME=30
    
    # Set lifetime of 12 hours
    CONFIG_LWM2M_ENGINE_DEFAULT_LIFETIME=43200
    
    # Do registration update after 5400 seconds (90 minutes)
    CONFIG_LWM2M_SECONDS_TO_UPDATE_EARLY=37800
    
    # Configure PSM mode
    # Request periodic TAU of 3600 seconds (60 minutes)
    CONFIG_LTE_PSM_REQ_RPTAU="00000110"
    
    # Set Requested Active Time (RAT) to 30 seconds. Preferably a little bit longer than the
    # configured LWM2M_QUEUE_MODE_UPTIME. Due to NAT/firewall UDP connections are usually
    # closed within 30-60 seconds so there is in general no point in setting a longer
    # Queue mode uptime / LTE PSM active time.
    CONFIG_LTE_PSM_REQ_RAT="00001111"
    
    # Request eDRX mode
    CONFIG_LTE_EDRX_REQ=y
    
    # Request eDRX cycle length of 10.24 seconds for LTE-M
    CONFIG_LTE_EDRX_REQ_VALUE_LTE_M="0001"
    
    # Request eDRX cycle length of 20.48 seconds for NB-IoT
    CONFIG_LTE_EDRX_REQ_VALUE_NBIOT="0010"
    
    # Request Paging time window of 1.28 seconds for LTE-M
    CONFIG_LTE_PTW_VALUE_LTE_M="0000"
    
    # Request Paging time window of 2.56 seconds for NB-IoT
    CONFIG_LTE_PTW_VALUE_NBIOT="0000"
    
    # Get notification before Tracking Area Update (TAU). Notification triggers registration
    # update and TAU will be sent with the update which decreases power consumption.
    CONFIG_LTE_LC_TAU_PRE_WARNING_NOTIFICATIONS=y
    
    # NBIOT
    
    CONFIG_LTE_NETWORK_MODE_NBIOT=y
    CONFIG_PDN=y
    CONFIG_PDN_DEFAULTS_OVERRIDE=y
    CONFIG_PDN_DEFAULT_APN="nbiot.*******"
    
    CONFIG_LWM2M_CLIENT_UTILS_SERVER="coaps://leshan.eclipseprojects.io:5684"
    CONFIG_APP_LWM2M_PSK="000102030405060708090a0b0c0d0e0f"
    CONFIG_BOOTLOADER_MCUBOOT=y
    
    CONFIG_DOWNLOAD_CLIENT=y
    CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
    CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
    CONFIG_FOTA_DOWNLOAD=y
    CONFIG_LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT=y
    CONFIG_DFU_TARGET=y

    The main.c file remains the same.  Kind regards,

    Hassan

Children
Related