<?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>DFU OTA update</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/2682/dfu-ota-update</link><description>I have programmed custom services on my evaluation kit and everything works great. I am now looking to implement updating my application from iOS and Android app. 
 Using: 
 SDK 5.2.0
S110 6.0.0 
 I have been trying to understand how to use the bootloader</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 04 Jun 2014 17:33:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/2682/dfu-ota-update" /><item><title>RE: DFU OTA update</title><link>https://devzone.nordicsemi.com/thread/10517?ContentTypeID=1</link><pubDate>Wed, 04 Jun 2014 17:33:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:07d8a763-6a36-4a46-bd8c-cf8f0e5a28c6</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;This question may also be helpful: &lt;a href="https://devzone.nordicsemi.com/question/1674/dfu/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU OTA update</title><link>https://devzone.nordicsemi.com/thread/10516?ContentTypeID=1</link><pubDate>Wed, 04 Jun 2014 17:16:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e3c5030-df97-4dca-8aeb-e652763712fb</guid><dc:creator>John Kolovson</dc:creator><description>&lt;p&gt;Thank you so much for that detailed explanation John. Really helps a lot. Reading the document again now. As far as I understand the button has to be pressed in a certain time frame to enter DFU mode with the example code ?&lt;/p&gt;
&lt;p&gt;I did see a forum questions about entering dfu state without button press:
&lt;a href="https://devzone.nordicsemi.com/question/1985/how-to-enter-into-dfu-mode-without-button-press/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;
&lt;a href="https://devzone.nordicsemi.com/question/2227/firmware-update-without-button-press/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU OTA update</title><link>https://devzone.nordicsemi.com/thread/10515?ContentTypeID=1</link><pubDate>Wed, 04 Jun 2014 13:22:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6a1f039b-0c30-4f4d-9ab1-666c25d352e2</guid><dc:creator>John</dc:creator><description>&lt;p&gt;The DFU is it&amp;#39;s own project rather than a part of your application. It is set up to reside in high memory out of the way of the application FW you are creating. This way it can receive in the new copy of your application, verify it&amp;#39;s correctness and then overwrite your old application with the new copy without overwriting itself. So, the DFU is a project built separately from your main application. For production purposes you can create a post build step that uses the mergehex utility to put the two projects into a single hex file for ease of programming.&lt;/p&gt;
&lt;p&gt;The typical sequence of events start at device reset. The Soft Device gives control to the bootloader in high memory. The bootloader checks if a bootload is being triggered by a mechanism you can define. The example code from Nordic uses the state of a button to know if it should enter bootloader mode. The bootloader also checks the validity of the application FW and if it isn&amp;#39;t valid it will enter bootloader mode. In bootloader mode, the device will expose a Nordic custom service and characteristics that the host uses to transfer the new application FW to your device. Note, if bootloader mode is not triggered, the bootloader FW will transfer control to your application FW and now your device will expose you application services and characteristics to the host.&lt;/p&gt;
&lt;p&gt;I&amp;#39;d suggest rereading the documentation a couple of times. It took several passes through it to fully grasp how this works.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>