nRF9161 Cloud Auto-Provisioning / Onboarding

Hello,

I'm trying to set up auto-provisioning and onboarding in my project as described in this sample:
https://github.com/nrfconnect/sdk-nrf/blob/066ac6f61fe19ad91d805fd788d782e245f09a2e/samples/cellular/nrf_cloud_rest_device_message/README.rst#provisioning-and-onboarding-your-device-to-nrf-cloud

From what I can see in the device logs, it looks like it was able to nab credentials from the nRF cloud:

[00:00:00.761,505] <inf> iotr: Reset reason: 0x10001
[00:00:00.927,551] <inf> iotr: Waiting for modem to acquire network time...
[00:00:09.125,366] <inf> iotr: Connected to LTE network
[00:00:09.938,842] <inf> iotr: Network time obtained
[00:00:09.939,056] <wrn> nrf_cloud_log: Unable to filter logs for module 0: nrf_cloud_rest
[00:00:09.939,117] <wrn> nrf_cloud_log: Unable to filter logs for module 1: nrf_cloud_jwt
[00:00:09.939,178] <wrn> nrf_cloud_log: Unable to filter logs for module 2: rest_client
[00:00:09.939,483] <wrn> nrf_cloud_log: Unable to filter logs for module 8: nrf_cloud_log
[00:00:09.939,544] <wrn> nrf_cloud_log: Unable to filter logs for module 9: nrf_cloud_codec
[00:00:09.939,605] <wrn> nrf_cloud_log: Unable to filter logs for module 10: nrf_cloud_codec_internal
[00:00:09.939,605] <inf> iotr: Initializing the nRF Provisioning library...
[00:00:09.940,277] <inf> nrf_cloud_log: Sent lines:0, bytes:0
[00:00:10.103,607] <inf> iotr: nRF Cloud credentials detected
[00:00:10.103,637] <inf> iotr: Sent device alert to the nRF cloud
[00:00:10.129,852] <inf> iotr: Injected time (GPS day 16385, GPS time of day 25955)
[00:00:10.137,878] <inf> iotr: Injected location for MCC <hidden>
[00:00:10.137,908] <inf> iotr: Reset reason: 0x0
[00:00:10.138,397] <inf> nrf_cloud_log: Sent lines:0, bytes:0
[00:00:10.229,919] <inf> iotr: Got device ID: <hidden>
[00:00:10.229,949] <inf> iotr: Waiting for modem to acquire network time...
[00:00:10.990,325] <inf> iotr: Provisioning started
[00:00:11.100,952] <inf> nrf_provisioning_http: Requesting commands
[00:00:11.101,409] <inf> nrf_cloud_log: Sent lines:0, bytes:0
[00:00:13.230,987] <inf> iotr: Network time obtained
[00:00:13.231,018] <inf> iotr: Initializing the nRF Provisioning library...
[00:00:13.359,161] <inf> iotr: nRF Cloud credentials detected
[00:00:15.038,940] <inf> nrf_provisioning_http: Connected
[00:00:15.039,001] <inf> nrf_provisioning_http: No more commands to process on server side
[00:00:15.039,001] <inf> iotr: Provisioning stopped
[00:00:15.039,611] <inf> nrf_cloud_log: Sent lines:0, bytes:0

However, when I go into nRF Cloud to "Add LTE device", I get an error that it hasn't been provisioned:

When I first got the device, I claimed it already (its device GUID shows up under my claimed devices section in the nRF Cloud portal with status "Ready").

However, none of my alerts are actually showing up in the Alerts section, despite the device logs showing no errors. Any ideas?

  • Hi Charlie, I imagine I need to set up external flash in order for this to work, based on the first few logs I see. Can you elaborate on what component you had to buy and how you wired it to the nRF9161 DK?

    *** Booting My Application v2.1.0-dev-4594a8693738 ***
    *** Using nRF Connect SDK v2.8.0-a2386bfc8401 ***
    *** Using Zephyr OS v3.7.99-0bc3393fb112 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0x18000
    I: Jumping to the first image slot
    [00:00:00.255,065] <err> spi_nor: Device id 00 00 00 does not match config c8 65 19
    *** Booting nRF Connect SDK v2.8.0-a2386bfc8401 ***
    *** Using Zephyr OS v3.7.99-0bc3393fb112 ***
    [00:00:00.259,857] <inf> main: nRF Cloud multi-service sample has started, version: 1.0.0, protocol: MQTT
    [00:00:00.259,887] <inf> application: Reset reason: 0x10001
    [00:00:00.260,162] <inf> cloud_connection: Enabling connectivity...
    [00:00:00.547,851] <inf> cloud_connection: Setting up nRF Cloud library...
    [00:00:00.636,047] <inf> nrf_cloud_info: Device ID: 5033475<HIDDEN>917c
    [00:00:00.636,596] <inf> nrf_cloud_info: IMEI:      35<HIDDEN>48
    [00:00:00.722,473] <inf> nrf_cloud_info: UUID:      503<HIDDEN>17c
    [00:00:00.722,961] <inf> nrf_cloud_info: Modem FW:  mfw_nrf91x1_2.0.1
    [00:00:00.722,991] <inf> nrf_cloud_info: Protocol:          MQTT
    [00:00:00.723,052] <inf> nrf_cloud_info: Download protocol: HTTPS
    [00:00:00.723,052] <inf> nrf_cloud_info: Sec tag:           16842753
    [00:00:00.723,083] <inf> nrf_cloud_info: Host name:         mqtt.nrfcloud.com
    [00:00:00.823,089] <inf> nrf_cloud_credentials: Sec Tag: 16842753; CA: Yes, Client Cert: Yes, Private Key: Yes
    [00:00:00.823,150] <inf> nrf_cloud_credentials: CA Size: 1188, AWS: Likely, CoAP: Unlikely
    [00:00:00.823,181] <inf> cloud_connection: Waiting for network ready...
    [00:00:11.632,110] <inf> cloud_connection: Network connectivity gained!
    [00:00:12.632,385] <inf> cloud_provisioning: Initializing the nRF Provisioning library...
    [00:00:12.632,568] <inf> cloud_connection: Network is ready
    [00:00:12.671,844] <inf> nrf_provisioning: Checking for provisioning commands in 4s seconds
    [00:00:16.671,966] <inf> cloud_provisioning: Provisioning is active.
    [00:00:16.773,895] <inf> nrf_provisioning_http: Requesting commands
    [00:00:19.105,072] <inf> nrf_provisioning_http: Connected
    [00:00:19.105,102] <inf> nrf_provisioning_http: No more commands to process on server side
    [00:00:19.105,194] <inf> nrf_provisioning: Checking for provisioning commands in 62s seconds
    [00:00:24.105,224] <inf> cloud_provisioning: Provisioning is idle.
    [00:00:24.105,285] <inf> cloud_connection: Connecting to nRF Cloud
    [00:00:28.411,865] <err> nrf_cloud_transport: MQTT input error: -128
    [00:00:28.411,926] <err> nrf_cloud_transport: Error disconnecting from cloud: -128
    [00:00:28.411,956] <inf> cloud_connection: Disconnecting from nRF Cloud
    [00:00:28.411,987] <err> cloud_connection: Could not connect to nRF Cloud
    [00:00:28.412,017] <inf> cloud_connection: Retrying in 30 seconds...
    [00:00:58.412,139] <inf> cloud_connection: Waiting for network ready...
    [00:00:58.412,170] <inf> cloud_connection: Network is ready
    [00:00:58.412,170] <inf> cloud_connection: Connecting to nRF Cloud
    [00:01:03.047,119] <err> nrf_cloud_transport: MQTT input error: -128
    [00:01:03.047,210] <err> nrf_cloud_transport: Error disconnecting from cloud: -128
    [00:01:03.047,241] <inf> cloud_connection: Disconnecting from nRF Cloud
    [00:01:03.047,271] <err> cloud_connection: Could not connect to nRF Cloud
    [00:01:03.047,302] <inf> cloud_connection: Retrying in 30 seconds...
    [00:01:21.105,316] <inf> cloud_provisioning: Provisioning is active.
    [00:01:21.207,336] <inf> nrf_provisioning_http: Requesting commands
    [00:01:23.649,322] <inf> nrf_provisioning_http: Connected
    [00:01:23.649,353] <inf> nrf_provisioning_http: No more commands to process on server side
    [00:01:23.649,444] <inf> nrf_provisioning: Checking for provisioning commands in 60s seconds
    [00:01:28.649,475] <inf> cloud_provisioning: Provisioning is idle.
    [00:01:33.047,393] <inf> cloud_connection: Waiting for network ready...
    [00:01:33.047,424] <inf> cloud_connection: Network is ready
    [00:01:33.047,424] <inf> cloud_connection: Connecting to nRF Cloud
    [00:01:37.150,390] <err> nrf_cloud_transport: MQTT input error: -128
    [00:01:37.150,451] <err> nrf_cloud_transport: Error disconnecting from cloud: -128
    [00:01:37.150,512] <inf> cloud_connection: Disconnecting from nRF Cloud
    [00:01:37.150,543] <err> cloud_connection: Could not connect to nRF Cloud
    [00:01:37.150,543] <inf> cloud_connection: Retrying in 30 seconds...

  • No, I have only used the original nRF9161DK, specifically version v0.9.1. However, every version of the nRF9161DK released within the past year should work, as there have not been any significant changes.

    Did you also encounter the message "<err> spi_nor: Device id 00 00 00 does not match config c8 65 19" when testing with the original NCS 2.8.0 Cellular: nRF Cloud multi-service? I believe this should not impact the auto-provisioning process.

    Which network operator are you using? Please ensure that you have sufficient data available for your subscription. You can simply verify network connectivity and data access using the Serial LTE modem ping command.

    Best regards,

    Charlie

  • Can you please elaborate what you mean by original NCS 2.8.0 cellular multi service sample? I'm running an unmodified sample.

    My DK came with an Onomondo SIM. I've also tried to use an IoT DataWorks SIM which uses AT&T. I was able to confirm Internet connectivity on it.

  • Hi,

    I mean to test with the unmodified sample located in v2.8.0/nrf/samples/cellular/nrf_cloud_multi_service. If you confirm it is original sample, then we can exclude this cause.

    Are you using an free developer account with nRF Cloud? Pay attention that there are limitations for device and service usage.

    Best regards,

    Charlie

  • Hi Charlie, I am using a developer account. However, I should be well within the free tier limits since I am merely trying to provision a device. This is the original, unmodified sample.

Related