<?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: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/10614/dfu-nrf51822-ota-bootloader-jams-after-reset_prepare</link><description>I managed to upload my application OTA DFU when there was only the bootloader running. After my application is there, I can start DFU and my application runs thru reset_prepare() function as expected. However, it seems that it never enters the bootloader</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 07 Dec 2015 10:48:24 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/10614/dfu-nrf51822-ota-bootloader-jams-after-reset_prepare" /><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39579?ContentTypeID=1</link><pubDate>Mon, 07 Dec 2015 10:48:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8649f70-8eb7-483f-8447-b956c693ad57</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Thanks, that clarified a bit!&lt;/p&gt;
&lt;p&gt;What I really need is to be able to upload application.zip from nRFTools. If I do the reset, then it doesn&amp;#39;t work very well, because user needs to start the upload twice... And if I don&amp;#39;t, the bootloader jams into its event loop. :(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39578?ContentTypeID=1</link><pubDate>Mon, 07 Dec 2015 08:54:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:13226e86-f209-407f-9251-72b96aece440</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;The assembly routine in bootloader_util_app_start() does jump from application to bootloader, but it doesn&amp;#39;t do a system reset like NVIC_SystemReset, power on reset or a pin reset  resulting in the softdevice already being invoked going from application to bootloader. This is the reason for the &amp;quot;app reset&amp;quot; check in ble_stack_init() as SD_MBR_COMMAND_INIT_SD can&amp;#39;t be issued when SD is already invoked. In other words, only issue the SD_MBR_COMMAND_INIT_SD command if a system reset has been performed.&lt;/p&gt;
&lt;p&gt;Reason for not doing a system reset in the example is to support sharing of bond information between the application and bootlaoder to keep the same encrypted link while doing DFU (&lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk51.v10.0.0/bledfu_appbonding.html?cp=4_1_0_4_3_1_2_3"&gt;bond sharing&lt;/a&gt;). If this feature is not needed you can call NVIC_SystemReset(); in your application and always invoke the Softdevice in ble_stack_init().&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39560?ContentTypeID=1</link><pubDate>Sat, 05 Dec 2015 19:17:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bad21f39-6f02-4fdc-85c3-f107edc42c0b</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Thanks, I will examine those things, too.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39577?ContentTypeID=1</link><pubDate>Sat, 05 Dec 2015 11:06:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:443e2faa-65c9-4663-840e-8aa90d32eaa7</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;I am now using a dirty hack to get rid of bootloader jamming.  The modification is at the bootloader&amp;#39;s main.c, and it makes the bootloader to reset after it first enters from application, and only after that, it enters the actual bootloader code. However, two upload tries is now needed from nRFTools, so the solution is not optimal.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bool app_reset = (NRF_POWER-&amp;gt;GPREGRET == BOOTLOADER_DFU_START);
bool app_reset2 = (NRF_POWER-&amp;gt;GPREGRET == ~BOOTLOADER_DFU_START);

if (app_reset)
{
    NRF_POWER-&amp;gt;GPREGRET = ~BOOTLOADER_DFU_START;
    NVIC_SystemReset();
}
else if (app_reset2)
{
    NRF_POWER-&amp;gt;GPREGRET = 0;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In addition, few other changes are needed to support &amp;quot;app_reset2&amp;quot; (several places at main). At least it works now somehow. But it is really a dirty hack as I said...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39559?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 14:49:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dc769ca2-964e-494a-85e6-64bd20cbe081</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi, are you working with a nRF51 DK kit? Reason I ask is that we have different chip variants in case you&amp;#39;re working on a custom board. Some with 16K and 32K of RAM and 128 or 256K of flash &lt;a href="http://infocenter.nordicsemi.com/pdf/nRF51_Series_Compatibility_Matrix_v2.5.pdf"&gt;(chip variants)&lt;/a&gt;. DK kit has 256/32 respectively which the examples are based on. So linker settings need to be adjusted accordingly for other variants.&lt;/p&gt;
&lt;p&gt;Generally when adding DFU support to an application such as the ble_app_hrs_dfu example you need to follow the instructions given &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk51.v10.0.0/bledfu_application.html?cp=4_1_0_4_3_1_2"&gt;here&lt;/a&gt; in the SDK documenation to allow buttonless entry to DFU mode. I guess you have followed those already considering you have implemented at least some of it in the code you posted. Unfortunately, there are two things missing from from these instructions (has been reported internally):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add loading of service changed flag as shown in the reference example (ble_app_hrs_dfu)&lt;/li&gt;
&lt;li&gt;set device_manager_cnfg.h-&amp;gt;DEVICE_MANAGER_APP_CONTEXT_SIZE to a multiple of word size. I.e., 4 or more. This is used to store the ATT table changed flag.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&amp;#39;d suggest to closely compare the ble_app_hrs_dfu example with yours to see if there are any differences releated to DFU implemenation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39570?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 12:07:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25f855f3-f85e-4a53-86cc-146dbef2fd0d</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Both. Those are in bootloader side. bootloader_util_arm.c is also in application side, but not the bootloader_settings_arm.c.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39576?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 10:04:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2d1d0d1d-513e-4b3f-b6d3-76f93ec834c9</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;Do you have bootloader_util_arm.c or bootloader_settings_arm.c or both? And where files are in application or in bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39575?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 10:01:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:61a6391a-6f73-46cd-afc4-843426f79a5d</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;I agree. And I was mixing-up bootloader_util_arm.c and bootloader_settings_arm.c, although fixing that thing did not help me :(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39574?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 09:45:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c6a2392-d971-4d17-8e29-38f5f2ff0801</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;yeah i just saw it. the information provided there is not enough.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39573?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 09:44:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d54720dd-9ad9-4962-9374-830fa7ac073a</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;The application needs it, as it is guided here: &lt;a href="http://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v8.x.x/doc/8.0.0/s110/html/a00081.html"&gt;developer.nordicsemi.com/.../a00081.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I think the difference compared to your situation is that I am making an application that can start DFU without any tricks, just using the nRFTools DFU. So that is probably why those bootloader things are needed also in the application side.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39572?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 09:41:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e22a091c-e8e8-4c10-9938-bdbf3f12a894</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;The another bootloader_util_arm.c that my app was using was actually from nRF51_SDK_8.0.0_5fc2c3a\examples\dfu\experimental_ant_bootloader by mistake. I replaced it with the one used by bootloader, but it did not change anything. However, there&amp;#39;s now nowhere the line UICR you were discussing about. I can try to add it into the bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39571?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 09:37:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0f4995b8-a0d0-4ba3-abac-12fa7ca7dcb5</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;My chip is nrf51822, and sdk is 8. bootloader_settings_arm.c is only required in bootloader, and why do you use it in your application??
UICR line must be in bootloader_settings_arm.c, which must be present in bootloader, and not in application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39569?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 09:29:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:840e5f15-6128-400a-8fac-06318ae6a140</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Well, I had it in my application.I have two quire different bootloader_util_arm.c -files and the another one used by dual-bank bootloader doesn&amp;#39;t have the UICR line there, at all. What is the exact version of your bootloader, i.e. from what folder in sdk you found it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39568?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 09:01:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e5ae241-2181-4a36-b418-6adb6ea3a25b</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;Make sure &amp;quot;uint32_t m_uicr_bootloader_start_address...&amp;quot;  is only in bootloader, and also UICR registers should only be used in bootloader and not in application.
using nrfgo studio, use eraseall.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;burn softdevice, burn application, burn bootloader.
if this doesn&amp;#39;t work try eraseall, program softdevice, burn botloader, burn application.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39567?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 07:38:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:65d13d60-5674-44b0-91d6-cc878c0f3ac7</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Yeah, I noted that it does not work if I comment the line away. Then I erased the whole chip nRFGo studio. But it did not help, when I try to flash my application having that line uncommented, the errors:&lt;/p&gt;
&lt;p&gt;No Algorithm found for: 10001014H - 10001017H&lt;/p&gt;
&lt;p&gt;Partial Erase Done (areas with no algorithms skipped!)&lt;/p&gt;
&lt;p&gt;No Algorithm found for: 10001014H - 10001017H&lt;/p&gt;
&lt;p&gt;Partial Programming Done (areas with no algorithms skipped!)&lt;/p&gt;
&lt;p&gt;are still there. I am now stuck on this. What the heck happened, this problem didn&amp;#39;t exist two days ago :-o&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39566?ContentTypeID=1</link><pubDate>Fri, 04 Dec 2015 04:34:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9abc4e8d-7c7b-48be-9311-a0cbff8e7f47</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;Uncomment that line which you have commented out, otherwise bootloader will nerver get flashed.
You just have to erase whole nrf chip, or just write, nrfjprog --eraseall --program filename.hex --reset --verify.
It will definitely work. and always use given above command for flashing.
It is because you can&amp;#39;t overwrite UICR registers without erasing them, and those can only be erased by eerasing whole chip.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39565?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 22:33:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8039cf44-66d6-4e62-8c39-e14aa0245f8b</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Actually, I had to comment the line &amp;quot;uint32_t m_uicr_bootloader_start_address...&amp;quot; away to get rid of the error message. And the older project was working because it did not have that file at all, yet. However, now I am back at the starting point: I cannot DFU if my own application is there. I will look your instructions carefully, let&amp;#39;s see if I can manage to get it working. Thanks again!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39564?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 22:15:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a9e215b5-e656-4c27-919a-ede9629d825c</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Well, they were already there. When I try to flash the bootloader, the error message is as follows:&lt;/p&gt;
&lt;p&gt;nrfjprog.exe --reset --program &amp;quot;C:\Nordic Semiconductor\nRF51_SDK_8.0.0_5fc2c3a_backup\nRF51_SDK_8.0.0_5fc2c3a\examples\dfu\bootloader\pca10028\dual_bank_ble_s110\arm4_build\nrf51422_xxac.HEX&amp;quot;&lt;/p&gt;
&lt;p&gt;Parsing hex file(s).&lt;/p&gt;
&lt;p&gt;Checking that there is no data to be written in region 0.&lt;/p&gt;
&lt;p&gt;Checking that there are no UICR conflicts.&lt;/p&gt;
&lt;p&gt;ERROR: The device has data in the UICR area, and there is a conflict with the hex to download. No program command will automatically erase UICR area. Erase the UICR area and download the hex(s) files again.&lt;/p&gt;
&lt;p&gt;And on the other hand, I have two versions of the application project (not the bootloader). Another one does flash OK, while the other fails with the &amp;quot;No Algorithm ...&amp;quot; -error. This just does not make any sense... :( I cannot find the difference even with using WinMerge. AAARRRGGH :(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39563?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 22:00:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9db375aa-3a4d-4b8f-b968-bb38c1be5b47</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;in bootloader_settings_arm.c file add &amp;quot;uint32_t m_uicr_bootloader_start_address &lt;strong&gt;attribute&lt;/strong&gt;((at(NRF_UICR_BOOT_START_ADDRESS))) = BOOTLOADER_REGION_START;&amp;quot;,
#define NRF_UICR_BOOT_START_ADDRESS     (NRF_UICR_BASE + 0x14) and
#define DFU_BL_IMAGE_MAX_SIZE           (BOOTLOADER_SETTINGS_ADDRESS - BOOTLOADER_REGION_START)&lt;/p&gt;
&lt;p&gt;it will be there just uncomment it, the error is because of the absence of this line, this line is used to write uicr registers. or use nrfjrog.exe to write image on nrf. else follow given links: &lt;a href="https://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v8.x.x/doc/8.0.0/s110/html/a00098.html"&gt;developer.nordicsemi.com/.../a00098.html&lt;/a&gt; and &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk51.v9.0.0%2Fuicr_config_example.html"&gt;infocenter.nordicsemi.com/index.jsp&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39562?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 21:44:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce87f277-8354-48e7-9a4f-79ec5de680b1</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Thanks for very comprehensive answer! I think my application enters bootloader correctly, but the bootloader might get mad because of our hardware peripherals and their interrupts. Would like to test that, but my project (Keil) corrupted somehow. I get errors:&lt;/p&gt;
&lt;p&gt;No Algorithm found for: 10001014H - 10001017H
Partial Erase Done (areas with no algorithms skipped!)
No Algorithm found for: 10001014H - 10001017H
Partial Programming Done (areas with no algorithms skipped!)
Partial Verify OK (areas with no algorithms skipped!)&lt;/p&gt;
&lt;p&gt;And the application fails to run. I have compared all the settings with an older copy of the project, and everything seems to be similar. But it just continues to give that error! So irritating and frustrating... :(&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39561?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 13:39:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74651561-56f3-4e46-9e66-19789c9a3d83</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;I think there is issue with the method of sending nrf into bootloader.
I have successfully done ota for application, bootloader and also softdevice. So let me tell you what have i done.
In your application code, go where bluetooth messages are recieved. there u can make a function which parses the message.
in that function check if (say) 0th byte is &lt;strong&gt;0x1&lt;/strong&gt; then just set NRF_POWER-&amp;gt;GPREGRET to BOOTLOADER_DFU_START, that&amp;#39;s  a macro, you can assign whatever value you want, just make sure define it in both application and bootloader.
in bootloader in main function just check NRF_POWER-&amp;gt;GPREGRET, if it is equal to BOOTLOADER_DFU_START be in bootloader mode.&lt;/p&gt;
&lt;p&gt;How to go in bootloader mode from application?
go to nrf master control panel app(android), connect to it, dicover services, bond it, enable services.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Let&amp;#39;s say my device&amp;#39;s name is 1234, as shown in image. select it and connect it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/8080.1.png" alt="image description" /&gt;
2.You get 2nd screen, there on topright corner tap to settings near Disconnect, a popup will open shown in second image. select Refresh services.
&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/8054.2.png" alt="image description" /&gt;
3.and then again go to settings and select bond. Your screen would be like:
&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/1732.3.png" alt="image description" /&gt;
4. now your device is bonded, now goto settings &amp;quot;status:connected, bonded&amp;quot; tab, from popup select &amp;quot;enable services&amp;quot;.
5. Goto Unknown Service.
&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3527.4.png" alt="image description" /&gt;
in that goto Unkwnown Characteristics with UUID 0000900a...
ahead of it you will see a 2 icon of upload, tap on it.
6.this will look like:
&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/7444.5.png" alt="image description" /&gt;
change &amp;quot;byte array&amp;quot; to &amp;quot;byte&amp;quot;
write 01 to new value then send. again tap on it and again select byte and write &amp;quot;&lt;strong&gt;1&lt;/strong&gt;&amp;quot;. as decided above. written above in bold.&lt;/p&gt;
&lt;p&gt;Now nrf will advertise as &amp;quot;DfuTarg&amp;quot;.&lt;/p&gt;
&lt;p&gt;Now use nrf toolbox for ota&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39553?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 10:48:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:475a96d7-e28b-47a8-be23-3f0c5f2dcd66</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Yes, but not directly, because I just link with the code provided by Nordic Semiconductor. Bootloader is started when nRFTool at the phone side is requesting it. I followed the instructions from here to enable DFU for my application: &lt;a href="http://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v8.x.x/doc/8.0.0/s110/html/a00081.html"&gt;developer.nordicsemi.com/.../a00081.html&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39552?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 10:35:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:469155f7-69e3-471a-9934-5d02de0059cd</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;How do you enter in bootloader mode from application?? Is it using NRF_POWER-&amp;gt;GPREGRET??&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39555?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 10:31:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b869c278-6204-4f8c-8a9d-73799edd9c14</guid><dc:creator>Jarmo</dc:creator><description>&lt;p&gt;Yes, I added the indication function after noticing the system hangs up. So it&amp;#39;s not definitely the cause of the problem. And the reset_prepare is in my application, as it needs to be.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU: nRF51822 OTA bootloader jams after reset_prepare()</title><link>https://devzone.nordicsemi.com/thread/39551?ContentTypeID=1</link><pubDate>Thu, 03 Dec 2015 10:03:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a7263526-639f-4e93-9e2c-c52dee378958</guid><dc:creator>shubham</dc:creator><description>&lt;p&gt;reset_prepare function is in application or in bootloader?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>