<?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>Firmware update without IPv6 and TFTP</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/43917/firmware-update-without-ipv6-and-tftp</link><description>Some Examples discuss background DFU from application level, but those require bringing in IPv6 stack and TFTP client. Since we are planning to integrate DFU of our device with a mobile application, this has 2 undesired side effects: 
 1. On the device</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 21 Feb 2019 08:30:24 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/43917/firmware-update-without-ipv6-and-tftp" /><item><title>RE: Firmware update without IPv6 and TFTP</title><link>https://devzone.nordicsemi.com/thread/172239?ContentTypeID=1</link><pubDate>Thu, 21 Feb 2019 08:30:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:87c4ce83-a4aa-4241-ae30-af6407a0a1c6</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;1. The bootloader can be triggered in many ways. One of the options is by including a DFU service in the application, which can then be used to enter bootloader DFU mode. This is demonstrated by the &lt;a href="https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/ble_sdk_app_buttonless_dfu"&gt;Buttonless DFU Template Application&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;2A. We provide &lt;a href="https://github.com/NordicSemiconductor?utf8=%E2%9C%93&amp;amp;q=DFU&amp;amp;type=&amp;amp;language="&gt;DFU libraries for both iOS and Android&lt;/a&gt;. You use the &lt;a href="https://github.com/NordicSemiconductor/Android-nRF-Toolbox"&gt;nRF Toolbox app&lt;/a&gt; as a reference for how it is used.&lt;/p&gt;
&lt;p&gt;2B. The communication protocol is not Android specific, as this is a protocol defined by us that is common regardless of which DFU master you use. There is no need for you to focus on the protocol as we provide libraries for Android as well. You can find it &lt;a href="https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/lib_dfu_transport"&gt;documented her&lt;/a&gt;, though.&lt;/p&gt;
&lt;p&gt;3. No. That is the &amp;quot;background DFU&amp;quot; principle, which is not supported. When starting a upgrade, the application will reset in to the bootloader and it will handle the transport of the DFU image as well as validation and activation.&lt;/p&gt;
&lt;p&gt;Please note that DFU is quite complex so I recommend you spend a good amount of time reading the documentation and playing with the SDK examples.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Firmware update without IPv6 and TFTP</title><link>https://devzone.nordicsemi.com/thread/172196?ContentTypeID=1</link><pubDate>Wed, 20 Feb 2019 21:59:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9aecde62-24af-48c0-8500-9509481b5676</guid><dc:creator>Mike_K</dc:creator><description>&lt;p&gt;Thanks for the reply. I will choose the easier way, if possible, as I&amp;#39;m under a time crunch.&lt;/p&gt;
&lt;p&gt;A couple more questions.&lt;/p&gt;
&lt;p&gt;1. This description requires that the device is rebooted with a button press held, for it to boot into a bootloader which could then accept the new image.&lt;/p&gt;
&lt;p&gt;Instead, is there a way for the on-device&amp;nbsp;application, once it&amp;#39;s been BLE-messaged that&amp;nbsp;&amp;quot;new image is coming&amp;quot; to reboot the device into the bootloader DFU-mode without the need to hold any button? There are no physical buttons on my device.&lt;/p&gt;
&lt;p&gt;2. Is there either (or hopefully both):&lt;/p&gt;
&lt;p&gt;A: Example source code of Android application that would provide the new image to the bootloader, possibly with ready Android libraries to link into our application, that would take care of the transfer?&lt;/p&gt;
&lt;p&gt;B: Detailed&amp;nbsp;documentation on the communications protocol between Android smartphone and the bootloader?&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;3. Is it possible to have the application save the image off into the filesystem, and have bootloader access &amp;nbsp;and write it, once the system has been rebooted, or is this scenario also not supported?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Firmware update without IPv6 and TFTP</title><link>https://devzone.nordicsemi.com/thread/172186?ContentTypeID=1</link><pubDate>Wed, 20 Feb 2019 20:11:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0490e253-5a60-4d58-a4e2-e49f462153cd</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The nRF5 SDK has a very well tested bootloader example that handles OTA DFU. If background DFU is not a requirement for you, then I suggest you go for that. See &lt;a href="https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/ble_sdk_app_dfu_bootloader"&gt;bootloader example&lt;/a&gt; and &lt;a href="https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/lib_bootloader_modules"&gt;bootloader&amp;nbsp;modules documentation&lt;/a&gt;&amp;nbsp;for details. This is a complete solution delivered by us that requires virtually no effort on your side.&lt;/p&gt;
&lt;p&gt;Regarding background DFU I just recommend you refer to the&amp;nbsp;examples I pointed to. This will require a substantial amount of development work on your side.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Firmware update without IPv6 and TFTP</title><link>https://devzone.nordicsemi.com/thread/172182?ContentTypeID=1</link><pubDate>Wed, 20 Feb 2019 19:50:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1ba577e0-92d8-427e-8a8b-9f3b2de5f938</guid><dc:creator>Mike_K</dc:creator><description>&lt;p&gt;Ok... so, if background DFU is out as a solution for BLE, what is the best example to follow if I would like to download the new image as a part of the application, and then hand it over to the infrastructure to have it written?&lt;br /&gt;Or is such a scenario not supported at all? And if so, which is the best-supported traditional way of architecting and implementing&amp;nbsp;a DFU over BLE on nRF5?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Firmware update without IPv6 and TFTP</title><link>https://devzone.nordicsemi.com/thread/172117?ContentTypeID=1</link><pubDate>Wed, 20 Feb 2019 13:04:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bec057b8-359b-45c6-8aa4-0d7802071534</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The nRF5 SDK does not have a generic background DFU implementation for BLE. You could probably use parts of the existing bootloader, splitting it so that transport and pre-validation is part of the application, and make a slim bootloader that only does copying and post validation. You might also find some inspiration in the &lt;a href="https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK-for-Thread-and-Zigbee"&gt;SDK for Thread and ZigBee&lt;/a&gt; in this case, as that has background DFU for ZigBee. This will require quite a bit of effort, though.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>