This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Sending large payloads on the nRF9160 using LTE-M

Hi there, 

We're in the evaluation of sending large payloads with nRF9160. 

The payloads are 4-5MB in size which will come from an external flash chip.

The payloads can be received in any format on the end-point.

Do we need to chop the payload in smaller size packets?

Can the payload be compressed? (zip/tar/etc)

Does the nRF9160 support FTP?

Parents
  • Hi,

     

    Does the nRF9160 support FTP?

     The Serial LTE Modem application has FTP support: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.4.0/nrf/applications/serial_lte_modem/doc/FTP_AT_commands.html

    And there is an FTP client libray: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.4.0/nrf/include/net/ftp_client.html

     

    Do we need to chop the payload in smaller size packets?

     That depends on what you mean by "packets".

    The nRF9160 doesn't have enough memory to handle 4-5MB in one go, so in that sense, yes, you must break it down.

    On the other side, if you use TCP, you are dealing with a stream of data, so it would be possible to use an application layer protocol where you could send the whole payload in "one packet".

     

    Can the payload be compressed? (zip/tar/etc)

     I am not aware of any compression libraries in the nRF Connect SDK, but it should be possible to implement one yourself, or integrate a third party library.

    Or, depending on where the data comes from, it can be written compressed to the external flash chip if the nRF9160 doesn't need to read the data, just send it.

    Best regards,

    Didrik

  • Hi Didrik,

    Thanks for the help, I'm a colleague of Alehanderoo and I've implemented the FTP client. However, its very slow. I already modified the ftp_put() function to open the socket once, send the data from the flash in packets via the send() command until the end of the file, and closing the socket again. Sending a file of 10MB takes around 20 minutes with this modified version. The maximum packet size I was able to send is about 4kB at once, when I try to increase this it gives error -12. It seems to be the ENOMEM error.

    Is there a way to speed up the transmitting process?

    Kind regards,

    Martin

  • Hi Martin,

     

    ruimtepuin said:
    he maximum packet size I was able to send is about 4kB at once, when I try to increase this it gives error -12. It seems to be the ENOMEM error.

     This is a limitation in nrf_modem_lib/bsdlib. So there is nothing we can do about that.

     

    ruimtepuin said:
    Sending a file of 10MB takes around 20 minutes with this modified version.

     I don't have any throughput numbers for the FTP client at the moment, though I might be able to get some next week.

    Which NCS version are you using?

    In NCS v1.5.0 we replaced the bsdlib with a new implementation, the nrf_modem_lib.

    With this replacement comes the possibility to adjust some of the buffer sizes used by the library. This, along with other changes enables a higher throughput.

    But, the network also plays a major part here, as well as if you are using PSM, LTE-M or NB-IoT, etc.

    Best regards,

    Didrik

Reply
  • Hi Martin,

     

    ruimtepuin said:
    he maximum packet size I was able to send is about 4kB at once, when I try to increase this it gives error -12. It seems to be the ENOMEM error.

     This is a limitation in nrf_modem_lib/bsdlib. So there is nothing we can do about that.

     

    ruimtepuin said:
    Sending a file of 10MB takes around 20 minutes with this modified version.

     I don't have any throughput numbers for the FTP client at the moment, though I might be able to get some next week.

    Which NCS version are you using?

    In NCS v1.5.0 we replaced the bsdlib with a new implementation, the nrf_modem_lib.

    With this replacement comes the possibility to adjust some of the buffer sizes used by the library. This, along with other changes enables a higher throughput.

    But, the network also plays a major part here, as well as if you are using PSM, LTE-M or NB-IoT, etc.

    Best regards,

    Didrik

Children
No Data
Related