<?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 process for NRF52840 using UART in SDK 17.1, button less DFU</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/95200/dfu-process-for-nrf52840-using-uart-in-sdk-17-1-button-less-dfu</link><description>Hi, I want DFU the NRF52840 using the UART. Please let me know the following quires . 
 Process- 
 
 I want to create two partition of memory one will store the my main application code and another partition will only store the custom bootloader code</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 29 Dec 2022 08:51:33 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/95200/dfu-process-for-nrf52840-using-uart-in-sdk-17-1-button-less-dfu" /><item><title>RE: DFU process for NRF52840 using UART in SDK 17.1, button less DFU</title><link>https://devzone.nordicsemi.com/thread/402496?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2022 08:51:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f2977e1-1b21-4769-92ad-30a8c1dca5b0</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Sarvesh,&amp;nbsp;&lt;br /&gt;As I mentioned, the integrity of the application image is checked using CRC and hash. Please have a look &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_bootloader_dfu_validation.html?cp=8_1_3_5_1_1"&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Only after the image is verified as it&amp;#39;s been received correctly it then will be used to replace the original image.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t have any button to enter DFU mode, you can use buttonless solution. I explained a little bit about it &lt;a href="https://devzone.nordicsemi.com/guides/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader#h75sjziavjbukzaywg6xlx19np0fm4"&gt;here&lt;/a&gt;. You can find the example in&amp;nbsp;\examples\ble_peripheral\ble_app_buttonless_dfu and the documentation about it &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/service_dfu.html?cp=8_1_3_3_5"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You don&amp;#39;t need to modify the application&amp;#39;s .ld file. Just need to flash the bootloader it works transparently to the application.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU process for NRF52840 using UART in SDK 17.1, button less DFU</title><link>https://devzone.nordicsemi.com/thread/402489?ContentTypeID=1</link><pubDate>Thu, 29 Dec 2022 06:34:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:249aa307-2ced-496c-8fd0-250a927903df</guid><dc:creator>Sarvesh</dc:creator><description>&lt;p&gt;Thanks for reply&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/95200/dfu-process-for-nrf52840-using-uart-in-sdk-17-1-button-less-dfu/402436"]Have you tested without bootloader solution&amp;nbsp; ? The example is located at&amp;nbsp;\examples\dfu\secure_bootloader&amp;nbsp;&lt;br /&gt;You can find the documentation about the DFU bootloader &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_bootloader_modules.html?cp=8_1_3_5"&gt;here.&lt;/a&gt;[/quote]
&lt;p&gt;Yes I have looked into it.&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/95200/dfu-process-for-nrf52840-using-uart-in-sdk-17-1-button-less-dfu/402436"]The only thing missing, and in my opinion, hard to achieve is on how to know if the application is failed to rollback to the bootloader. How would the bootloader knows that the application is not working as it expected ? The integrity of the application image can be checked by CRC and hash but the bootloader has no way to know if the application is operate correctly or not. I would assume this should be tested before you release the new image.&amp;nbsp;[/quote]
&lt;p&gt;Sorry for the misunderstanding I want to check the integrity of the Application Image only, in case of any bytes get altered while transmission or storing.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
[quote userid="2121" url="~/f/nordic-q-a/95200/dfu-process-for-nrf52840-using-uart-in-sdk-17-1-button-less-dfu/402436"]However, it&amp;#39;s still possible to jump to the bootloader&amp;nbsp;in case the application is failed. By default you can enter DFU mode by holding a button when reset.&amp;nbsp;[/quote]
&lt;p&gt;Here is the problem for me I do not have this facility to holding a button when reset because I will not be able to access the NRF52840 physically. So please suggest me ,Is there any other way to Goto Bootloader mode incase application fails ?&lt;/p&gt;
[quote userid="120418" url="~/f/nordic-q-a/95200/dfu-process-for-nrf52840-using-uart-in-sdk-17-1-button-less-dfu"]Do I have to make changes in .ld files of Application code and Bootloader code ?[/quote]
&lt;p&gt;Do I have to do that also ? or memory related changes&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU process for NRF52840 using UART in SDK 17.1, button less DFU</title><link>https://devzone.nordicsemi.com/thread/402436?ContentTypeID=1</link><pubDate>Wed, 28 Dec 2022 12:42:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c351b18-4d46-482d-88f6-700a044d9713</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Sarvesh,&lt;/p&gt;
&lt;p&gt;Have you tested without bootloader solution&amp;nbsp; ? The example is located at&amp;nbsp;\examples\dfu\secure_bootloader&amp;nbsp;&lt;br /&gt;You can find the documentation about the DFU bootloader &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_bootloader_modules.html?cp=8_1_3_5"&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The bootloader can do pretty much what you listed. You can read about the DFU process and the memory layout &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_bootloader_dfu_banks.html?cp=8_1_3_5_1_2"&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The only thing missing, and in my opinion, hard to achieve is on how to know if the application is failed to rollback to the bootloader. How would the bootloader knows that the application is not working as it expected ? The integrity of the application image can be checked by CRC and hash but the bootloader has no way to know if the application is operate correctly or not. I would assume this should be tested before you release the new image.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, it&amp;#39;s still possible to jump to the bootloader&amp;nbsp;in case the application is failed. By default you can enter DFU mode by holding a button when reset.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have made a blog about how to test the bootloader &lt;a href="https://devzone.nordicsemi.com/guides/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader"&gt;here&lt;/a&gt;. I would highly recommend to go through and get familiar to the bootloader before you move to anything mode advanced.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>