AVSystems Cell-Assist localisation broken?

Update: Its still working - I could resolve the issue with ChatGPTs expertise - the nrf Cloud evaluation  key stored in Coiote was older then 30 days... Thats a thing which could go into the FAQs...

Original post:
Hi,

We were basing the development of our new LTE-based IoT device fleet on this webinar https://youtu.be/hh3h5Ow1TmE?si=Fm0LcOy2_zO1XUW6&t=1695 and the avsystems + cell-assist localisation example.


This was working the last months as you can see in the screenshot below showing an old cell-based fix of my daily nrf9151DK:




This week I realized I dont see any location of any registered device anymore. To verify, that not our own changes did break something I did recreate the original setup
- nrf9151DK
- SDK 3.0.2
- nrf/lwm2m_client sample
- extra kconfig fragments: overlay-avsystems.conf, overlay-assist-cell.conf, overlay-rtt.conf (log and shell via Segger RTT instead of UART)
- build and flash


- created a fresh account on AVsystems coiote, setup my ndk
- powered on the device
- coiote shows "device last seen X seconds ago"

below you can see a couple of logs running this sample firmware - it always shows localization errors on the console, coiote sees the device lwm2m-tree, the device' cellid on /4/0/8 but the device never gets a fix and therefore /6/0/* never gets set long/lat values:





dl-sh:~$ [00:00:01.026,611] <inf> app_lwm2m_client: This may take several minutes.
dl-sh:~$ dl-sh:~$ [00:00:03.437,866] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
dl-sh:~$ dl-sh:~$ [00:00:26.960,021] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
dl-sh:~$ [00:00:26.960,876] <inf> app_lwm2m_client: Connected to LTE network
dl-sh:~$ [00:00:26.966,125] <inf> app_lwm2m_client: Client connect to server
dl-sh:~$ [00:00:26.966,308] <inf> net_lwm2m_rd_client: Start LWM2M Client: urn:imei:359404230130024
dl-sh:~$ [00:00:26.966,644] <inf> net_lwm2m_rd_client: RD Client started with endpoint 'urn:imei:359404230130024' with client lifetime 43200 using server object 0
dl-sh:~$ [00:00:26.967,041] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ [00:00:27.388,275] <inf> lwm2m_security: Need to write credentials, requesting LTE and GNSS offline...
dl-sh:~$ [00:00:27.512,664] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 0
dl-sh:~$ [00:00:27.512,817] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ dl-sh:~$ [00:00:28.536,468] <err> lte_lc: Sending AT%NCELLMEAS failed, error: 131589
dl-sh:~$ [00:00:28.602,935] <inf> lwm2m_security: Requesting LTE and GNSS online
dl-sh:~$ dl-sh:~$ [00:00:29.673,400] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
dl-sh:~$ [00:00:30.330,139] <inf> lwm2m_security: Modem connection restored
dl-sh:~$ [00:00:30.330,657] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
dl-sh:~$ [00:00:30.331,451] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ [00:00:30.641,937] <inf> net_lwm2m_engine: Connected, sock id 1
dl-sh:~$ dl-sh:~$ [00:00:30.717,498] <dbg> app_lwm2m_client: rd_client_event: Registration complete
dl-sh:~$ [00:00:30.717,590] <inf> net_lwm2m_rd_client: Registration Done (EP='urn:imei:359404230130024')
dl-sh:~$ [00:00:30.718,139] <inf> app_lwm2m_client: LwM2M is connected to server
dl-sh:~$ [00:00:30.718,200] <inf> app_lwm2m_client: Obtained date-time from modem
dl-sh:~$ dl-sh:~$ [00:01:04.278,778] <inf> lwm2m_rai: RAI enabled
dl-sh:~$ [00:01:04.278,808] <dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed
dl-sh:~$ dl-sh:~$
dl-sh:~$ [00:00:00.253,570] <inf> spi_nor: gd25wb256e3ir@1: 32 MiBy flash
dl-sh:~$ *** Booting nRF Connect SDK v3.0.2-89ba1294ac9b ***
dl-sh:~$ *** Using Zephyr OS v4.0.99-f791c49f492c ***
dl-sh:~$ [00:00:00.258,605] <inf> app_lwm2m_client: Run LWM2M client
dl-sh:~$ [00:00:00.512,481] <inf> app_lwm2m_client: endpoint: urn:imei:359404230092844
dl-sh:~$ [00:00:00.671,234] <inf> lwm2m_lte_notification: Registering ncell notification handler
dl-sh:~$ [00:00:00.671,325] <inf> lwm2m_firmware: Image is confirmed OK
dl-sh:~$ [00:00:00.671,325] <inf> app_lwm2m_client: Connecting to network.
dl-sh:~$ [00:00:00.671,356] <inf> app_lwm2m_client: This may take several minutes.
dl-sh:~$ [00:00:00.980,712] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 90
dl-sh:~$ dl-sh:~$
dl-sh:~$ [00:00:00.253,631] <inf> spi_nor: gd25wb256e3ir@1: 32 MiBy flash
dl-sh:~$ *** Booting nRF Connect SDK v3.0.2-89ba1294ac9b ***
dl-sh:~$ *** Using Zephyr OS v4.0.99-f791c49f492c ***
dl-sh:~$ [00:00:00.258,666] <inf> app_lwm2m_client: Run LWM2M client
dl-sh:~$ [00:00:00.512,390] <inf> app_lwm2m_client: endpoint: urn:imei:359404230092844
dl-sh:~$ [00:00:00.670,867] <inf> lwm2m_lte_notification: Registering ncell notification handler
dl-sh:~$ [00:00:00.670,959] <inf> lwm2m_firmware: Image is confirmed OK
dl-sh:~$ [00:00:00.670,959] <inf> app_lwm2m_client: Connecting to network.
dl-sh:~$ [00:00:00.670,989] <inf> app_lwm2m_client: This may take several minutes.
dl-sh:~$ dl-sh:~$ [00:00:03.503,326] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
dl-sh:~$ dl-sh:~$ [00:00:05.029,174] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
dl-sh:~$ [00:00:05.030,029] <inf> app_lwm2m_client: Connected to LTE network
dl-sh:~$ [00:00:05.035,919] <inf> app_lwm2m_client: Client connect to server
dl-sh:~$ [00:00:05.035,980] <inf> net_lwm2m_rd_client: Start LWM2M Client: urn:imei:359404230092844
dl-sh:~$ [00:00:05.036,468] <inf> net_lwm2m_rd_client: RD Client started with endpoint 'urn:imei:359404230092844' with client lifetime 43200 using server object 0
dl-sh:~$ [00:00:05.036,865] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ [00:00:05.241,180] <inf> lwm2m_security: Need to write credentials, requesting LTE and GNSS offline...
dl-sh:~$ [00:00:05.270,507] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 0
dl-sh:~$ [00:00:05.270,629] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ [00:00:06.006,439] <inf> lwm2m_security: Requesting LTE and GNSS online
dl-sh:~$ dl-sh:~$ [00:00:06.065,795] <wrn> lte_lc: NCELLMEAS failed
dl-sh:~$ [00:00:06.065,826] <inf> net_lwm2m_obj_signal_meas_info: Updating information for 0 neighbouring cells
dl-sh:~$ [00:00:07.039,428] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
dl-sh:~$ dl-sh:~$ [00:00:07.756,072] <inf> lwm2m_security: Modem connection restored
dl-sh:~$ [00:00:07.756,652] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
dl-sh:~$ [00:00:07.757,171] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ [00:00:08.110,107] <inf> net_lwm2m_engine: Connected, sock id 1
dl-sh:~$ dl-sh:~$ [00:00:09.284,545] <dbg> app_lwm2m_client: rd_client_event: Registration complete
dl-sh:~$ [00:00:09.284,637] <inf> net_lwm2m_rd_client: Registration Done (EP='urn:imei:359404230092844')
dl-sh:~$ [00:00:09.285,186] <inf> app_lwm2m_client: LwM2M is connected to server
dl-sh:~$ [00:00:09.285,247] <inf> app_lwm2m_client: Obtained date-time from modem
dl-sh:~$ dl-sh:~$ [00:00:43.866,088] <inf> lwm2m_rai: RAI enabled
dl-sh:~$ [00:00:43.866,119] <dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed
dl-sh:~$ dl-sh:~$ [00:00:51.303,070] <inf> app_lwm2m_client: Send cell location request event
dl-sh:~$ [00:00:51.303,222] <dbg> app_lwm2m: app_event_handler: Button 2 changed state to 1.
dl-sh:~$ [00:00:51.306,701] <inf> net_lwm2m_message_handling: Send op to server (/dp)
dl-sh:~$ [00:00:51.306,884] <dbg> app_lwm2m_client: rd_client_event: Registration update started
dl-sh:~$ [00:00:51.464,355] <dbg> app_lwm2m: app_event_handler: Button 2 changed state to 0.
dl-sh:~$ [00:00:51.893,463] <inf> net_lwm2m_rd_client: Update callback (code:2.4)
dl-sh:~$ [00:00:51.893,493] <dbg> app_lwm2m_client: rd_client_event: Registration update complete
dl-sh:~$ [00:00:51.893,554] <inf> net_lwm2m_rd_client: Update Done
dl-sh:~$ [00:00:51.958,557] <inf> net_lwm2m_message_handling: Send done!
dl-sh:~$ dl-sh:~$
dl-sh:~$ [00:00:00.253,631] <inf> spi_nor: gd25wb256e3ir@1: 32 MiBy flash
dl-sh:~$ *** Booting nRF Connect SDK v3.0.2-89ba1294ac9b ***
dl-sh:~$ *** Using Zephyr OS v4.0.99-f791c49f492c ***
dl-sh:~$ [00:00:00.258,666] <inf> app_lwm2m_client: Run LWM2M client
dl-sh:~$ [00:00:00.512,939] <inf> app_lwm2m_client: endpoint: urn:imei:359404230092844
dl-sh:~$ [00:00:00.678,405] <inf> lwm2m_lte_notification: Registering ncell notification handler
dl-sh:~$ [00:00:00.678,497] <inf> lwm2m_firmware: Image is confirmed OK
dl-sh:~$ [00:00:00.678,497] <inf> app_lwm2m_client: Connecting to network.
dl-sh:~$ [00:00:00.678,497] <inf> app_lwm2m_client: This may take several minutes.
dl-sh:~$ dl-sh:~$ [00:00:03.689,422] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
dl-sh:~$ dl-sh:~$ [00:00:05.140,808] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
dl-sh:~$ [00:00:05.141,662] <inf> app_lwm2m_client: Connected to LTE network
dl-sh:~$ [00:00:05.146,942] <inf> app_lwm2m_client: Client connect to server
dl-sh:~$ [00:00:05.147,827] <inf> net_lwm2m_rd_client: Start LWM2M Client: urn:imei:359404230092844
dl-sh:~$ [00:00:05.148,254] <inf> net_lwm2m_rd_client: RD Client started with endpoint 'urn:imei:359404230092844' with client lifetime 43200 using server object 0
dl-sh:~$ [00:00:05.148,651] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ [00:00:05.553,985] <inf> lwm2m_security: Need to write credentials, requesting LTE and GNSS offline...
dl-sh:~$ [00:00:05.625,122] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 0
dl-sh:~$ [00:00:05.625,274] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ dl-sh:~$ [00:00:06.207,305] <err> lte_lc: Sending AT%NCELLMEAS failed, error: 131589
dl-sh:~$ [00:00:06.279,876] <inf> lwm2m_security: Requesting LTE and GNSS online
dl-sh:~$ dl-sh:~$ [00:00:07.331,024] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
dl-sh:~$ [00:00:08.068,206] <inf> lwm2m_security: Modem connection restored
dl-sh:~$ [00:00:08.069,152] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
dl-sh:~$ [00:00:08.069,915] <inf> app_lwm2m_client: LwM2M is connecting to server
dl-sh:~$ dl-sh:~$ [00:00:08.338,500] <inf> net_lwm2m_engine: Connected, sock id 1
dl-sh:~$ [00:00:08.721,954] <dbg> app_lwm2m_client: rd_client_event: Registration complete
dl-sh:~$ [00:00:08.722,045] <inf> net_lwm2m_rd_client: Registration Done (EP='urn:imei:359404230092844')
dl-sh:~$ [00:00:08.722,564] <inf> app_lwm2m_client: LwM2M is connected to server
dl-sh:~$ [00:00:08.722,656] <inf> app_lwm2m_client: Obtained date-time from modem
dl-sh:~$ dl-sh:~$ [00:00:42.055,603] <inf> lwm2m_rai: RAI enabled
dl-sh:~$ [00:00:42.055,633] <dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed
dl-sh:~$ dl-sh:~$

  • sdk and sample v3.1.0, created and built on Ubuntu 24.04 LTS

    dl-sh:~$ *** Booting nRF Connect SDK v3.1.0-6c6e5b32496e ***
    dl-sh:~$ *** Using Zephyr OS v4.1.99-1612683d4010 ***
    dl-sh:~$ [00:00:00.259,216] <inf> app_lwm2m_client: Run LWM2M client
    dl-sh:~$ [00:00:00.593,719] <inf> app_lwm2m_client: endpoint: urn:imei:359404230130024
    dl-sh:~$ [00:00:01.027,557] <inf> lwm2m_lte_notification: Registering ncell notification handler
    dl-sh:~$ [00:00:01.027,648] <inf> lwm2m_firmware: Image is confirmed OK
    dl-sh:~$ [00:00:01.027,648] <inf> app_lwm2m_client: Connecting to network.
    dl-sh:~$ [00:00:01.027,679] <inf> app_lwm2m_client: This may take several minutes.
    dl-sh:~$ dl-sh:~$ [00:00:03.380,798] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
    dl-sh:~$ dl-sh:~$ [00:00:04.831,298] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
    dl-sh:~$ [00:00:04.832,031] <inf> app_lwm2m_client: Connected to LTE network
    dl-sh:~$ [00:00:04.837,951] <inf> app_lwm2m_client: Client connect to server
    dl-sh:~$ [00:00:04.838,134] <inf> net_lwm2m_rd_client: Start LWM2M Client: urn:imei:359404230130024
    dl-sh:~$ [00:00:04.838,195] <inf> app_lwm2m_client: LwM2M is connecting to server
    dl-sh:~$ [00:00:04.838,500] <inf> net_lwm2m_rd_client: RD Client started with endpoint 'urn:imei:359404230130024' with client lifetime 43200 using server object 0
    dl-sh:~$ [00:00:05.114,593] <inf> lwm2m_security: Need to write credentials, requesting LTE and GNSS offline...
    dl-sh:~$ [00:00:05.152,374] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 0
    dl-sh:~$ [00:00:05.152,526] <inf> app_lwm2m_client: LwM2M is connecting to server
    dl-sh:~$ dl-sh:~$ [00:00:06.289,001] <err> lte_lc: Sending AT%NCELLMEAS failed, error: 131589
    dl-sh:~$ [00:00:06.355,438] <inf> lwm2m_security: Requesting LTE and GNSS online
    dl-sh:~$ dl-sh:~$ [00:00:07.421,356] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 2
    dl-sh:~$ [00:00:08.135,955] <inf> lwm2m_security: Modem connection restored
    dl-sh:~$ [00:00:08.136,505] <dbg> app_lwm2m_client: lwm2m_lte_reg_handler_notify: LTE NW status: 1
    dl-sh:~$ [00:00:08.137,725] <inf> app_lwm2m_client: LwM2M is connecting to server
    dl-sh:~$ dl-sh:~$ [00:00:08.509,033] <inf> net_lwm2m_engine: Connected, sock id 1
    dl-sh:~$ [00:00:08.835,388] <dbg> app_lwm2m_client: rd_client_event: Registration complete
    dl-sh:~$ [00:00:08.835,479] <inf> net_lwm2m_rd_client: Registration Done (EP='urn:imei:359404230130024')
    dl-sh:~$ [00:00:08.838,745] <inf> app_lwm2m_client: LwM2M is connected to server
    dl-sh:~$ [00:00:08.838,806] <inf> app_lwm2m_client: Obtained date-time from modem
    dl-sh:~$ dl-sh:~$ [00:00:35.028,442] <inf> app_lwm2m_client: Send cell location request event
    dl-sh:~$ [00:00:35.028,594] <dbg> app_lwm2m: app_event_handler: Button 2 changed state to 1.
    dl-sh:~$ [00:00:35.032,073] <inf> net_lwm2m_message_handling: Send op to server (/dp)
    dl-sh:~$ [00:00:35.189,697] <dbg> app_lwm2m: app_event_handler: Button 2 changed state to 0.
    dl-sh:~$ [00:00:35.390,869] <inf> net_lwm2m_message_handling: Send done!
    dl-sh:~$ dl-sh:~$ [00:00:37.108,062] <err> net_lwm2m_obj_ground_fix: Ground Fix result Temporary error (1)
    dl-sh:~$ dl-sh:~$ [00:01:07.109,924] <inf> lwm2m_rai: RAI enabled
    dl-sh:~$ [00:01:07.109,954] <dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed
    dl-sh:~$ dl-sh:~$ [00:01:09.023,376] <dbg> app_lwm2m_client: rd_client_event: Registration update started
    dl-sh:~$ [00:01:09.653,594] <inf> net_lwm2m_rd_client: Update callback (code:2.4)
    dl-sh:~$ [00:01:09.653,656] <dbg> app_lwm2m_client: rd_client_event: Registration update complete
    dl-sh:~$ [00:01:09.653,686] <inf> net_lwm2m_rd_client: Update Done
    dl-sh:~$ dl-sh:~$ [00:01:37.208,770] <dbg> app_lwm2m_client: rd_client_event: Registration update started
    dl-sh:~$ [00:01:38.094,787] <inf> net_lwm2m_rd_client: Update callback (code:2.4)
    dl-sh:~$ [00:01:38.094,848] <dbg> app_lwm2m_client: rd_client_event: Registration update complete
    dl-sh:~$ [00:01:38.094,879] <inf> net_lwm2m_rd_client: Update Done
    dl-sh:~$ dl-sh:~$ [00:01:51.635,894] <inf> app_lwm2m_client: Send cell location request event
    dl-sh:~$ [00:01:51.636,047] <dbg> app_lwm2m: app_event_handler: Button 2 changed state to 1.
    dl-sh:~$ [00:01:51.636,077] <err> net_lwm2m_location_assist: Temporary error in location services retry scheduled
    dl-sh:~$ [00:01:51.827,392] <dbg> app_lwm2m: app_event_handler: Button 2 changed state to 0.
    dl-sh:~$ dl-sh:~$ [00:02:07.320,709] <dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed
    dl-sh:~$ dl-sh:~$ [00:02:37.208,831] <dbg> app_lwm2m_client: rd_client_event: Registration update started
    dl-sh:~$ dl-sh:~$ [00:02:39.641,754] <inf> net_lwm2m_rd_client: Update callback (code:2.4)
    dl-sh:~$ [00:02:39.641,815] <dbg> app_lwm2m_client: rd_client_event: Registration update complete
    dl-sh:~$ [00:02:39.641,845] <inf> net_lwm2m_rd_client: Update Done
    dl-sh:~$ dl-sh:~$ [00:03:09.643,371] <dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed
    dl-sh:~$ dl-sh:~$ [00:03:37.108,642] <err> net_lwm2m_obj_ground_fix: Ground Fix result No response (2)
    dl-sh:~$ [00:03:37.108,673] <err> net_lwm2m_location_assist: No response error in location services
    dl-sh:~$ dl-sh:~$ [00:10:06.365,478] <inf> net_lwm2m_obj_signal_meas_info: Updating information for 0 neighbouring cells
    dl-sh:~$ [00:10:06.366,943] <dbg> app_lwm2m_client: rd_client_event: Registration update started
    dl-sh:~$ dl-sh:~$ [00:10:07.600,616] <inf> net_lwm2m_rd_client: Update callback (code:2.4)
    dl-sh:~$ [00:10:07.600,677] <dbg> app_lwm2m_client: rd_client_event: Registration update complete
    dl-sh:~$ [00:10:07.600,738] <inf> net_lwm2m_rd_client: Update Done
    dl-sh:~$ dl-sh:~$ [00:10:37.602,355] <dbg> app_lwm2m_client: rd_client_event: Queue mode RX window closed
    dl-sh:~$ dl-sh:~$ app gfix
    Send cell location request

    dl-sh:~$ [00:16:57.384,399] <err> net_lwm2m_location_assist: Temporary error in location services retry scheduled

  • Oh man, I could resolve the issue with ChatGPTs expertise - the nrf Cloud evaluation  key stored in Coiote was older then 30 days... Thats a thing which could go into the FAQs...

  • Glad to hear that you were able to resolve the issue.

Related