<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sending large payloads on the nRF9160 using LTE-M</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/71417/sending-large-payloads-on-the-nrf9160-using-lte-m</link><description>Hi there, 
 
 We&amp;#39;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</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 19 Mar 2021 14:36:42 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/71417/sending-large-payloads-on-the-nrf9160-using-lte-m" /><item><title>RE: Sending large payloads on the nRF9160 using LTE-M</title><link>https://devzone.nordicsemi.com/thread/300979?ContentTypeID=1</link><pubDate>Fri, 19 Mar 2021 14:36:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c05e37f3-765a-45d0-9a8b-2df10a8e514e</guid><dc:creator>Didrik Rokhaug</dc:creator><description>&lt;p&gt;Hi Martin,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="ruimtepuin"]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.[/quote]
&lt;p&gt;&amp;nbsp;This is a limitation in nrf_modem_lib/bsdlib. So there is nothing we can do about that.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="ruimtepuin"]Sending a file of 10MB takes&amp;nbsp;around 20 minutes with this modified version.[/quote]
&lt;p&gt;&amp;nbsp;I don&amp;#39;t have any throughput numbers for the FTP client at the moment, though I might be able to get some next week.&lt;/p&gt;
&lt;p&gt;Which NCS version are you using?&lt;/p&gt;
&lt;p&gt;In NCS v1.5.0 we replaced the bsdlib with a new implementation, the nrf_modem_lib.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;But, the network also plays a major part here, as well as if you are using PSM, LTE-M or NB-IoT, etc.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Didrik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sending large payloads on the nRF9160 using LTE-M</title><link>https://devzone.nordicsemi.com/thread/300832?ContentTypeID=1</link><pubDate>Fri, 19 Mar 2021 08:14:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6df088bd-928a-4a41-b636-6300a39681a1</guid><dc:creator>ruimtepuin</dc:creator><description>&lt;p&gt;Hi Didrik,&lt;/p&gt;
&lt;p&gt;Thanks for the help, I&amp;#39;m a colleague of&amp;nbsp;Alehanderoo and I&amp;#39;ve implemented&amp;nbsp;the FTP client.&amp;nbsp;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.&amp;nbsp;Sending a file of 10MB takes&amp;nbsp;around 20 minutes with this modified version.&amp;nbsp;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.&lt;/p&gt;
&lt;p&gt;Is there a way to&amp;nbsp;speed up the transmitting process?&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Martin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sending large payloads on the nRF9160 using LTE-M</title><link>https://devzone.nordicsemi.com/thread/293398?ContentTypeID=1</link><pubDate>Mon, 08 Feb 2021 15:54:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:655fa3c4-7f7f-4d5e-ad2c-c842dc665199</guid><dc:creator>Didrik Rokhaug</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]Does the nRF9160 support FTP?[/quote]
&lt;p&gt;&amp;nbsp;The Serial LTE Modem application has FTP support: &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.4.0/nrf/applications/serial_lte_modem/doc/FTP_AT_commands.html"&gt;https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.4.0/nrf/applications/serial_lte_modem/doc/FTP_AT_commands.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And there is an FTP client libray: &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.4.0/nrf/include/net/ftp_client.html"&gt;https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.4.0/nrf/include/net/ftp_client.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]Do we need to chop the payload in smaller size packets?[/quote]
&lt;p&gt;&amp;nbsp;That depends on what you mean by &amp;quot;packets&amp;quot;.&lt;/p&gt;
&lt;p&gt;The nRF9160 doesn&amp;#39;t have enough memory to handle 4-5MB in one go, so in that sense, yes, you must break it down.&lt;/p&gt;
&lt;p&gt;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 &amp;quot;one packet&amp;quot;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]Can the payload be compressed? (zip/tar/etc)[/quote]
&lt;p&gt;&amp;nbsp;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.&lt;/p&gt;
&lt;p&gt;Or, depending on where the data comes from, it can be written compressed to the external flash chip if the nRF9160 doesn&amp;#39;t need to read the data, just send it.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Didrik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>