<?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>Android/IOS DFU throughput</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/85049/android-ios-dfu-throughput</link><description>I am currently working with a dvk-bl653 working on increasing the speed of the DFU. I have a max packet size of 251 and have tried different connection intervals but only see a throughput of ~3.5 - 4.2kB/s, is this normal? What would be causing such a</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 03 Mar 2022 20:27:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/85049/android-ios-dfu-throughput" /><item><title>RE: Android/IOS DFU throughput</title><link>https://devzone.nordicsemi.com/thread/356148?ContentTypeID=1</link><pubDate>Thu, 03 Mar 2022 20:27:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f29d126c-7480-4e1e-8cb8-d97d3f3689fe</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Flash writes can&amp;#39;t be executed while the CPU is running, since the Softdevice code is located in flash. If the CPU would be running during flash write/erase operations, it could try to access flash to load instructions while the flash operation is ongoing. This means that the Softdevice needs to schedule the flash write operations between any scheduled BLE events, like connection events and advertising/scanning. When the write operation is completed, the DFU client needs to wait for the next connection event to request a new packet, which needs to be transferred to the device before it can be written to flash. All these operations adds overhead which is not required when programming the flash from a debugger. The debugger can write a small application to RAM, which again will write received data to flash while receiving the next chunk over SWD, almost without any overhead.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android/IOS DFU throughput</title><link>https://devzone.nordicsemi.com/thread/354674?ContentTypeID=1</link><pubDate>Wed, 23 Feb 2022 17:05:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e5eeb01d-346a-4738-a235-36c80ebdd380</guid><dc:creator>jspiller</dc:creator><description>&lt;p&gt;Thanks for your response, so if the flash is the main bottleneck how come flashing through J-Link would be so much faster? It takes about 10 seconds for a J-Link flash but over a minute for a DFU flash with a 227kB file.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android/IOS DFU throughput</title><link>https://devzone.nordicsemi.com/thread/354661?ContentTypeID=1</link><pubDate>Wed, 23 Feb 2022 15:45:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f571516f-df01-439d-a8e3-f683235fcf30</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The main bottleneck in the DFU throughput is the process of writing the received firmware pieces into the flash of the nRF52 device. You may &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/29858/transfer-speed-secure-dfu-sdk14/118682#118682"&gt;tweak some parameters&lt;/a&gt;&amp;nbsp;to try to improve&amp;nbsp;it, but the numbers you are reporting are about what I would expect.&lt;/p&gt;
&lt;p&gt;The empty PDUs are caused by no data being sent at the given connection interval. This is likely caused by the bootloader waiting for completion of the flash write before accepting more packets. The empty PDUs are still required to keep the BLE link active. If you want less empty PDUs, you need to increase the connection interval, etc.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>