<?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>Partial-Firmware Mesh DFUs</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/50820/partial-firmware-mesh-dfus</link><description>I recently added Mesh DFU support to a project that I&amp;#39;m working on but it&amp;#39;s extremely slow. It will take at least 1 hour to update the network under ideal conditions but I&amp;#39;m aiming for an update that will complete in less than 10 minutes. 
 I can think</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 12 Aug 2019 19:41:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/50820/partial-firmware-mesh-dfus" /><item><title>RE: Partial-Firmware Mesh DFUs</title><link>https://devzone.nordicsemi.com/thread/203687?ContentTypeID=1</link><pubDate>Mon, 12 Aug 2019 19:41:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9aa6739c-058e-482d-b85f-9fb5ed2d09b3</guid><dc:creator>Mark Q</dc:creator><description>&lt;p&gt;Technically speaking, what you are referring to is a binary diff.&amp;nbsp; So, instead of sending the whole object code, you send just the parts that have changed.&amp;nbsp; This is possible but would require quite a bit of work to implement from scratch.&amp;nbsp; Please take a look &lt;a href="http://www.daemonology.net/bsdiff/"&gt;here&lt;/a&gt; and &lt;a href="https://www.chromium.org/developers/design-documents/software-updates-courgette"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Partial-Firmware Mesh DFUs</title><link>https://devzone.nordicsemi.com/thread/203409?ContentTypeID=1</link><pubDate>Fri, 09 Aug 2019 20:38:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d0d57a26-8b4d-4ce8-8b7f-987a94ef1680</guid><dc:creator>Thomas-Brilliant</dc:creator><description>[quote userid="18935" url="~/f/nordic-q-a/50820/partial-firmware-mesh-dfus/203406"]That can be changed with a sharp knife and a soldering iron...[/quote]
&lt;p&gt;Hahaha true but this solution won&amp;#39;t scale well with my team nor will it be viable once our product is installed in the&amp;nbsp;test fixture.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Partial-Firmware Mesh DFUs</title><link>https://devzone.nordicsemi.com/thread/203406?ContentTypeID=1</link><pubDate>Fri, 09 Aug 2019 19:26:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9bf8e9f7-479d-45f5-8590-be836ae4d00f</guid><dc:creator>Turbo J</dc:creator><description>[quote userid="74776" url="~/f/nordic-q-a/50820/partial-firmware-mesh-dfus/203400"]Have you ever tried splitting the application into different sections so that each section can be updated independently?[/quote]
&lt;p&gt;That would be stupidly difficult to set up reliably. Forget this idea, the compiler likes to reorder stuff around anyway.&lt;/p&gt;
[quote userid="74776" url="~/f/nordic-q-a/50820/partial-firmware-mesh-dfus/203400"]Is it possible to combine the &amp;quot;normal&amp;quot; SDK bootloader&amp;#39;s functionality with the mesh SDK bootloader?[/quote]
&lt;p&gt;Maybe, but the result would probably significantly bigger in flash. How much of that is still free...?&lt;/p&gt;
&lt;p&gt;Also very much non trivial.&lt;/p&gt;
[quote userid="74776" url="~/f/nordic-q-a/50820/partial-firmware-mesh-dfus/203400"]test device (which is sealed up, so I&amp;nbsp;can&amp;#39;t connect my J-Link to it).[/quote]
&lt;p&gt;That can be changed with a sharp knife and a soldering iron...&lt;em&gt;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Partial-Firmware Mesh DFUs</title><link>https://devzone.nordicsemi.com/thread/203400?ContentTypeID=1</link><pubDate>Fri, 09 Aug 2019 18:26:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ba13393-a208-4cf8-8851-68851f62b7d4</guid><dc:creator>Thomas-Brilliant</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m looking for a faster update so that I can rapidly develop firmware updates for my test device (which is sealed up, so I&amp;nbsp;can&amp;#39;t connect my J-Link to it).&lt;/p&gt;
&lt;p&gt;Is it possible to combine the &amp;quot;normal&amp;quot; SDK bootloader&amp;#39;s functionality with the mesh SDK bootloader? If so, how would you suggest I go about it? Do you have examples?&lt;/p&gt;
&lt;p&gt;Have you ever tried splitting the application into different sections so that each section can be updated independently?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;-Thomas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Partial-Firmware Mesh DFUs</title><link>https://devzone.nordicsemi.com/thread/203307?ContentTypeID=1</link><pubDate>Fri, 09 Aug 2019 12:31:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:db7c2a69-09e8-4952-b376-3dcc16e2f1e1</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;The reason why the Mesh DFU is set to go so slow is because Mesh networks has very low payload throughput. As you say, it is possible to speed it up by sending the packets more often, but this may result in more packet loss, both for the DFU packets and the mesh networks application packets.&lt;/p&gt;
&lt;p&gt;The advantage of the Mesh DFU is that the DFU is running in the background, meaning the (old) application will still run while it is receiving the new one. It only requires a restart once the entire packet has been transferred.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;May I ask why you need the DFU to update faster?&lt;/p&gt;
&lt;p&gt;If you need to update faster, I can really only recommend using the bootloader from the &amp;quot;normal&amp;quot; SDK, which takes less than a minute, but then you have to be in range of the node, and in a BLE connection. You also need to update one node at the time, which is typically not ideal for a mesh network wich possibly have very many nodes.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>