<?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>Secure DFU</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/53772/secure-dfu</link><description>Hello, 
 
 I have a problem in the step of Secure DFU. I use nRF connect application to connect the BMD-350-EVAL and when i selected the device and start scan the &amp;quot;DfuTarg&amp;quot; doesn&amp;#39;t appear in the Discovered devices. 
 I hope a feedback to solve this issue</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 13 Feb 2020 07:21:35 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/53772/secure-dfu" /><item><title>RE: Secure DFU</title><link>https://devzone.nordicsemi.com/thread/234099?ContentTypeID=1</link><pubDate>Thu, 13 Feb 2020 07:21:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f7911f01-2d7c-4075-addf-7fd105fd46b4</guid><dc:creator>soratks</dc:creator><description>&lt;p&gt;Found what I was missing on. After step 11, we need to enter into DFU mode&amp;nbsp;by pressing button 4 on startup.&lt;/p&gt;
&lt;p&gt;Thanks Andreas for detailed steps!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU</title><link>https://devzone.nordicsemi.com/thread/234095?ContentTypeID=1</link><pubDate>Thu, 13 Feb 2020 07:09:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6926756b-c63c-4053-992c-cb1006b71077</guid><dc:creator>soratks</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;span&gt;Andreas,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks for the detailed steps. I followed the same for nRF52840 SDK15.3. I am not able to see the advertising on the nRFconnect mobile application. Below is the output for programming&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;br /&gt;D:\1_Projects\DFU_Exploring\hex_flash&amp;gt;nrfutil pkg generate --hw-version 52 --application-version 3 --application peripheral.hex --sd-req 0xB6 --key-file private.key app_dfu_package.zip&lt;br /&gt;Zip created at app_dfu_package.zip&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;D:\1_Projects\DFU_Exploring\hex_flash&amp;gt;nrfjprog.exe -e&lt;br /&gt;Erasing user available code and UICR flash areas.&lt;br /&gt;Applying system reset.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;D:\1_Projects\DFU_Exploring\hex_flash&amp;gt;nrfjprog.exe --program s140_nrf52_6.1.1_softdevice.hex --verify&lt;br /&gt;Parsing hex file.&lt;br /&gt;Reading flash area to program to guarantee it is erased.&lt;br /&gt;Checking that the area to write is not protected.&lt;br /&gt;Programming device.&lt;br /&gt;Verifying programming.&lt;br /&gt;Verified OK.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;D:\1_Projects\DFU_Exploring\hex_flash&amp;gt;nrfjprog.exe --program my_bootloader.hex --verify -r&lt;br /&gt;Parsing hex file.&lt;br /&gt;Reading flash area to program to guarantee it is erased.&lt;br /&gt;Checking that the area to write is not protected.&lt;br /&gt;Programming device.&lt;br /&gt;Verifying programming.&lt;br /&gt;Verified OK.&lt;br /&gt;Applying system reset.&lt;br /&gt;Run.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;Please find the output on RTT-Viewer below.&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;00&amp;gt; &amp;lt;info&amp;gt; app: Inside main&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: In nrf_bootloader_init&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Calling nrf_dfu_settings_init()...&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Using settings page.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Copying forbidden parts from backup page.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; nrf_dfu_settings: Old settings page detected. Upgrading info.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Writing settings...&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Erasing old settings at: 0x000FF000&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FF000, len=1 pages), queue usage: 0&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: Flash erase success: addr=0x000FF000, pending 0&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x000FF000, src=0x20007D90, len=896 bytes), queue usage: 1&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x000FF000, pending 0&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Writing settings...&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Erasing old settings at: 0x000FE000&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FE000, len=1 pages), queue usage: 1&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: Flash erase success: addr=0x000FE000, pending 0&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x000FE000, src=0x20008110, len=896 bytes), queue usage: 1&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x000FE000, pending 0&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: Enter nrf_bootloader_fw_activate&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; app: No firmware to activate.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_validation: CRC check of app failed. Return 1&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: App is valid&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: Running nrf_bootloader_app_start with address: 0x00001000&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: Disabling interrupts. NVIC-&amp;gt;ICER[0]: 0x0&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; app: Inside main&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: In nrf_bootloader_init&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Calling nrf_dfu_settings_init()...&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Using settings page.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Copying forbidden parts from backup page.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: Enter nrf_bootloader_fw_activate&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; app: No firmware to activate.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_validation: CRC check of app failed. Return 1&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: App is valid&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: Running nrf_bootloader_app_start with address: 0x00001000&lt;br /&gt;00&amp;gt; &lt;br /&gt;00&amp;gt; &amp;lt;debug&amp;gt; app: Disabling interrupts. NVIC-&amp;gt;ICER[0]: 0x0&lt;br /&gt;00&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Can you please help me find out what I am missing on.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Ramya&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU</title><link>https://devzone.nordicsemi.com/thread/217322?ContentTypeID=1</link><pubDate>Tue, 29 Oct 2019 12:26:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3b07252-75c8-4101-8d94-9de86bbb8505</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;Are you sure that you&amp;#39;ve programmed the device correctly?&lt;br /&gt;&lt;br /&gt;Please follow all these steps, and paste the output of all you do.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Generate a private key by running this command in cmd in your SDK 15.3 folder:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;nrfutil keys generate priv.pem&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Generate a public key file from that private key by running this command in cmd in your SDK 15.3 folder:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;You should now have a file named dfu_public_key.c in your SDK 15.3 folder.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Open the folder nRF5_SDK_15.3.0_59ac345\examples\dfu&lt;br /&gt;&lt;br /&gt;You see that there is a file named dfu_public_key.c, delete this file.&lt;br /&gt;&lt;br /&gt;Take the file you generated in step 2 and move it to this folder.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 4.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Open up the SES project in the folder nRF5_SDK_15.3.0_59ac345\examples\dfu\secure_bootloader\pca100: _ble_debug and build it in your preferred IDE.&lt;br /&gt;&lt;br /&gt;After you have built it the folders: \Output\Release\Exe will appear in the folder structure. Open these folders and copy the file named secure_bootloader_ble_s132_pca10040.hex to your SDK 15.3 folder. This is the .hex file for the secure bootloader you have created. (If you for example use Segger Embedded Studio)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 5.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Open the folder nRF5_SDK_15.3.0_59ac345\components\softdevice\s132\hex, and copy the .hex file s132_nrf52_6.1.1_softdevice.hex to your SDK 15.3 folder.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 6.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Create an application, for example the ble_app_bms example, and copy the .hex file as you did for the bootloader to your SDK 15.3 folder (you find the .hex file in nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_bms\pca10040\s132\ses\Output\Release\Exe, named ble_app_bms_pca10040_s132.hex, if you use Segger Embedded Studio)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 7.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Generate a bootloader settings page by running this command in cmd in your SDK 15.3 folder:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;nrfutil settings generate --family NRF52840 --application ble_app_bms_pca10040_s132.hex --application-version 3 --bootloader-version 2 --bl-settings-version 1 settings.hex&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The output looks like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 8.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Merge the settings.hex and secure_bootloader_ble_s132_pca10040.hex together by running this command in cmd in your SDK 15.3 folder:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;mergehex.exe --merge settings.hex secure_bootloader_ble_s132_pca10040.hex --output my_bootloader.hex&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The output looks like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 9.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Generate the DFU packet by running this command in cmd in your SDK 15.3 folder:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;nrfutil pkg generate --hw-version 52 --application-version 3 --application ble_app_bms_pca10040_s132.hex --sd-req 0xB7 --key-file priv.pem app_dfu_package.zip&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The output looks like this:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 10.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You should now have these files in the SDK 15.3 folder:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;app_dfu_package.zip&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;ble_app_bms_pca10040_s132.hex&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;my_bootloader.hex&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;priv.pem&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;s132_nrf52_6.1.1_softdevice.hex&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;secure_bootloader_ble_s132_pca10040.hex&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;settings.hex&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 11.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Open RTT-Viewer and select the board you&amp;#39;re using.&lt;br /&gt;&lt;br /&gt;Open the SDK 15.3 folder in cmd, and write the commands:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;nrfjprog.exe -e&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;nrfjprog.exe --program s132_nrf52_6.1.1_softdevice.hex --verify&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;nrfjprog.exe --program my_bootloader.hex --verify -r&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;You have now programmed the SoftDevice and the Bootloader including the bootloader settings page.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 12.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Open nRF Connect on your mobile phone and scan:&lt;br /&gt;&lt;br /&gt;When you find DfuTarg click on Connect.&lt;br /&gt;&lt;br /&gt;And click on the DFU button and Select distribution packet (ZIP)&lt;br /&gt;&lt;br /&gt;And select the file app_dfu_package.zip.&lt;br /&gt;&lt;br /&gt;After you have finished the device will reset and start advertising as Nordic_BMS&lt;br /&gt;&lt;br /&gt;Does this make things a bit clearer?&lt;br /&gt;&lt;br /&gt;Could you also please post all the output from RTT-Viewer if this does not work?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;&lt;br /&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>