<?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 buttonless with SDK11</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/24428/dfu-buttonless-with-sdk11</link><description>Hi all, 
 I have a custom board with a nRF51 and a DSP connected to eachother (SPI, UART and I2C) and since I have no connection to the nRF directly or any buttons I need to make upgrades on the nRF via serial DFU.
To accomplish this I want to implement</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 28 Aug 2017 09:09:12 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/24428/dfu-buttonless-with-sdk11" /><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96194?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 09:09:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:224ada3e-dd60-4128-8019-169dc74f349b</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;If you plan to use a pin/button to trigger DFU, you don&amp;#39;t have to do anything, the bootloader already supported that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96196?ContentTypeID=1</link><pubDate>Fri, 25 Aug 2017 07:47:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c896f9bd-e56a-4c77-ac1d-e8b01e8641e9</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;I had to rethink on my approach and I am going to implement a pin to trigger the DFU. Thank you for your help on this&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96195?ContentTypeID=1</link><pubDate>Thu, 24 Aug 2017 08:52:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d203bccb-db1a-4c56-80e9-e5db03b66d74</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Retained register will be reset if you trigger the reset pin. Please read the nRF51 Reference Manual chapter 12.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96200?ContentTypeID=1</link><pubDate>Tue, 22 Aug 2017 12:05:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:184bf131-c80a-4791-8cf2-e501d310af5d</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;The retention register (GPREGRET) is only kept if it is a reset from the function NVIC_SystemReset()? Or if it is a trigger on the reset pin this will also behave the same way?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96198?ContentTypeID=1</link><pubDate>Tue, 22 Aug 2017 08:25:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8879b7e3-e89a-4eef-994c-1b338c6aa80e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Have you looked at the code inside bootloader_start() and inside the bootloader ?
You need to set a flag in GPREGRET retention register, before you reset, so the bootloader can check that flag and decide to enter bootloader mode or not:&lt;/p&gt;
&lt;p&gt;err_code = sd_power_gpregret_set(BOOTLOADER_DFU_START);&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96203?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 11:18:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:86e191e0-5b26-45da-9e19-50fa6c69dbc1</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;I think I confused you with my question.
On my project I already have the SD130 and the bootloader (single_bank_serial_130 with a few changes). I can download my application via HCI when I have only the SD130 and BL, but if I have my app already running I cannot download a new one.&lt;/p&gt;
&lt;p&gt;I thought I had to trigger something on my app to go to the bootloader after receiving the start packet to accomplish this.&lt;/p&gt;
&lt;p&gt;I reset the board (using the reset pin) but it always goes to the application on the bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96207?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 10:57:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9c47afcc-e47f-4479-8648-e4a661ef03c5</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Have you looked at the DFU project folder ? I attached in my answer above the path to the serial dfu project.&lt;/p&gt;
&lt;p&gt;The 0xC0 is the start/stop byte , it&amp;#39;s according to the BluetoothSpec on HCI standard. Please have a look at the documentation that I pointed to above.&lt;/p&gt;
&lt;p&gt;I strongly suggest you to test and study the bootloader before you start modifying or developing your own bootloader. It&amp;#39;s a pretty complex project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96199?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 09:47:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32da6b40-de66-4b25-bf7e-1ba9b816d23c</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;The HCI (UART) example that you mentioned is it on the SDK? I couldn&amp;#39;t find it there, I only found the &amp;quot;hci_dfu_send_hex&amp;quot; that contains the hex files to be loaded to the boards.&lt;/p&gt;
&lt;p&gt;I have checked the the website that you linked and from what I saw the command sequence begins then with &lt;code&gt;0xC0&lt;/code&gt; can I assume that this is the Command Id for the dfu transfer?&lt;/p&gt;
&lt;p&gt;And I have to send the 4 packets (start, init, data and stop)?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96206?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 09:01:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:89b2ea95-b175-429f-95c2-e445fdbe641d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;We have &lt;a href="https://github.com/NordicSemiconductor/nrf51-dfu-spi-slave"&gt;another example&lt;/a&gt; with SPI that you may have a look.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96205?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 08:55:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3774b48b-84e4-4fe7-81f2-60cb9056c526</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;It is over I2C, the OTA will be added in the future, replacing the I2C. I will check the example then, thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96204?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 08:53:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9550e03b-004d-4b95-b74e-c2b146f817f5</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Are you planing to use BLE to do OTA DFU  ? Or you going to use I2C ? We have &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v11.0.0/bledfu_transport_serial.html?cp=4_0_6_4_3_1_4_2"&gt;HCI(UART) bootloader&lt;/a&gt; example in the SDK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96197?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 07:47:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6572a55e-5318-4c2f-a687-c0c509ef87eb</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;Thank you for the help!
I have managed to change the bootloader_start() for our application.&lt;/p&gt;
&lt;p&gt;My only problem now is that I don&amp;#39;t know where to call it.
I use a tool that sends the data over I2C so I think I need to call it from the I2C parser, but I don&amp;#39;t know if it is generic command ID/sequence? Is there any example of dfu over hci?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96202?ContentTypeID=1</link><pubDate>Fri, 18 Aug 2017 08:00:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f18b2dbf-6101-4858-9e46-a75002605848</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;If you want to share bond, you need to use device manager. But if you simply want to switch to bootloader from your application, you can just follow what we did in bootloader_start() in dfu_app_handler.c to implement in your application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96201?ContentTypeID=1</link><pubDate>Thu, 17 Aug 2017 12:40:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c07202cc-52e3-43a1-96e5-d50080ab4cd3</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;This example uses the device manager, Is there any example without this? Since I have started with the bla_app_nus example and it doesn&amp;#39;t use the device manager functionality.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96208?ContentTypeID=1</link><pubDate>Thu, 17 Aug 2017 11:18:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:222b9b0c-80e1-4c01-a842-fc4138fa15b6</guid><dc:creator>Jorge</dc:creator><description>&lt;p&gt;I read somewhere that there was an example on the SDK11 but I wasn&amp;#39;t finding it. I will check this then. Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU buttonless with SDK11</title><link>https://devzone.nordicsemi.com/thread/96193?ContentTypeID=1</link><pubDate>Thu, 17 Aug 2017 10:59:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:61cb4971-dfd2-4658-b62e-c99f670cbc7e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jorge,&lt;/p&gt;
&lt;p&gt;It&amp;#39;s always suggested to use the latest SDK. But if you want to use SDK v11 , you can find the buttonless example in \examples\ble_peripheral\ble_app_hrs\pca10028\s130_with_dfu&lt;/p&gt;
&lt;p&gt;Documentation is on info center as well.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/DFUSDK11.PNG" alt="image description" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>