<?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>No transport to DfuTarg observed after &amp;quot;Enabling DFU Bootloader...&amp;quot;</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/15474/no-transport-to-dfutarg-observed-after-enabling-dfu-bootloader</link><description>First attempt at implementing buttonless dfu; assistance would be greatly appreciated. Using SDK v11 + s130 + nRF51822. 
 Please note that iphone screen captures supporting my observations can be seen here:
 https://goo.gl/VlYdBY 
 I wrote a bootloader</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 24 Feb 2017 13:56:15 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/15474/no-transport-to-dfutarg-observed-after-enabling-dfu-bootloader" /><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59120?ContentTypeID=1</link><pubDate>Fri, 24 Feb 2017 13:56:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:58ea1724-89ff-4147-a64d-f8cf01a2082d</guid><dc:creator>RxNcO</dc:creator><description>&lt;p&gt;Hi guys!! I&amp;#39;m trying the same DFU update thing and I get the same symptoms.
mBed BLE API, nrf SDK 10, Arduino/gcc/g++ toolchain&lt;/p&gt;
&lt;p&gt;Any news on this problem?
Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59111?ContentTypeID=1</link><pubDate>Wed, 17 Aug 2016 10:08:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5fc8018a-8813-4214-9e40-dbf3aa391f79</guid><dc:creator>seajayshore</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been away and just come back to this. Thanks v. much for all the clear information. I think you have explained exactly what is happening.&lt;/p&gt;
&lt;p&gt;I will look at updating/changing the way our mbed app launches bootloader so we can pass information, but until then everything is working fine since we knew about the +1 address changing.&lt;/p&gt;
&lt;p&gt;Thanks for confirming that the nRF Toolbox is just now working with the address change, that explains the problems I was having.&lt;/p&gt;
&lt;p&gt;Thanks again!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59108?ContentTypeID=1</link><pubDate>Thu, 04 Aug 2016 14:14:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2bfdebb7-4695-4e9d-a808-964658f00ad6</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Chris,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sorry that I wasn&amp;#39;t up to date. We had some modification and now how the thing works is that in our SDK bootloader when we switch from application to the bootloader, we will send the address of the central device we connected to to the bootloader. And the bootloader will use that address to do directed advertising to that address. And there is no +1 in the address of the bootloader.&lt;/p&gt;
&lt;p&gt;The +1 only happens when we start the bootloader from a button or at the beginning when there is no app.&lt;/p&gt;
&lt;p&gt;And the app on the phone will not look for the address +1 but the same address with the application, instead.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sorry for the confusion.&lt;/p&gt;
&lt;p&gt;In your case with mbed, I guess since there is no data passed from the application to the bootloader (there are 2 cases, pass only address, and pass address and bond information), the bootloader will start up as you hold a button and advertise with +1 address and this will cause the nRF Toolbox and nRF Connect not recognize the bootloader.&lt;/p&gt;
&lt;p&gt;The solution is to either remove the +1 (make sure to enable Service changed characteristic) or to modify the DFU library so that it also look for address+1 after a timeout if it couldn&amp;#39;t find the bootloader at the same address.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59110?ContentTypeID=1</link><pubDate>Thu, 04 Aug 2016 11:55:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4bf613b1-6ba8-4103-a025-b993679e2ee7</guid><dc:creator>seajayshore</dc:creator><description>&lt;p&gt;Correct!&lt;/p&gt;
&lt;p&gt;My app + my bootloader requires me to manually start the DFU bootloader (by writing something to the ControlPoint provided in the application code) and then reconnecting to the new DfuTarg (now with a new DeviceID on iOS) then nRF Toolbox can update DFU OK. If I start the process from nRF Toolbox then it gets stuck at &amp;quot;enabling dfu mode...&amp;quot; where I think it&amp;#39;s trying to find the new DfuTarg...&lt;/p&gt;
&lt;p&gt;When using the HRM_DFU example and &lt;em&gt;either&lt;/em&gt; the SDK-example DFU bootloader &lt;em&gt;or&lt;/em&gt; my slightly modified version of the example, nRF Toolbox completes without a problem. But in this case the DeviceID doesn&amp;#39;t change between app-&amp;gt;bootloader, so perhaps nRF Toolbox is not handling the DeviceID change ok...&lt;/p&gt;
&lt;p&gt;Yes, I&amp;#39;ll make a new issue shortly if you think it&amp;#39;d be best.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59109?ContentTypeID=1</link><pubDate>Thu, 04 Aug 2016 11:30:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e6e6013-805d-4806-ac26-ceefa1d12362</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Chris: Please correct me if I&amp;#39;m wrong, the problem you have now is that when the bootloader start, it change the address by +1 and the nRFToolbox or NRFConnect doesn&amp;#39;t want to connect to that bootloader automatically ?&lt;/p&gt;
&lt;p&gt;But you still can manually connect to the bootloader and do DFU update ?&lt;/p&gt;
&lt;p&gt;Do you have the same issue when testing with our stock bootloader example and HRM_DFU example in the SDK ?&lt;/p&gt;
&lt;p&gt;I think we many need to create a new question (case) to described the issue more clear.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59106?ContentTypeID=1</link><pubDate>Thu, 04 Aug 2016 10:42:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32f610a8-53f5-445f-b667-31dd92b85071</guid><dc:creator>seajayshore</dc:creator><description>&lt;p&gt;The bootloader I&amp;#39;m compiling &amp;amp; using is a very slighty changed version of the SDK v10 DFU example for S110. I&amp;#39;m only changing the way LEDs are turned on/off &amp;amp; avoiding using a button.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also now added the revision characteristic to my application with value 0x0100 as it wasn&amp;#39;t there before. nRF Connect reads this number/version correctly&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also made sue the IS_SRVC_CHANGED_CHARACT_PRESENT parameter is set to 1 in both app &amp;amp; bootloader and is setting-up the service-changed characteristic OK.
When uploading with nRF Connect I never actually see an update/indicate on this characteristic however... maybe this indicates a problem? But the example Heartrate in SDK does exactly the same...&lt;/p&gt;
&lt;p&gt;I think my problem is a difference in how mbed DFUService calls the bootloader. It never uses the ble_dfu_on_ble_evt function and uses dfu_app_on_dfu_evt instead... Don&amp;#39;t know what the difference is.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59107?ContentTypeID=1</link><pubDate>Thu, 04 Aug 2016 09:11:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d11c67a7-0be8-43f1-b321-64f70241e055</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Chris Shaw: I&amp;#39;m sure it&amp;#39;s the way it worked with our DFU bootloader in the SDK. However I&amp;#39;m not so sure about the mbed bootloader. Note that there is a requirement on the DFU revision value, on the bootloader it should be DFU_REV_MINOR = 0x08 and on the application  DFU_REV_MINOR = 1.&lt;/p&gt;
&lt;p&gt;I would need to &lt;a href="https://www.nordicsemi.com/eng/Products/Bluetooth-Smart-Bluetooth-low-energy/nRF-Sniffer/"&gt;a sniffer trace&lt;/a&gt; to be able to tell what happens exactly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59105?ContentTypeID=1</link><pubDate>Wed, 03 Aug 2016 17:00:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8cb2085f-a33d-4307-b787-4bf095aa25f3</guid><dc:creator>seajayshore</dc:creator><description>&lt;p&gt;Perhaps my issue comes from the way the mbed BLE_API calls the bootloader:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;            // Call bootloader_start implicitly trough a event handler call
        // it is a work around for bootloader_start not being public in sdk 8.1
        ble_dfu_t p_dfu;
        ble_dfu_evt_t p_evt;

        p_dfu.conn_handle = params-&amp;gt;connHandle;
        p_evt.ble_dfu_evt_type = BLE_DFU_START;

        dfu_app_on_dfu_evt(&amp;amp;p_dfu, &amp;amp;p_evt);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Seems the peer_data never really gets passed...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59104?ContentTypeID=1</link><pubDate>Wed, 03 Aug 2016 16:42:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:14caddc8-fee1-4865-a0be-d5dda24ec217</guid><dc:creator>seajayshore</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thanks for the detailed reply. Two main questions if you can:&lt;/p&gt;
&lt;p&gt;From your advice &amp;amp; link to the FAQ I&amp;#39;ve reverted my bootloader code so the default &amp;quot;address + 1&amp;quot; behaviour still occurs. Can you confirm that leaving this address incrementing is the best approach to ensure Android compatibility?&lt;/p&gt;
&lt;p&gt;Are you sure the nRF Toolbox app works with this address increase?? It just hangs at &amp;quot;enabling DFU bootloader&amp;quot; at the moment on the iOS app version... I&amp;#39;ll try nRF Connect to double check.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59103?ContentTypeID=1</link><pubDate>Wed, 03 Aug 2016 11:22:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ad711e74-b015-4bd7-a613-bcb64bc57e90</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;It has been a long cases and I&amp;#39;m not sure which question has already been solved and which is still pending. But I can provide some information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If the device is not bonded to a central, when it switch to bootloader, we will try to advertise when in bootloader mode with Address + 1. This is explained at question I &lt;a href="https://devzone.nordicsemi.com/blogs/685/common-faq-on-dfu/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The nRFToolbox app or the nRF Connect should be able to automatically detect this and connect to the +1 address.
&lt;strong&gt;[UPDATE]This is wrong, nRFToolbox and nRFConnect now only look for same address not the +1 address.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the peer_data is the bonding information and central address that we pass from the application to the bootloader so that the phone can rebond when the bootloader is running. This is also explained in the FAQ linked above.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We call the current DFU &amp;quot;Legacy DFU&amp;quot; because of the new more secured DFU is coming in SDK v12 very soon. Unfortunately, it&amp;#39;s not backward compatible.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59114?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 15:28:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2604f710-fbf6-4c7b-93e3-6c8ed95f7e1c</guid><dc:creator>seajayshore</dc:creator><description>&lt;p&gt;So, because of using mbed code to call the DFU-bootloader via the BLE_API (mbed API) it seemed difficult/confusing to use Ray&amp;#39;s fix above, but I think it&amp;#39;s essentially the same root cause. Something unusual about the way the mbed code starts the Dfu-bootloader and some params are lost/not-communicated and then dfu_ble_peer_data_get() fails etc. (see Ray&amp;#39;s comment 2nd from top).&lt;/p&gt;
&lt;p&gt;My bodge that has worked was to change the line 1073 in the DFU boot loader code: &lt;code&gt;addr.addr[0] += 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;to: &lt;code&gt;addr.addr[0] += 0;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This allows the boot loader to run through all the same checks, fail to find params, but will not increment the MAC address therefore allowing iOS to find the same &amp;quot;device ID&amp;quot; again (which is assigned by iOS not the firmware).&lt;/p&gt;
&lt;p&gt;It&amp;#39;s a bodge, but this is more-or-less done in the mbed-sanctioned modified boot loader you can find on the mbed github.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59119?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 10:57:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8da006f4-e971-4525-aef2-1c45ecc13874</guid><dc:creator>seajayshore</dc:creator><description>&lt;p&gt;Hi, I was just about to ask a question about this same problem! Looks like it&amp;#39;s maybe a recent nuisance??&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using SDK v10 (as my app is part mBed based) and I see the same problem.&lt;/p&gt;
&lt;p&gt;Using nRF Toolbox I start a DFU upload and it hangs at &amp;quot;Enabling DFU bootloader...&amp;quot;. I&amp;#39;ve found that if I then kill &amp;amp; re-launch the nRF Toolbox app and upload to the newly-advertising &amp;quot;DfuTarg&amp;quot; it uploads fine. I guess nRF Toolbox is storing some info on the old DFUService and getting confused when it updates to the DfuTarg version.&lt;/p&gt;
&lt;p&gt;I can also successfully upload after having &amp;quot;manually&amp;quot; started the DFU process by writing a byte to the DFU Control Point (using the iOS app LightBlue Explorer) and then going to nRF Toolbox and uploading to the newly-advertised DFUTarg device...&lt;/p&gt;
&lt;p&gt;@Ray I&amp;#39;ll attempt to implement your fix and see if that works if I can&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59118?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 07:31:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5550590-15c9-4204-b26b-b67def952e72</guid><dc:creator>Ray</dc:creator><description>&lt;p&gt;PROBLEM SOLVED - at least for me.&lt;/p&gt;
&lt;p&gt;Simple description:  In my app&amp;#39;s ble_evt_dispatch(), I neglected to add a call to dm_ble_evt_handler() when I was inserting the DFU code.  Here&amp;#39;s the longer explanation:&lt;/p&gt;
&lt;p&gt;void ble_evt_dispatch(ble_evt_t *p_ble_evt) {&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Make sure that we process DM events, else connections won&amp;#39;t be registered with DM.  
// The most significant result of this is that DFU won&amp;#39;t work; it won&amp;#39;t leave an &amp;quot;Enabling...&amp;quot; state.                                   
// because the DM needs to be looked up.  Call stack:                                                                                   
// dfu_app_on_dfu_evt(), when evt_type == BLE_DFU_START                                                                                 
//  bootloader_start(p_dfu-&amp;gt;conn_handle), which is valid                                                                                
//   dfu_app_peer_data_set(conn_handle), which is supposed to set peer_data                                                             
//    dm_handle_get(conn_handle, &amp;amp;m_dm_handle), ...                                                                                     
//      looks up handle in connection table associated with dm_                                                                         
// ...so where does it get put INTO this connection table?                                                                              
//  dm_ble_evt_handler(p_ble_evt) is supposed to be called by your own ble_evt_dispatch                                                 
//   BLE_GAP_EVT_CONNECTED adds it.                                                                                                     
// The bug was that I failed to have this call to dm_ble_evt_handler() in my ble_evt_dispatch.                                          

dm_ble_evt_handler(p_ble_evt);
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59117?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 05:28:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b70dc332-5301-4897-a739-45bf8c47f45a</guid><dc:creator>Richard</dc:creator><description>&lt;p&gt;This is my first time doing a DFU app also unfortunately.&lt;/p&gt;
&lt;p&gt;This page in the docs covers the bonding setup though: &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v11.0.0%2Fbledfu_appbonding.html&amp;amp;cp=6_0_0_4_3_1_2_3"&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: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59116?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 04:56:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa847fa6-7fe2-4287-84fa-2bcf47436a61</guid><dc:creator>Ray</dc:creator><description>&lt;p&gt;That is truly fascinating.  Let me explain something else that I&amp;#39;ve found, and perhaps you might have an explanation for this:&lt;/p&gt;
&lt;p&gt;I got the most basic hrs app running with identical softdevice/bootloader/etc, and interestingly it got past the Enabling step and well into downloading - which gave me something to A/B test against.&lt;/p&gt;
&lt;p&gt;What I found was that when using the hrs example, in dfu_transport_update_start() in dfu_transport_ble.c, the behavior was different between HRS and my app.&lt;/p&gt;
&lt;p&gt;In HRS, the call to dfu_ble_peer_data_get() returns SUCCESS.  The &amp;quot;peer_data&amp;quot; is apparently valid.&lt;/p&gt;
&lt;p&gt;In my app, that call returns an error, and thus, as you say, it falls into the code that bumps the address by one.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve never done a DFU app before, and so what I&amp;#39;ve been trying to do for the past hour or so is to figure out what this &amp;quot;peer data&amp;quot; is, and how it gets initialized.&lt;/p&gt;
&lt;p&gt;Any further thoughts?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59115?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 02:34:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fac1213d-2489-43bf-92e9-cf3ce710bcc7</guid><dc:creator>Ray</dc:creator><description>&lt;p&gt;I have exactly this behavior also.  It times out, and then resets/restores.  Sigh.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59113?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 02:24:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bb07d7ac-6d62-4d86-b6d9-eb074fe2c70a</guid><dc:creator>Richard</dc:creator><description>&lt;p&gt;It&amp;#39;s not very helpful, but I&amp;#39;m running into this currently too.&lt;/p&gt;
&lt;p&gt;DFUPeripheral.swift just calls connect() which does:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;centralManager.connectPeripheral(peripheral!, options: nil)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;from the centralManager didDisconnectPeripheral callback when it is disconnected after jumping into the bootloader.&lt;/p&gt;
&lt;p&gt;iOS however never succeeds at reconnecting to the device (it is advertising and can be connected to however) until the DFU times out and the device resets itself again, restoring the application to running.&lt;/p&gt;
&lt;p&gt;Update 1: Looking at the addresses of the device from nRF Connect from an Android device while running the app vs running the bootloader, the address is changing: xx:xx:xx:xx:xx:xC in the app vs xx:xx:xx:xx:xx:xD in the bootloader. iOS won&amp;#39;t be connecting because it thinks it&amp;#39;s a different device.&lt;/p&gt;
&lt;p&gt;I did see something in the iOS source about handling this situation for SD updates, but that code was literally &amp;quot;eh the address will have changed, so just use the first device found that exposes a DFU service&amp;quot; - not exactly something I&amp;#39;m willing to put into production code.&lt;/p&gt;
&lt;p&gt;Update 2: Here&amp;#39;s some explanations of what is happening and why:
&lt;a href="https://devzone.nordicsemi.com/question/37060/dfu-device-address-changes/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;
&lt;a href="https://devzone.nordicsemi.com/question/67844/why-does-nordic-increase-the-ble-mac-address-by-one-in-dfu-bootloader/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Disabling the half-dozen lines from the first link in dfu_transport_update_start() in dfu_transport_ble.c in the bootloader has resolved my issues - DFU is now working on iOS! I&amp;#39;m not using an encrypted link at this stage, so it is not an issue. From those links and the code, it looks like we should use bonded connections and set them up so that the bond information is shared with the bootloader in the long term.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: No transport to DfuTarg observed after "Enabling DFU Bootloader..."</title><link>https://devzone.nordicsemi.com/thread/59112?ContentTypeID=1</link><pubDate>Tue, 02 Aug 2016 01:13:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:54617321-0946-4f77-a413-1d811b0ca5db</guid><dc:creator>Ray</dc:creator><description>&lt;p&gt;More info from xcode.  If someone can spot something it would be appreciated.  Basically, it is jumping just fine into the bootloader, and then the iOS app fails to reconnect to the peripheral.  Of course, by the time it reconnects to the peripheral, there is a different service name (DfuTarg) and primary service UUID.  Still trying to poke through the iOS code to see how it locates the peripheral under the now-different (1530) primary service UUID.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Aug  1 17:51:08 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Connecting to Teletype...
Aug  1 17:51:08 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: centralManager.connectPeripheral(peripheral, options:nil)
Aug  1 17:51:09 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: [Callback] Central Manager did connect peripheral
Aug  1 17:51:09 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 5: Connected to Teletype
Aug  1 17:51:09 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Discovering services...
Aug  1 17:51:09 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: periphera.discoverServices(nil)
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 5: Services discovered
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: DFU Service found
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Discovering characteristics in DFU Service...
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: peripheral.discoverCharacteristics(nil, forService:DFUService)
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 5: DFU characteristics discovered
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Reading DFU Version number...
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: peripheral.readValueForCharacteristic(00001534-1212-EFDE-1523-785FEABCD123)
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 5: Read Response received from 00001534-1212-EFDE-1523-785FEABCD123, value (0x):0100
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 10: Version number read: 0.1
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Enabling notifiactions for 00001531-1212-EFDE-1523-785FEABCD123...
Aug  1 17:51:10 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: peripheral.setNotifyValue(true, forCharacteristic: 00001531-1212-EFDE-1523-785FEABCD123)
Aug  1 17:51:11 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Notifications enabled for 00001534-1212-EFDE-1523-785FEABCD123
Aug  1 17:51:11 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 10: DFU Control Point notifications enabled
Aug  1 17:51:11 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 15: Application with buttonless update found
Aug  1 17:51:11 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Writing to characteristic 00001531-1212-EFDE-1523-785FEABCD123...
Aug  1 17:51:11 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: peripheral.writeValue(0x0104, forCharacteristic: 00001531-1212-EFDE-1523-785FEABCD123, type: WithResponse)
Aug  1 17:51:11 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 5: Data written to 00001531-1212-EFDE-1523-785FEABCD123
Aug  1 17:51:11 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 10: Jump to bootloader (Op Code = 1, Upload Mode = 4) request sent
Aug  1 17:51:12 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: [Callback] Central Manager did disconnect peripheral
Aug  1 17:51:12 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 5: Disconnected by the remote device
Aug  1 17:51:12 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 1: Connecting to Teletype...
Aug  1 17:51:12 Rays-IPhone-6s nRF Toolbox[896] &amp;lt;Warning&amp;gt;: 0: centralManager.connectPeripheral(peripheral, options:nil)
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>