This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

FOTA with NB-IoT failing

Hi community

I'm trying to evaluate the possibilities of an application update over the air via NB-Iot. According to this post this should be possible.

I'm using the application_update example with the nRF9160-DK (B1).

The example works fine with LTE-M and is able to download the update.

In the prj.conf I changed the defaults for the fragment size (2048 B) and the network mode (LTE-M) to 512 B and NB-IoT by adding the following lines:

CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_512=y
CONFIG_LTE_NETWORK_MODE_NBIOT=y

The code compiles and the LTE Link does connect. It also connects to the server but then it fails with the error 116, see below:

*** Booting Zephyr OS build v2.6.99-ncs1  ***
HTTP application update sample started
LTE Link Connecting ...
LTE Link Connected!
Press Button 1 to perform application firmware update
I: Configuring socket timeout (30 s)
I: Connecting to hidden-url.com
I: Downloading: FOTA/app_update.bin [0]
E: Error in recv(), errno 116
E: Download client error
Received error from fota_download

Does anyone have an idea whats wrong here?

Thanks!

Simon

Parents
  • Hi Simon,

    I convert your trace to pcapng and checked with wireshark. The last message is an LTE RCC Release command. Have you set the PSM or does your carrier have some keep link timeout parameters?

    NB-IoT has low speed and it may take a very long time to finish a FOTA downloading, this might exceed some time limits.

    Best regards,

    Charlie

Reply
  • Hi Simon,

    I convert your trace to pcapng and checked with wireshark. The last message is an LTE RCC Release command. Have you set the PSM or does your carrier have some keep link timeout parameters?

    NB-IoT has low speed and it may take a very long time to finish a FOTA downloading, this might exceed some time limits.

    Best regards,

    Charlie

Children
  • Hi Charlie

    The PSM was set by default. I tried again after I disabled it (set the first three digits to one).

    But it is still failing, maybe there are some timeout parameters set by the carrier, I cannot say that.

    With your btw tipp of converting the bin to pcapng I looked into the trace myself. It still does the RCC Release, see attached.

    What is visible too is that there are loads of TCP retransmissions, double ACK and out-of-order packets - It seems like the tcp communication just isn't working as intended.

    I have heard about problems with NB-IoT and TCP. So I'm asking myself if its just not possible to properly communicate with TCP over NB-IoT (or only if you're lucky), what do you think?

    trace-2021-10-14T15-31-32.772Z.pcapng

    Thanks and best wishes,

    Simon

Related