<?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 only once?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/4781/dfu-only-once</link><description>Hello, 
 Im using the master control panel app from nordic to use the DFU. 
 I can only once upload the application over DFU on my nRF51422. Because after the upload is done and I connect again with my nRF51422 the Device Firmware Update Service is</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 12 Dec 2014 12:36:18 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/4781/dfu-only-once" /><item><title>RE: DFU only once?</title><link>https://devzone.nordicsemi.com/thread/16931?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2014 12:36:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7340e2d4-a583-4c32-92ba-4559bd8fc410</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;You should not flash your application with nRFStudio when you use the bootloader . You should flash your softdevice , then bootloader and then use Master Control Panel to upload the the application via the bootloader. If can flash softdevice+bootloader+application from nRFgo Studio but then you must merge all hex files into one hex file and then flash the merged hex file, as described on &lt;a href="https://devzone.nordicsemi.com/question/22056/combining-sd-dfu-and-application-hex-and-programming/?answer=22246#post-id-22246"&gt;this thread&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are using the the nRF51 development kit, you can press button 7 on the nRFgo motherboard while power resetting in order to again enter bootloader mode.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU only once?</title><link>https://devzone.nordicsemi.com/thread/16929?ContentTypeID=1</link><pubDate>Fri, 12 Dec 2014 11:45:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c640cfe8-beb8-4bca-bb98-519386a06650</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;What bootloader are you using, i.e from which SDK?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU only once?</title><link>https://devzone.nordicsemi.com/thread/16930?ContentTypeID=1</link><pubDate>Thu, 11 Dec 2014 14:07:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b397d1ba-38de-485e-8f78-43f7e977632b</guid><dc:creator>John</dc:creator><description>&lt;p&gt;The DFU can perform multiple upgrades. However once you perform an upgrade using the DFU, it retains information so it can tell if the application program is valid. On subsequent resets if the application is valid the DFU initialization code will jump to your application rather than retaining control and presenting the DFU service. You need to do something to cause the DFU to retain control on reset.&lt;/p&gt;
&lt;p&gt;In my case, I send my application a command to tell it to enter bootload mode. This command sets a specific value in the GPREGRET register  and performs a reset. I modified the initialization code in the DFU to check the GPREGRET register for the specific value, and if it finds the value the DFU init code knows to retain control and present the DFU service.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>