nrf9160 SLM DFU AT commands (#XDFUGET)

Hi,

I'm interested in using this AT command to upgrade my nRF52840. But I'm not quite sure what to do exactly. I'm using nRF5 V17 SDK on nRF52840. what should I provide for image_1 and image_2 if I only want to upgrade the application only? (not softdevice, bootloader). Also, I would guess I need the UART DFU enabled on my 52840. Is that correct?

Thanks,

Ye-Sheng

Parents Reply Children
  • Hi Huang,

    I'm using SLM firmware with modem FW 1.3.2. I ran into an issue when downloading the files. The error code is 122. Any idea what it means? Also, when it fails, the entire modem doesn't respond to AT command anymore.

    00> [00:00:00.508,728] <inf> slm: Serial LTE Modem
    00> [00:00:00.514,251] <inf> slm_at_host: at_host init done
    00> [00:00:44.998,748] <inf> download_client: Setting up TLS credentials, tag 42
    00> [00:00:44.998,870] <inf> download_client: Connecting to https://my_web_server.com
    00> [00:00:50.280,426] <inf> download_client: Downloading: firmware/nrf52840_xxaa_0923.dat [0]
    00> [00:00:50.491,485] <inf> download_client: Downloaded 141/141 bytes (100%)
    00> [00:00:50.491,516] <inf> download_client: Download complete
    00> [00:00:50.492,797] <inf> dfu: Init Packet downloaded
    00> [00:00:50.493,804] <inf> download_client: Setting up TLS credentials, tag 42
    00> [00:00:50.493,896] <inf> download_client: Connecting to https://my_web_server.com
    00> [00:00:52.836,700] <inf> download_client: Downloading: firmware/nrf52840_xxaa_0923.bin [0]
    00> [00:00:53.057,037] <err> download_client: Error in recv(), errno 122
    00> [00:00:53.057,067] <inf> dfu: EVT_ERROR
    00> [00:00:53.057,067] <wrn> dfu: Download socket error. 2 retries left...
    00> [00:00:53.057,098] <inf> download_client: Reconnecting..
    00> [00:00:53.058,746] <inf> download_client: Setting up TLS credentials, tag 42
    00> [00:00:53.058,837] <inf> download_client: Connecting to https://my_web_server.com
    00> [00:00:56.135,345] <err> download_client: Error in recv(), errno 122
    00> [00:00:56.135,375] <inf> dfu: EVT_ERROR
    00> [00:00:56.135,406] <wrn> dfu: Download socket error. 1 retries left...
    00> [00:00:56.135,406] <inf> download_client: Reconnecting..
    00> [00:00:56.136,993] <inf> download_client: Setting up TLS credentials, tag 42
    00> [00:00:56.137,084] <inf> download_client: Connecting to https://my_web_server.com
    00> [00:00:59.138,885] <err> download_client: Error in recv(), errno 122
    00> [00:00:59.138,916] <inf> dfu: EVT_ERROR
    00> [00:00:59.140,075] <err> dfu: Download client error
    00> [00:00:59.140,075] <err> target_dfu: DFU image upgrade aborted.

  • Hi, 

    I'm not so familiar with the download_client. But error 122 suggests that it's a buffer size error. 
    Could you have a look at these two cases and check if they help? 
    Socket recv returning -122 (nrf9160)

     RE: aws_fota: Error when getting the payload: -122 

  • Hi Hung,

    I tried to use regular HTTP port 80, and I could download the firmware successfully. Maybe this is a bug with TLS?

    Thanks,

  • Hi Ye-Sheng, 

    According to this case:  Socket recv returning -122 (nrf9160) 

    There is a limitation of TLS that the max limit of response size of 2kB. When none TLS can have longer size. 
    It might be related to what you found that HTTP work but HTTPS (secured with TLS) doesn't work ? 
    I'm not so familiar with the SLM DFU, but is there any way you can change this response size ? 

Related