<?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>Getting error &amp;quot;DFU characteristic not found&amp;quot;</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/64618/getting-error-dfu-characteristic-not-found</link><description>Dear 
 I am try to perform an OTA operation on a dongle of nrf52840 by ble_app_blinky for PCA10059 project and light-switch server for PCA10059 project, which works well on the PCA10059. 
 For the OTA operation, I have a Android smart phone with nRF toolbox</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 06 Nov 2020 02:05:30 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/64618/getting-error-dfu-characteristic-not-found" /><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/278693?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 02:05:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d1a45b33-88df-4f4e-ab18-7dff2d75557f</guid><dc:creator>cor10</dc:creator><description>&lt;p&gt;Thank you Edvin. I&amp;nbsp;finally understand what you mean. It took me a while to grasp the concept but your explanation really helped me becuase now I should be able to at least debug it properly! Sorry for not creating a new ticket on this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/278647?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 15:15:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7eaa0c00-b723-4418-9371-6e49910655cc</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;You should attach the debugger from the Segger Embedded Studio project running your application (the one that you udpdate to using nRF Connect for iOS. It has to do with what addresses the project is looking at. If the bootloader starts the application this is outside the bootloader project, so the bootloader project doesn&amp;#39;t know how to handle it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="cor10"]I realize maybe I am making a mistake by not also sending the bootloader and softdevice and bootloader settings along with it.[/quote]
&lt;p&gt;&amp;nbsp;No need to do that.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="cor10"].I didnt implement this part because I assumed it was extra/optional&amp;nbsp;as I am able to run the default Buttonless DFU app by just sending only the application image via nRF Connect.[/quote]
&lt;p&gt;&amp;nbsp;It is optional, but useful for debugging. If you do this, you don&amp;#39;t have to perform the DFU every time you want to change something in your application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Create a file called test.bat that does this for you, so you can just run it from a cmd window. It should look something like this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;:: compile bootloader and application:
make -C &amp;lt;bootloader_makefile_folder_path&amp;gt;
make -C &amp;lt;application_makefile_folder_path&amp;gt;

nrfutil settings generate &amp;lt;options&amp;gt; settings.hex

nrfjprog -e
nrfjprog --program &amp;lt;softdevice&amp;gt;.hex --verify
nrfjprog --program bootloader.hex --verify
nrfjprog --program application.hex --verify
nrfjprog --program settings.hex --verify

nrfjprog --reset&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You can compile using SES if you prefer that instead of the makefiles.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you need help to generate the bootloader settings, use &amp;quot;nrfutil settings generate --help&amp;quot; or see the link from my previous reply.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="cor10"]Do I need to be sending&amp;nbsp;a merged bootloader/softdevice/application/settings hex image as a combination if I want my custom Buttonless DFU app to run correctly? I am also a little confused as to what the bootloader settings are used for exactly.[/quote]
&lt;p&gt;&amp;nbsp;The bootloader settings are not used to generate an application image. It is used if you want to flash the application directly using the programmer when a bootloader is present. The settings contains a signature that makes the bootloader accept the image. If you try to flash an application and the bootloader without settings, you will see that the application is not starting, because the signature is not present. The signature is generated automatically by the bootloader when you perform the DFU.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This has nothing to do with the original title of this ticket. Please create a new ticket.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/278568?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 10:56:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:33efb29c-73e6-432b-ab40-7c3e691bcc5d</guid><dc:creator>cor10</dc:creator><description>&lt;p&gt;Thanks for the reply Edvin. I&amp;nbsp;will make a new ticket and summarize my set up and my bug in more detail, but I have a couple things Id like to mention before doing so to hopefully make it as good of a ticket as possible.&lt;/p&gt;
&lt;p&gt;The way I am currently attaching the debugger is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;nbsp;open&amp;nbsp;the DFU secure bootloader example code from the nrf sdk, build it, and download it to my device using the Segger Embedded Studio IDE&lt;/li&gt;
&lt;li&gt;When its on and advertising in DFU mode, I select &amp;quot;Attach Debugger&amp;quot;&lt;/li&gt;
&lt;li&gt;Then I attempt to use the iOS nRF Connect app&amp;nbsp;to write my Buttonless DFU app image .zip package to my device (I use this command &amp;quot;&lt;em&gt;nrfutil pkg generate --hw-version 52 --application-version 1 --application Buttonless_custom.hex --sd-req 0xCB --sd-id 0xCB --key-file private.key Buttonless_custom.zip&lt;/em&gt;&amp;quot; which was described in this tutorial&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader"&gt;https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;From the iPhone app, the Buttonless OTA DFU finishes successfully, yet the Debug Terminal shows nothing and the device never begins advertising my custom Buttonless DFU app.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How would I attach to the bootloader? Whats the difference between attaching the debugger like&amp;nbsp;I have described above and &amp;quot;attaching the debugger to my application project in SES&amp;quot; as you mention?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am sending only the application image .zip package via nRF Connect. I realize maybe I am making a mistake by not also sending the bootloader and softdevice and bootloader settings along with it. There is a section in the Appendix of that tutorial I linked above called &amp;quot;&lt;strong&gt;Combine Application, Bootloader and SoftDevice Image - Bootloader Setting&lt;/strong&gt;&amp;quot;...I didnt implement this part because I assumed it was extra/optional&amp;nbsp;as I am able to run the default Buttonless DFU app by just sending only the application image via nRF Connect. Is&amp;nbsp;this Appendix Section&amp;nbsp;what you mean when telling me to program the&amp;nbsp;&lt;span&gt;bootloader + softdevice + application + bootloader settings?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Do I need to be sending&amp;nbsp;a merged bootloader/softdevice/application/settings hex image as a combination if I want my custom Buttonless DFU app to run correctly? I am also a little confused as to what the bootloader settings are used for exactly.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And yes, my main() function executes ble_dfu_buttonless_async_svci_init(); as one of the first function calls. Thank you for taking your time to help me with these concepts - its much appreciated&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/278434?ContentTypeID=1</link><pubDate>Wed, 04 Nov 2020 12:27:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2c776ef1-9cf6-4b40-93b7-0c181e21144b</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/cor10"&gt;cor10&lt;/a&gt;,&lt;/p&gt;
&lt;p&gt;Disclaimer:&amp;nbsp;&lt;br /&gt;It has been a long time since this ticket was active, and I have not read through the old replies. I&amp;#39;ll answer based on the information from your latest reply, but for follow up questions, you should consider creating a new ticket where you summarize all your present issues.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="cor10"]I dont see any output in the Debug Terminal at all. And when the program halts in the Debugger at the NRF_BREAKPOINT_COND; in the Fault Handler of &amp;quot;app_eroor_weak.c&amp;quot;, I can see that DEBUG is defined. I notice that there is technically some output in the Debug Terminal: about 6 empty lines.[/quote]
&lt;p&gt;&amp;nbsp;What project did you attach the debugger to? The bootloader or the application?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I believe it is the application, based on the rest of your description. What you should do:&lt;/p&gt;
&lt;p&gt;Generate bootloader settings (use nrfutil settings generate --help, and check &lt;a href="https://infocenter.nordicsemi.com/topic/ug_nrfutil/UG/nrfutil/nrfutil_settings_generate_display.html"&gt;this description&lt;/a&gt;) using the application that you want to debug.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Program bootloader + softdevice + application + bootloader settings, and then attach the debugger to your application project in SES.&lt;/p&gt;
&lt;p&gt;add DEBUG to your preprocessor definitions, and disable optimizations*. Remember to re-generate your&amp;nbsp;&lt;strong&gt;&lt;/strong&gt;bootloader settings if whenever you update the application like this, or do any changes to the application code.&lt;/p&gt;
&lt;p&gt;Try to debug, and see where the application fails.&lt;/p&gt;
&lt;p&gt;In your application project, did you remember to include the function:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    err_code = ble_dfu_buttonless_async_svci_init();
    APP_ERROR_CHECK(err_code);&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/278237?ContentTypeID=1</link><pubDate>Tue, 03 Nov 2020 10:41:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e0424402-d8ed-4c8d-81ca-a4097aa23f75</guid><dc:creator>cor10</dc:creator><description>&lt;p&gt;Hello again Edvin,&lt;/p&gt;
&lt;p&gt;I hope you are still able to see this response even after all this time. I have been retasked to figure out whats wrong, so I am resurrecting this thread.&lt;/p&gt;
&lt;p&gt;I dont see any output in the Debug Terminal at all. And when the program halts in the Debugger at the NRF_BREAKPOINT_COND; in the Fault Handler of &amp;quot;app_eroor_weak.c&amp;quot;, I can see that DEBUG is defined. I notice that there is technically some output in the Debug Terminal: about 6 empty lines.&lt;/p&gt;
&lt;p&gt;When I &amp;quot;Attach Debugger&amp;quot;, I am attaching it to the device after the device has been put into DFU mode. To be specific, I&amp;nbsp;flashed the DFU Secure Bootloader example and triggered DFU mode via a push button (I also tested that it could upload a previous application image correctly before putting it in DFU mode again). While its in DFU mode awaiting my new code, I attach the debugger from the SEGGER Embedded Studio IDE. Then from my iPhone, I connect to the device, and start DFU with the prepared HEX code of my own Buttonless_DFU&amp;nbsp;app code (this is a merge of the standard Buttonless DFU app which has been tested and works, along with the BLE UART example code and the TWI sensor code). From the nRF Connect app on my iPhone, the DFU process finishes and I get a little message saying that the DFU was completed successfully. However, my device never starts advertising again, so I cannot connect to it and run the application. I confirm that it is an issue with the Application Code because I am able to put it back into DFU mode and successfully upload a previous Application Image without any issues and it works as expected. So I must be doing something wrong with the merged Buttonless DFU/BLE Uart/TWI Sensor code.&lt;/p&gt;
&lt;p&gt;What else can I do? Is there any other option for me to Debug this? Thank you so much for your help&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/267042?ContentTypeID=1</link><pubDate>Fri, 28 Aug 2020 17:41:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7147f63f-8c38-436d-a29b-a6a7eb1950bd</guid><dc:creator>Di-sheng</dc:creator><description>&lt;p&gt;Hi Edvin&lt;/p&gt;
&lt;p&gt;Thanks for your reply.&lt;/p&gt;
&lt;p&gt;All works!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I just do it again like yesterday. The OTA dfu be performed by nRFUtil command on&amp;nbsp;both of PCA10056&amp;nbsp;and PCA10059.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I think there maybe is some&amp;nbsp; interferon factor make the dfu breaken yesterday.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you a lots for your patience and precise help!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Best Regard,&lt;/p&gt;
&lt;p&gt;Di-Sheng&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266889?ContentTypeID=1</link><pubDate>Fri, 28 Aug 2020 07:56:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cf053405-5934-468e-ab6a-139ae1365022</guid><dc:creator>Edvin</dc:creator><description>[quote user="cor10"]Hi Edvin, I dont mean to distract your efforts to help Di-sheng, but I was worried that you didnt see my most recent comment (with all the details) up above.[/quote]
&lt;p&gt;&amp;nbsp;No worries. I am glad you did.&lt;/p&gt;
&lt;p&gt;Do you see anything in the fault handler?&amp;nbsp;Do you see anything in the log? Try to define DEBUG in your preprocessor definitions in your application, and monitor the log. Do you see any log messages? (Before or after the error?)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[quote user="SpongeBob"][/quote]&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Below is&amp;nbsp;what happens when I run the command twice:(I am sure that the COM6 and &amp;quot;nRF5x 92Mesh Light&amp;quot; below are correct)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C:&amp;gt; nrfutil dfu ble -ic NRF52 -pkg LSS59BLDFU1_s140.zip -p COM6 -n &amp;quot;nRF5x 92Mesh Light&amp;quot; -f&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;Flashing connectivity firmware...&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp;Connectivity firmware flashed.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C:&amp;gt; nrfutil dfu ble -ic NRF52 -pkg&amp;nbsp;LSS59BLDFU1_s140.zip&amp;nbsp;-p COM6 -n &amp;quot;nRF5x 92Mesh Light&amp;quot; -f&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp; Board already flashed with connectivity firmware.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Would you help me to find what happen here?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Is that the last thing it says? What does it print if you write the command &amp;quot;&lt;em&gt;nrfutil --version&amp;quot;&lt;/em&gt;&amp;nbsp;?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;br /&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266844?ContentTypeID=1</link><pubDate>Fri, 28 Aug 2020 00:00:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71501bcf-cb57-4862-b033-ae01984a0fd4</guid><dc:creator>Di-sheng</dc:creator><description>&lt;p&gt;Hi Edvin&lt;/p&gt;
&lt;p&gt;Thanks for your reply!&lt;/p&gt;
&lt;p&gt;I have past the buttonless dfu testing for Mesh&amp;#39;s light-switch server example on PCA10056 and PCA10059 board.&lt;/p&gt;
&lt;p&gt;The buttonless dfu can be performed by Desktop&amp;#39;s nRFconnect--&amp;gt;Bluetooth Low Energy tools, cell phone&amp;#39;s nRFConnect and toolsbox--&amp;gt;DFU, except the &lt;span&gt;nRFU&lt;/span&gt;&lt;span&gt;til&lt;/span&gt; command.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For Mesh&amp;#39;s light-Switch Server project, the nRFUtil command does not start the DFU process for either the PCA100056 or the PCA0059 board, but it works for the BLE_app_blinky project nRFUtil command for both board.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Below is&amp;nbsp;what happens when I run the command twice:(I am sure that the COM6 and &amp;quot;nRF5x 92Mesh Light&amp;quot; below are correct)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C:&amp;gt; nrfutil dfu ble -ic NRF52 -pkg LSS59BLDFU1_s140.zip -p COM6 -n &amp;quot;nRF5x 92Mesh Light&amp;quot; -f&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;Flashing connectivity firmware...&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp;Connectivity firmware flashed.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C:&amp;gt; nrfutil dfu ble -ic NRF52 -pkg&amp;nbsp;LSS59BLDFU1_s140.zip&amp;nbsp;-p COM6 -n &amp;quot;nRF5x 92Mesh Light&amp;quot; -f&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp; Board already flashed with connectivity firmware.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Would you help me to find what happen here?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best Regard,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Di-Sheng&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266839?ContentTypeID=1</link><pubDate>Thu, 27 Aug 2020 22:52:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fa911195-4def-4cbf-96bf-c58d9a687731</guid><dc:creator>cor10</dc:creator><description>&lt;p&gt;Hi Edvin, I dont mean to distract your efforts to help Di-sheng, but I was worried that you didnt see my most recent comment (with all the details) up above. Basically, I got the buttonless DFU default application working as expected. However, when I add the NUS Service to the Buttonless DFU project (as shown in all my edits below,&amp;nbsp;alongside&amp;nbsp;enabling BLE_NUS in the sdk_config.h), the application faults after the DFU and wont actually run when uploaded to the device.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static ble_uuid_t m_adv_uuids[]         = 
{
    {BLE_UUID_DEVICE_INFORMATION_SERVICE, BLE_UUID_TYPE_BLE},
    {BLE_UUID_NUS_SERVICE, NUS_SERVICE_UUID_TYPE}
};


static void nus_data_handler(ble_nus_evt_t * p_evt)
{
    //Basic default implementation from the ble_app_uart project
}


static void services_init(void)
{
    // NOTE: These lines of code have been ADDED to the default implementation!
    ble_nus_init_t     nus_init;

    // Initialize NUS.
    memset(&amp;amp;nus_init, 0, sizeof(nus_init));

    nus_init.data_handler = nus_data_handler;

    err_code = ble_nus_init(&amp;amp;m_nus, &amp;amp;nus_init);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;I have also tried to &amp;quot;Attach Debugger&amp;quot; when my device is in DFU state so that I can see what happens when it fails to start my merged buttonless DFU + UART application after a successful OTA DFU. When I watch this debugger, nothing happens except the debugger quits and the Segger Embedded Studio displays the app_timer2.c file,&amp;nbsp;specifically leaving the cursor at the&amp;nbsp;&amp;quot;static uint64_t get_now(void)&amp;quot; function. Not sure if that helps, but I would love any tips or recommendations you&amp;nbsp;have to help me merge the Buttonless DFU project with the BLE UART project.&amp;nbsp;Thank you for the help :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266624?ContentTypeID=1</link><pubDate>Thu, 27 Aug 2020 07:22:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be6eaf60-864a-4256-b337-1c5b5ad56e2e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;The Mesh stack has it&amp;#39;s own way of sleeping, and uses sd_app_evt_wait() for this.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]How I can add them if they are necessary or how I can remove the checking if they are not necessary?[/quote]
&lt;p&gt;&amp;nbsp;What do you mean by &amp;quot;remove the checking if they are not necessary&amp;quot;?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q2: I notice the&amp;nbsp; he light-switch server project of Mesh lacks &amp;quot;power_management_init()&amp;quot; and &amp;quot;gatt_init()&amp;quot; function compared to the BLE project. Is it mean the power_management&amp;nbsp; and gatt block do not be added in the project?[/quote]
&lt;p&gt;&amp;nbsp;This is handled other ways.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q1:&amp;nbsp; Would you help me to find why it get a 0x04 error code when the &amp;quot;ble_dfu_buttonless_init()&amp;quot; be executed?&amp;nbsp; -------&lt;span&gt;The error code&amp;nbsp;of 0x04 was actually obtained by executing &amp;quot;SVCALL&amp;quot;&lt;/span&gt;[/quote]
&lt;p&gt;&amp;nbsp;If you look in your sdk_config.h file, you should see a define: NRF_SDH_BLE_VS_UUID_COUNT, which is by default set to 0. Set it to 1. When you do this, your main() -&amp;gt; initialize() -&amp;gt;&amp;nbsp;ble_stack_init() -&amp;gt;&amp;nbsp;nrf_sdh_ble_enable() will print something about changing the RAM start and RAM size.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now, it doesn&amp;#39;t do that by default, because the &amp;quot;normal&amp;quot; SDK uses a different logging module than the mesh SDK, and the function that checks the RAM settings is from the normal SDK, so it will not print anything.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So there are a few things you need to do. In nrf_sdh_ble.c, add the following things:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;quot;log.h&amp;quot;

#undef NRF_LOG_INFO
#undef NRF_LOG_WARNING
#undef NRF_LOG_DEBUG


#define NRF_LOG_INFO        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, __VA_ARGS__);
#define NRF_LOG_WARNING     __LOG(LOG_SRC_APP, LOG_LEVEL_WARN, __VA_ARGS__);
#define NRF_LOG_DEBUG       __LOG(LOG_SRC_APP, LOG_LEVEL_DBG1, __VA_ARGS__);
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Then, in&amp;nbsp;nrf_sdh_ble_enable() in the same file, add \n, at the end of all the NRF_LOG_WARNING, NRF_LOG_DEBUG and NRF_LOG_ERROR calls. E.g. change:&lt;/p&gt;
&lt;p&gt;NRF_LOG_WARNING(&amp;quot;Insufficient RAM allocated for the SoftDevice.&amp;quot;);&lt;br /&gt;to&lt;br /&gt;NRF_LOG_WARNING(&amp;quot;Insufficient RAM allocated for the SoftDevice.\n&amp;quot;);&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Then it should say something about the RAM in your log. In my case it says:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;lt;t:       8299&amp;gt;, nrf_sdh_ble.c,  249, RAM starts at 0x20002E00
&amp;lt;t:       8302&amp;gt;, nrf_sdh_ble.c,  252, RAM start location can be adjusted to 0x20002440.
&amp;lt;t:       8306&amp;gt;, nrf_sdh_ble.c,  255, RAM size for application can be adjusted to 0x3DBC0.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;You need to change this in your project settings:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-d4a644faaf5f4ae8b2c1a74a856b674c/pastedimage1598512783315v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Hopefully, that solves the issue.&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t worry about the RAM size. It is not used in the Mesh examples.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266597?ContentTypeID=1</link><pubDate>Wed, 26 Aug 2020 23:17:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:04e96f5b-b91e-4b2e-875f-d98eba16a567</guid><dc:creator>Di-sheng</dc:creator><description>&lt;p&gt;Hi Edvin&lt;/p&gt;
&lt;p&gt;I do debug the project follow the way that you said last post. Finally, the code&amp;nbsp; stay&amp;nbsp;in &amp;quot; sleep_forever() &amp;quot; function , because&amp;nbsp; err_code =0x04 be got from &amp;quot;SVCALL(SD_BLE_GATTS_RW_AUTHORIZE_REPLY, uint32_t, sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const *p_rw_authorize_reply_params));&amp;quot;&lt;/p&gt;
&lt;p&gt;The link below is the debug tracking in word format.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/Mesh-buttonless.docx"&gt;/cfs-file/__key/communityserver-discussions-components-files/4/Mesh-buttonless.docx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Q1:&amp;nbsp; Would you help me to find why it get a 0x04 error code when the &amp;quot;ble_dfu_buttonless_init()&amp;quot; be executed?&amp;nbsp; -------&lt;span&gt;The error code&amp;nbsp;of 0x04 was actually obtained by executing &amp;quot;SVCALL&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Q2: I notice the&amp;nbsp; he light-switch server project of Mesh lacks &amp;quot;power_management_init()&amp;quot; and &amp;quot;gatt_init()&amp;quot; function compared to the BLE project. Is it mean the power_management&amp;nbsp; and gatt block do not be added in the project?&lt;/p&gt;
&lt;p&gt;How I can add them if they are necessary or how I can remove the checking if they are not necessary?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Di-Sheng&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266369?ContentTypeID=1</link><pubDate>Wed, 26 Aug 2020 07:32:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cd8d9dad-221c-461c-8019-f99549fb3a54</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;So LED1-4 is constant on. That is an important observation. That means that the bootloader accepts the application and start it.&lt;/p&gt;
&lt;p&gt;LED1-4 turned on is the error indication in a mesh application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In Segger Embedded Studio, which you are using, there is an option to &amp;quot;attach debugger&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-d4a644faaf5f4ae8b2c1a74a856b674c/pastedimage1598426618872v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;If you do this, it means you can debug without uploading any software to the DK, which means that the bootloader will not reject the application.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Try this, and see if you get any log output. What does the log say? If you don&amp;#39;t get any log output, try to add some logs in the start of the application, e.g. &amp;quot;start&amp;quot;. Do you see logs before you add the bootloader?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Either way, you can also try to set breakpoints, to see whether a function is executed or not. Where does the application stop?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266344?ContentTypeID=1</link><pubDate>Wed, 26 Aug 2020 01:37:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94a48266-c061-4e97-b048-ab43ae256ce1</guid><dc:creator>cor10</dc:creator><description>&lt;p&gt;Thank you for your tips on this. Everything you mentioned proved to be true. I have to turn on and off my phone to refresh the GATT table, and if the Service Changed option is set from the beginning, it works as expected.&lt;/p&gt;
&lt;p&gt;Now that I confirmed that the default buttonless DFU example works as is, I have merged my previous ble_app_uart project with the buttonless DFU template. I have everything included and it builds/compiles without error.&lt;/p&gt;
&lt;p&gt;However, when I try to load this merged application onto my device, it doesnt run...something is faulting. When I try and use the debugger, it never successfully starts....usually when I run Build and Debug, it loads the code onto the device, and then prompts me with a Start button to begin Debugging. However, the issue with my merged Buttonless DFU/UART project is that the debugger never presents me with a Start button to click, as if its already running (I see the Pause button instead of Play in the Segger Embedded Studio). So this tells me that something is faulting before the Debugger can even start properly. I tried to see where this behavior is coming from since the dafault example works fine, and so I simply added the NUS Service UUID in &amp;#39;m_adv_uuids[] as a first step, and this is enough to replicate the behavior Im talking about.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static ble_uuid_t m_adv_uuids[]         = 
{
    {BLE_UUID_DEVICE_INFORMATION_SERVICE, BLE_UUID_TYPE_BLE},
    {BLE_UUID_NUS_SERVICE, NUS_SERVICE_UUID_TYPE}
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;What would you recommend is the best way to&amp;nbsp;resolve this issue? There must be some configuration issue that I am missing with the overlapping DFU and UART projects. When merging the 2 SDK Config files, there were only a few instances where the two files had different setting values. Specifically, these conflicting settings were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;#define PEER_MANAGER_ENABLED
&lt;ul&gt;
&lt;li&gt;1 in the Buttonless DFU, 0 in the UART application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define PM_CENTRAL_ENABLED
&lt;ul&gt;
&lt;li&gt;0 in the Buttonless DFU, 1 in the UART application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define BLE_DFU_ENABLED &lt;span class="s2"&gt;1&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="s2"&gt;This needs to be set to 1, so ignoring&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#&lt;span&gt;define CRC16_ENABLED&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;1 in the Buttonless DFU, 0 in the UART application&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;/span&gt;define FDS_ENABLED
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;1 in the Buttonless DFU, 0 in the UART application&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define NRF_FSTORAGE_ENABLED
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;1 in the Buttonless DFU, 0 in the UART application&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;1 in the Buttonless DFU, 0 in the UART application&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
&lt;ul&gt;
&lt;li&gt;1 in the Buttonless DFU, 0 in the UART application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define NRF_LOG_BACKEND_RTT_ENABLED
&lt;ul&gt;
&lt;li&gt;0 in the Buttonless DFU, 1 in the UART application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define NRF_LOG_DEFAULT_LEVEL
&lt;ul&gt;
&lt;li&gt;3 in the Buttonless DFU, 4 in the UART application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;#define NRF_SDH_BLE_GAP_DATA_LENGTH
&lt;ul&gt;
&lt;li&gt;&lt;span class="s2"&gt;&lt;span&gt;27 in the Buttonless DFU, 251 in the UART application&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span class="s2"&gt;&lt;span class="s2"&gt;&lt;span&gt;#&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;define NRF_SDH_BLE_GATT_MAX_MTU_SIZE
&lt;ul&gt;
&lt;li&gt;23 i&lt;span&gt;n the Buttonless DFU, 247 in the UART application&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;I also changed&amp;nbsp;&lt;/span&gt;&lt;span class="s1"&gt;NRF_SDH_BLE_VS_UUID_COUNT to be 2 (previously 1) for both DFU and UART, and changed&amp;nbsp;&lt;/span&gt;&lt;span class="s1"&gt;NRF_SDH_BLE_SERVICE_CHANGED to 1 (previously 0).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="s1"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="s1"&gt;Does anything seem suspicious here? Thank you so much for you time and help with this.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266337?ContentTypeID=1</link><pubDate>Tue, 25 Aug 2020 23:29:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9effd0e0-4912-42b2-9493-0a4522b3832c</guid><dc:creator>Di-sheng</dc:creator><description>&lt;p&gt;Hi Edvin&lt;/p&gt;
&lt;p&gt;Thanks for your reply, I am sorry, I didn&amp;#39;t make the question clear.&lt;/p&gt;
&lt;p&gt;I have just successfully completed the Buttonless Dfu experiment based on the BLE_app_blinky example on the DK(PCA10056) board.So I tried to do the Buttonless DFU experiment on the light-Swtich Server example of Mesh on the DK(PCA10056) board in the same way.&lt;/p&gt;
&lt;p&gt;Before your reply, I always thought that the method of adding buttonless Dfu function to the application must also support ble application and Mesh application. Through your reply, I realize that may be not ture. However, from your reply, I think it is still necessary to ask you to look at the process, which can help me to figure out many problems&lt;/p&gt;
&lt;p&gt;Software stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;nRF5_SDK_16.0.0_98a08e2&lt;/li&gt;
&lt;li&gt;nrf5_SDK_for_Mesh_v4.0.0_src&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Soft device:&amp;nbsp; S140&lt;/p&gt;
&lt;p&gt;Soft tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SES 4.22&lt;/li&gt;
&lt;li&gt;nRF Connect--&amp;gt; Bluetooth Low Energy&lt;/li&gt;
&lt;li&gt;nRFutil&lt;/li&gt;
&lt;li&gt;nRFjprog&lt;/li&gt;
&lt;li&gt;nRF Connect--&amp;gt;Programmer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hardware is 2 pcs DK(PCA10056). One of them is used as PDK for ble dfu, which be programmed the pca10056_s140_ble_debug project (nRF5_SDK_16.0.0_98a08e2\examples\dfu\secure_bootloader\pca10056_s140_ble_debug) as dfu bootloader. The other DK is a target board, which be programmed the same dfu bootloader, after it be erased by &amp;quot;nrfjpro -e&amp;quot; command.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Dfu Prepare:&lt;/p&gt;
&lt;p&gt;A ZIP file will be used for updating via &amp;quot; nRF Connect&amp;agrave; Bluetooth Low Energy &amp;quot; and PDK to the target DK, which is in DFU mode after writing to boot Loader but before writing to the application.&lt;/p&gt;
&lt;p&gt;The zip file generation command is as follows:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt;nrfutil pkg generate --hw-version 52 --debug-mode --sd-req 0x00 --sd-id 0xCA --application light_switch_server_nrf52840_xxAA_s140_7.0.1.hex --key-file private.key --softdevice s140_nrf52_7.0.1_softdevice.hex LSS56BLDFU_s140.zip&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Note:the publice key of bootloader is come from the private.key, so all key is match.&lt;/p&gt;
&lt;p&gt;&amp;quot;s140_nrf52_7.0.1_softdevice.hex&amp;quot; is the softdevice which come from &amp;quot; nRF5_SDK_16.0.0_98a08e2&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot; light_switch_server_nrf52840_xxAA_s140_7.0.1.hex&amp;quot; is the application project which is a example of mesh and be modified for adding buttonless dfu function according to here instructions with some extra operation (please see my last post) which are adding some include files and include directories into the project for eliminate compilation errors. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Dfu Process:&lt;/p&gt;
&lt;p&gt;After target Dk power on, I can find a device which device name is &amp;quot; DFU Targ by &amp;quot; nRF Connect--&amp;gt; Bluetooth Low Energy &amp;quot; and PDK. Connecting it and DFU ZIP file will be completed. all process will be ok like I do blinky example.&lt;/p&gt;
&lt;p&gt;Result:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When DFU update is completed, LED1-4 flashes together under normal conditions, and then the device named &amp;quot;nRF5 Mesh Light&amp;quot; can be found through &amp;quot; nRF Connect--&amp;gt; Bluetooth Low Energy &amp;quot; and PDK. But now it is only LED1-4 that is lit together, and it is always on, and any information of this device is also found through &amp;quot; nRF Connect--&amp;gt; Bluetooth Low Energy &amp;quot; and PDK.&lt;/p&gt;
&lt;p&gt;Because only project application project (light_switch_server_nrf52840_xxAA_s140_7.0.1.hex) was modified, the rest parts such as Bootlader and Softdevice were the same as Button DFU before, and since BLE DFU was adopted, the bootloader setting page of the application was generated by bootloader, so the SES&amp;#39;s &amp;quot;Section Placement Macros&amp;quot; of the application project do not be modified, and the contents of &amp;quot;Section Placement Macros&amp;quot; &amp;nbsp;were still as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FLASH_PH_START=0x0&lt;/li&gt;
&lt;li&gt;FLASH_PH_SIZE=0xf8000&lt;/li&gt;
&lt;li&gt;RAM_PH_START=0x20000000&lt;/li&gt;
&lt;li&gt;RAM_PH_SIZE=0x3f000&lt;/li&gt;
&lt;li&gt;FLASH_START=0x27000&lt;/li&gt;
&lt;li&gt;RAM_START=0x20002e00&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;That is all I have to say about my attempt to add the Buttonless function to the Mesh example.&lt;/p&gt;
&lt;p&gt;My questions is follow:&lt;/p&gt;
&lt;p&gt;Q1.&amp;nbsp;I think I understand the difference between the Mesh implementation mechanism you mentioned and ble. In other words, the Buttonless function added according to BEL will not only not start the application into DFU mode, but also disturb the normal operation of the Mesh application. Is that correct?&lt;/p&gt;
&lt;p&gt;Q2. If I still want add ble buttonless dfu to mesh&amp;#39;s application, how should I do? &lt;span class="tgt"&gt;What are the specific steps?&lt;/span&gt;&lt;span class="tgt"&gt;Any special attention?&lt;/span&gt;&lt;span class="tgt"&gt;Do you have any recommendations?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Q3.&amp;nbsp;&lt;span&gt;Based on the buttonless function process and results of the mesh application described above, can you determine the cause? How can I make sure where it stuck ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Q4&amp;nbsp; I&amp;#39;ll take a look at the SD_ble_gatts_service_add () and SD_ble_gatts_characteristic_add () functions, based on what you said in your last post.&amp;nbsp;&amp;nbsp;You also side &amp;quot;Please check the log from the device.&amp;quot;. Would you like to explain that to me about how and what can I do?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Q5 You said last post &amp;quot;&lt;/span&gt;Does it set aside space for the FDS (if you use that at all)? And does it set aside space for the bootloader?&amp;quot;.&amp;nbsp; &lt;span&gt;What does FDS mean?&amp;nbsp;and What does &amp;quot;does it set aside space for the bootloader?&amp;quot; mean?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Then I compare two chips maps by nRFConnect --&amp;gt;Programmertools, One of them is a ble_app_blinky example for PCA10056 with successful &amp;nbsp;buttonless dfu function, The other one is the light-switch server of Mesh with unsuccessful buttonless dfu function.&lt;/p&gt;
&lt;p&gt;PIC1:&amp;nbsp;nrf52840 map for ble_app_blinky with buttonless dfu of PCA10056.png&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/3487.nrf52840-map-for-ble_5F00_app_5F00_blinky-with-buttonless-dfu-of-PCA10056.png" /&gt;&lt;/p&gt;
&lt;p&gt;PIC2:nrf52840 map for light-switch server with buttonless dfu of PCA10056.png&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/1234.nrf52840-map-for-light_2D00_switch-server-with-buttonless-dfu-of-PCA10056.png" /&gt;&lt;/p&gt;
&lt;p&gt;As we know, The black , red and yellow areas in pic1 and pic2 is for Setting page and MBR-P, bootloader and MBR;&lt;/p&gt;
&lt;p&gt;Green A area is for Software.&lt;/p&gt;
&lt;p&gt;The ble_app_blinky with buttonless DFU for PCA10056.bin is about 25kByte&lt;/p&gt;
&lt;p&gt;The light-switch server with buttonless DFU for PCA10056.bin is about 137kByte&lt;/p&gt;
&lt;p&gt;So the Green B area of pic1 is for application.&amp;nbsp; The green B and C of pic2 is for application.&lt;/p&gt;
&lt;p&gt;My question is below:&lt;/p&gt;
&lt;p&gt;Q3: What is for the green C of pic1?&lt;/p&gt;
&lt;p&gt;Q4: Why doesn&amp;#39;t pic2 have this piece which like Green C of pic1? Is it the reason which the application do not run?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Best Regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Di-Sheng&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&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: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266153?ContentTypeID=1</link><pubDate>Tue, 25 Aug 2020 09:26:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f050ba78-4f0e-4c51-bf91-fc1e0b280657</guid><dc:creator>Edvin</dc:creator><description>[quote user="SpongeBob"]For find the reason, I compare the map in chips by nRFConnect àProgrammertools,please to see the picture(the both DK have been erased by &amp;quot;nRFjprog -e&amp;quot; command)[/quote]
&lt;p&gt;&amp;nbsp;Those pictures are very (!) small.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Besides, I don&amp;#39;t think that they contain any relevant information.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q1: &amp;nbsp;Since the Mesh protocol is based on BLE, buttonlessDFU supported by BLE should also be available for Mesh applications. Is it correct?[/quote]
&lt;p&gt;&amp;nbsp;Not exactly sure how that would work. The Mesh stack makes things work a bit different.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q2:&amp;nbsp; Did my above actions of adding Buttonless Dfu to the application cause some conflicts that prevented the application from running? Would you help me to find the reason?[/quote]
&lt;p&gt;&amp;nbsp;What conflict? What are your observations? Simply &amp;quot;lack of advertisements&amp;quot;, or do you see something in the log from the application indicating that it is not runnning?&lt;/p&gt;
&lt;p&gt;Do you use a DK or a custom board? Do you see any log? If you use a DK, what does the LEDs look like? Have you programmed application settings? What nRF5 SDK are you using? How does the flash_manager in your mesh app cope with the bootloader? Does it set aside space for the FDS (if you use that at all)? And does it set aside space for the bootloader?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q3: What is for the green C of pic1?[/quote]
&lt;p&gt;&amp;nbsp;I don&amp;#39;t know&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q4: Why doesn&amp;#39;t pic2 have this piece which like Green C of pic1? Is it the reason which the application do not run?[/quote]
&lt;p&gt;&amp;nbsp;I don&amp;#39;t know.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t really see much from the pictures, and besides, I would need to know what you program on the devices, and what you do, for it to make sense. Do you reset the devices?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I think you should not include this like a service as you would do in the &amp;quot;normal&amp;quot; SDK. Look at the function mesh_gatt_init() functions, which adds the service and characteristic using&amp;nbsp;sd_ble_gatts_service_add() and&amp;nbsp;sd_ble_gatts_characteristic_add(), respectively. It may be that you will be fine doing it the way you have done as well, but it depends on what &amp;quot;conflicts&amp;quot; you have. Please check the log from the device. And make sure that it is not stuck DFU mode, because of a mismatch in the bootloader settings.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/266078?ContentTypeID=1</link><pubDate>Tue, 25 Aug 2020 02:23:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:59f54a5c-3ee4-48d5-a320-eac6fdd75ac9</guid><dc:creator>Di-sheng</dc:creator><description>&lt;p&gt;Hi Edvin&lt;/p&gt;
&lt;p&gt;Thanks for your reply.&lt;/p&gt;
&lt;p&gt;As I told you that I have completed to add buttonless function to into&amp;nbsp;ble_app_blinky example of nRF5_SDK_16.0.0_98a08e2 for PCA10056 and PCA10059 and all of them works well.&lt;/p&gt;
&lt;p&gt;Because the ble of nRF5 SDK is basic of mesh, I think the buttonless function should be supported by the application project of Mesh. I do same thing on to the light-switch server example of Mesh like I did on to blinky example of nRF5 SDK. because the example of Mesh do not use more function of nRF5 SDK, so adding the buttonless function to the Light-Swtich Server example of Mesh is more operant than adding it to the blinky example of nRF5 SDK. The extra operation be showed below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When implement Buttonless Secure DFU Service initializing, because there isnot a services_init() in the main.c of light-switch server example. I add a services_init() and a call in initialize() ,like below:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;//Initializing the Buttonless Secure DFU Service&lt;/p&gt;
&lt;p&gt;static void services_init(void)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;ret_code_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/structble__dfu__buttonless__init__t.html"&gt;ble_dfu_buttonless_init_t&lt;/a&gt; dfus_init =&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;.&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/structble__dfu__buttonless__init__t.html#a6e662d019db985b60eb98f161c1fbc50"&gt;evt_handler&lt;/a&gt; = ble_dfu_buttonless_evt_handler&lt;/p&gt;
&lt;p&gt;};&lt;/p&gt;
&lt;p&gt;err_code = &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/group__ble__dfu.html#gaaec2969dda3078dfec8d29a8cd9dda10"&gt;ble_dfu_buttonless_init&lt;/a&gt;(&amp;amp;dfus_init);&lt;/p&gt;
&lt;p&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/group__app__error.html#ga82d00a810dcea7dcc6af469461fb254c"&gt;APP_ERROR_CHECK&lt;/a&gt;(err_code);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;static void initialize(void)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __LOG_INIT(LOG_SRC_APP | LOG_SRC_FRIEND, LOG_LEVEL_DBG1, LOG_CALLBACK_DEFAULT);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;__LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;----- BLE Mesh Light Switch Server Demo -----\n&amp;quot;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ERROR_CHECK(app_timer_init());&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hal_leds_init();&lt;/p&gt;
&lt;p&gt;#if BUTTON_BOARD&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ERROR_CHECK(hal_buttons_init(button_event_handler));&lt;/p&gt;
&lt;p&gt;#endif&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble_stack_init();&lt;/p&gt;
&lt;p&gt;services_init();&lt;/p&gt;
&lt;p&gt;#if MESH_FEATURE_GATT_ENABLED&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gap_params_init();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn_params_init();&lt;/p&gt;
&lt;p&gt;#endif&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mesh_init();&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;In mian.c file, add some include files for peer_manager , power management library and dfu driver:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;#include &amp;quot;nrf_dfu_ble_svci_bond_sharing.h&amp;quot;&lt;/p&gt;
&lt;p&gt;#include &amp;quot;nrf_svci_async_function.h&amp;quot;&lt;/p&gt;
&lt;p&gt;#include &amp;quot;nrf_svci_async_handler.h&amp;quot;&lt;/p&gt;
&lt;p&gt;#include &amp;quot;ble_dfu.h&amp;quot;&lt;/p&gt;
&lt;p&gt;#include &amp;quot;nrf_bootloader_info.h&amp;quot;&lt;/p&gt;
&lt;p&gt;#include &amp;quot;nrf_log.h&amp;quot;&lt;/p&gt;
&lt;p&gt;#include &amp;quot; nrf_pwr_mgmt.h&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;In sdk_config.h file,add some code below:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;#ifndef NRF_PWR_MGMT_ENABLED&lt;/p&gt;
&lt;p&gt;#define NRF_PWR_MGMT_ENABLED 1&lt;/p&gt;
&lt;p&gt;#endif&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Add some include directories to options&amp;agrave;code(common)&amp;agrave;Preprocessor&amp;agrave;User Include Directories:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Add &amp;quot;nRF5_SDK_16.0.0_98a08e2\components\libraries\bootloader&amp;quot; for nrf_bootloader_info.h&lt;/p&gt;
&lt;p&gt;Add &amp;quot;nRF5_SDK_16.0.0_98a08e2\components\libraries\bootloader\ble_dfu&amp;quot; for nrf_dfu_ble_svci_bond_sharing.h&lt;/p&gt;
&lt;p&gt;Add &amp;quot;nRF5_SDK_16.0.0_98a08e2\components\libraries\svc&amp;quot; for nrf_svci.h&lt;/p&gt;
&lt;p&gt;Add &amp;quot;nRF5_SDK_16.0.0_98a08e2\components\libraries\fds&amp;quot; for fds.h&lt;/p&gt;
&lt;p&gt;Add &amp;quot;nRF5_SDK_16.0.0_98a08e2\components\libraries\mutex&amp;quot; for nrf_mtx.h&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have soluted the problem which was in my last post by include &amp;quot;nRF_log.h&amp;quot; in main.c file. So the light-switch server example with buttonless DFU function past the building. It be flashed to the DK by BLE DFU in frist time, but the application do not start to work, the led1-4 kept on(nomal they should be flashing) and the application code appears to be stuck. there is not adverting.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;For this parts, I have some question below:&lt;/p&gt;
&lt;p&gt;Q1: &amp;nbsp;Since the Mesh protocol is based on BLE, buttonlessDFU supported by BLE should also be available for Mesh applications. Is it correct?&lt;/p&gt;
&lt;p&gt;Q2:&amp;nbsp; Did my above actions of adding Buttonless Dfu to the application cause some conflicts that prevented the application from running? Would you help me to find the reason?&lt;/p&gt;
&lt;p&gt;For find the reason, I compare the map in chips by nRFConnect &amp;agrave;Programmertools,please to see the picture(the both DK have been erased by &amp;quot;nRFjprog -e&amp;quot; command)&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/nrf52840-map-for-ble_5F00_app_5F00_blinky-with-buttonless-dfu-of-PCA10056.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="pic 1" src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/nrf52840-map-for-ble_5F00_app_5F00_blinky-with-buttonless-dfu-of-PCA10056.png" /&gt; Chip&amp;#39;s MAP of ble_app_blinky with buttonless DFU for PCA10056&lt;/p&gt;
&lt;p&gt;&lt;img alt="pic 2" src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/nrf52840-map-for-light_2D00_switch-server-with-buttonless-dfu-of-PCA10056.png" /&gt;: Chip&amp;#39;s MAP of light-switch server with buttonless DFU for PCA10056&lt;/p&gt;
&lt;p&gt;As we know, The black , red and yellow areas in pic1 and pic2 is for Setting page and MBR-P, bootloader and MBR;&lt;/p&gt;
&lt;p&gt;Green A area is for Software.&lt;/p&gt;
&lt;p&gt;The ble_app_blinky with buttonless DFU for PCA10056.bin is about 25kByte&lt;/p&gt;
&lt;p&gt;The light-switch server with buttonless DFU for PCA10056.bin is about 137kByte&lt;/p&gt;
&lt;p&gt;So the Green B area of pic1 is for application. &amp;nbsp;The green B and C of pic2 is for application.&lt;/p&gt;
&lt;p&gt;My question is below:&lt;/p&gt;
&lt;p&gt;Q3: What is for the green C of pic1?&lt;/p&gt;
&lt;p&gt;Q4: Why doesn&amp;#39;t pic2 have this piece which like Green C of pic1? Is it the reason which the application do not run?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Di-Sheng&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/265529?ContentTypeID=1</link><pubDate>Thu, 20 Aug 2020 11:25:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f2d8ad1c-155a-4c49-a32a-6cb8ed9ca445</guid><dc:creator>Edvin</dc:creator><description>[quote user="SpongeBob"]Q2: &lt;span&gt;Will the function of MESH be affected or destroyed if SDK files are added?&lt;/span&gt;[/quote]
&lt;p&gt;&amp;nbsp;I don&amp;#39;t think so.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q1: Would you help me to find which files I missed.[/quote]
&lt;p&gt;&amp;nbsp;Look at where they are defined in the examples from the normal SDK.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But I think you may run into some trouble (I am not sure) if you try to add the log module from the normal SDK to the mesh SDK, since the Mesh SDK already have a logging module. Either remove the calls to NRF_LOG_INFO(), or replace them with the mesh log function.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/265431?ContentTypeID=1</link><pubDate>Thu, 20 Aug 2020 00:48:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df747034-3b6b-40e4-b5d0-222d226a50a8</guid><dc:creator>Di-sheng</dc:creator><description>&lt;p&gt;Hi Edvin&lt;/p&gt;
&lt;p&gt;Thanks for your reply.&lt;/p&gt;
&lt;p&gt;I have added buttonless function into&amp;nbsp;ble_app_blinky example of nRF5_SDK_16.0.0_98a08e2 &amp;nbsp;which is for PCA10056. It works very well, and past the testing of DFU without button.&lt;/p&gt;
&lt;p&gt;I also try to add the buttonless function to light-switch server example of&amp;nbsp;nrf5_SDK_for_Mesh_v4.0.0_src&amp;nbsp;&lt;span&gt;which is for PCA10056. but I got&amp;nbsp; an error of building:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;implicit declaration of function &amp;#39;NRF_LOG_INFO&amp;#39;; did you mean &amp;#39;NRF_GPIO&amp;#39;? [-Wimplicit-function-declaration]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit declaration of function &amp;#39;NRF_LOG_ERROR&amp;#39;; did you mean &amp;#39;NRF_LOG_DEFERRED&amp;#39;? [-Wimplicit-function-declaration]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;err_code&amp;#39; undeclared (first use in this function)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I think I miss some files of SDK in my project which defined error code of SDK.&lt;/p&gt;
&lt;p&gt;Q1: Would you help me to find which files I missed.&lt;/p&gt;
&lt;p&gt;Q2: &lt;span&gt;Will the function of MESH be affected or destroyed if SDK files are added?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Di-Sheng&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/264759?ContentTypeID=1</link><pubDate>Mon, 17 Aug 2020 08:00:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2de07c1c-d38d-4c52-8ed8-99a11354d032</guid><dc:creator>Edvin</dc:creator><description>[quote user="cor10"]So this confirms your suspicions about the&amp;nbsp;cached GATT table - thank you. How can I avoid this issue moving forward? I tried deleting and re-installing the nRF Connect Mobile app on my iphone to&amp;nbsp;reset this cache, but it actually still has the same problem as before (cant see the Buttonless DFU Characteristic).[/quote]
&lt;p&gt;&amp;nbsp;This table is stored on the phone, and turning bluetooth completely off and on (or maybe even turning the phone off and on) typically solves this. It depends a bit on the phone model.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The usual workaround for this is to include something called the Service Changed service (defined by Bluetooth). The buttonless DFU example contains this service. Search for SERVICE_CHANGED in the buttonless dfu example&amp;#39;s sdk_config.h file. What this service does is tell the central when it has added new services, and the phone will then do a new service discovery. The problem is if this service was not included from the beginning.&lt;/p&gt;
&lt;p&gt;Another temporary workaround is to change the address of the device when you experiment with different services. You can use sd_ble_gap_addr_get/set():&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;    ble_gap_addr_t my_addr;
    err_code = sd_ble_gap_addr_get(&amp;amp;my_addr);
    APP_ERROR_CHECK(err_code);
    my_addr.addr[0] += 0x01;
    err_code = sd_ble_gap_addr_set(&amp;amp;my_addr);
    APP_ERROR_CHECK(err_code);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note that this may mess up the DFU process in some cases, because android phones expect the address of the device to be incremented by one when in DFU mode, and it is done quite similar to this. But turn the bluetooth (or phone if that doesn&amp;#39;t work) off and on again, and see if that helps.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q1. I notice the &amp;quot;ble_app_buttonless_dfu&amp;quot; is an application code, because it occupy application area in the chips after flash it into chips. I read the some information&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v17.0.0%2Fble_sdk_app_buttonless_dfu.html&amp;amp;cp=7_1_4_2_2_6"&gt;here&lt;/a&gt;(&lt;span&gt;Buttonless Secure DFU Service&lt;/span&gt;)&amp;nbsp;and &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v17.0.0%2Fservice_dfu.html&amp;amp;cp=7_1_3_3_5"&gt;here&lt;/a&gt;(&lt;span&gt;Buttonless DFU Template Application&lt;/span&gt;) in &lt;span&gt;&amp;nbsp;Infocenter&lt;/span&gt;. I think i&lt;span&gt;t should be added to my own application project, not dfu bootloader, right? If the answer is yes,&amp;nbsp; a chip which just have BLE_DFU bootloader and SD can not implement a buttonless ble dfu procession. is it right?--which mean whether we can make a device which can implement Buttonless ble dfu function without a application project like the button ble dfu function?&lt;/span&gt;[/quote]
&lt;p&gt;&amp;nbsp;It should be added to the application, and not the bootloader project. That is correct. A chip that only has a bootloader and the softdevice will automatically enter DFU mode, since it doesn&amp;#39;t have an application. So you don&amp;#39;t have to press any buttons.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q2. Would&amp;nbsp;you&amp;nbsp;like to use the sample project Light-Switch Server or&amp;nbsp;ble_app_blinky as an example to show me how to add Buttonless BLE DFU to it? because I do not know how to generate the &amp;quot;bootloader_secure_ble_debug_without_bonds_s140.hex&amp;quot; which is in &amp;quot;nRF5_SDK_16.0.0_98a08e2\examples\dfu\secure_dfu_test_images\ble\nrf52840&amp;quot; and it seem do not inlude a application code.[/quote]
&lt;p&gt;&amp;nbsp;ble_app_blinky. The reason for this is that the light-switch server is a Bluetooth Mesh example. While you can use the &amp;quot;normal&amp;quot; BLE bootloader together with mesh, it also has it&amp;#39;s own bootloader solution that is targeted for Mesh.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have never used the precompiled .hex files for DFU. I don&amp;#39;t really see where one would use them. I suggest you build your own bootloader. In that case, you know what private key you can use to generate application images. The .hex file that you refer to is a bootloader (and softdevice, I believe), but no application. But you do not have the private key that is used to generate the public key that is used in this hex file.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I suggest you start with this guide:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader"&gt;https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SpongeBob"]Q3. Can the &amp;quot;mergehex&amp;quot; tools&amp;nbsp; merge two or more HEX files together without conflict although&amp;nbsp;&amp;nbsp;their&amp;nbsp; &amp;quot;SES--&amp;gt;Code--&amp;gt;Linker--&amp;gt;Section PLacement Macros&amp;quot; are same ?[/quote]
&lt;p&gt;&amp;nbsp;You can merge .hex files using &amp;quot;mergehex&amp;quot;, as long as they don&amp;#39;t have overlapping areas. So you can merge bootloader, softdevice and application (and bootloader settings if you like), but you can not merge two applications with the same start address.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/264681?ContentTypeID=1</link><pubDate>Sat, 15 Aug 2020 00:18:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:86304070-2567-43d6-9f81-3cb6ce8905c7</guid><dc:creator>Di-sheng</dc:creator><description>&lt;p&gt;Hi Edvin&lt;/p&gt;
&lt;p&gt;Thanks for your reply, That is very powerful.&lt;/p&gt;
&lt;p&gt;I have completed the BLE OTA DFU in button mode, which include from PDK to DK and Dongle by Bluetooth Low Energy and nRFUtil&amp;nbsp; of desktop and nRFconnect and Toolbox of smart phone. All of them works well, which include a&amp;nbsp;pca10059_s140_ble_debug for PCA10059.&lt;/p&gt;
&lt;p&gt;Now I am doing the buttonless DFU . Would you like to help me for some questions below.&lt;/p&gt;
&lt;p&gt;Q1. I notice the &amp;quot;ble_app_buttonless_dfu&amp;quot; is an application code, because it occupy application area in the chips after flash it into chips. I read the some information&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v17.0.0%2Fble_sdk_app_buttonless_dfu.html&amp;amp;cp=7_1_4_2_2_6"&gt;here&lt;/a&gt;(&lt;span&gt;Buttonless Secure DFU Service&lt;/span&gt;)&amp;nbsp;and &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v17.0.0%2Fservice_dfu.html&amp;amp;cp=7_1_3_3_5"&gt;here&lt;/a&gt;(&lt;span&gt;Buttonless DFU Template Application&lt;/span&gt;) in &lt;span&gt;&amp;nbsp;Infocenter&lt;/span&gt;. I think i&lt;span&gt;t should be added to my own application project, not dfu bootloader, right? If the answer is yes,&amp;nbsp; a chip which just have BLE_DFU bootloader and SD can not implement a buttonless ble dfu procession. is it right?--which mean whether we can make a device which can implement Buttonless ble dfu function without a application project like the button ble dfu function?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Q2. Would&amp;nbsp;you&amp;nbsp;like to use the sample project Light-Switch Server or&amp;nbsp;ble_app_blinky as an example to show me how to add Buttonless BLE DFU to it? because I do not know how to generate the &amp;quot;bootloader_secure_ble_debug_without_bonds_s140.hex&amp;quot; which is in &amp;quot;nRF5_SDK_16.0.0_98a08e2\examples\dfu\secure_dfu_test_images\ble\nrf52840&amp;quot; and it seem do not inlude a application code.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Q3. Can the &amp;quot;mergehex&amp;quot; tools&amp;nbsp; merge two or more HEX files together without conflict although&amp;nbsp;&amp;nbsp;their&amp;nbsp; &amp;quot;SES--&amp;gt;Code--&amp;gt;Linker--&amp;gt;Section PLacement Macros&amp;quot; are same ?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&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;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Di-Sheng&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/264679?ContentTypeID=1</link><pubDate>Fri, 14 Aug 2020 23:12:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:36f2e5e8-eba7-4fdd-8d91-6ee0868b0ba6</guid><dc:creator>cor10</dc:creator><description>&lt;p&gt;&lt;span&gt;I tried the nRF Connect Mobile iOS app on my friends phone, and the Buttonless DFU characteristic was displayed as expected! So the code has been working correctly on the board, but the app fails to reflect the change in services/characteristics. So this confirms your suspicions about the&amp;nbsp;cached GATT table - thank you. How can I avoid this issue moving forward? I tried deleting and re-installing the nRF Connect Mobile app on my iphone to&amp;nbsp;reset this cache, but it actually still has the same problem as before (cant see the Buttonless DFU Characteristic). Thank you, your help is greatly appreciated&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/264625?ContentTypeID=1</link><pubDate>Fri, 14 Aug 2020 12:48:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d5cb0c38-223a-4ae1-9c74-e8f645c9bbc3</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Can you please try to connect to it using nRF Connect for Desktop? The reason I ask you to do this is to check whether the GATT table (list of services and characteristics) is cached in the mobile phone, and hence may not discover the added services. If you don&amp;#39;t have any other DKs, you can try to delete the bond information, and turn bluetooth off and back on on the phone. Wait a minute or two before turning it back on.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Another thing to check is the log from the nRF. Check what the application log is saying. You can use a UART or RTT terminal (based on what log backend your application uses).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are a couple of things you should make sure of when you include the buttonless dfu service. First of all, you need to include the buttonless dfu service in services init, like it is done in the ble_app_buttonless_dfu example. Then, you also need to include the function&amp;nbsp;ble_dfu_buttonless_async_svci_init() before you start advertising. The reason for this is that if you don&amp;#39;t include this, you will receive a hardfault when you try to enter DFU mode. However, lacking this does not explain the behavior that you are seeing.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I was made aware of this today, but there may be a bug in the nRF Connect -&amp;gt; programmer app, when you program .hex files with different non-connected flash sections, such as the bootloader does. Can you please try to use nrfjprog (nRF Command Line tools) to program the bootloader .hex file. (&amp;quot;nrfjprog --program &amp;lt;bootloader file&amp;gt;.hex --verify&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/264565?ContentTypeID=1</link><pubDate>Fri, 14 Aug 2020 08:08:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9fee7e4f-c0ab-429e-89e7-b0dee9945782</guid><dc:creator>cor10</dc:creator><description>&lt;p&gt;&lt;span&gt;Hello Edvin. Up above you mention that: &amp;quot;This example contains a DFU service, which has only one job, put the device back in DFU mode. You need to include this service in your application firmware, so that nRF Connect/nRF Toolbox recognizes this service, and uses it to put it back in DFU mode&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I found success with the Button-based DFU. Everything works perfectly. Then I tried to build the Buttonless DFU app, and I uploaded it via nRF Connect Mobile (iOS) just like I had been doing with the previous Button-based DFU and test apps. My device successfully advertises itself as &amp;quot;Nordic_Buttonless&amp;quot;, but I only see the Generic Access, Generic Attribute, and Nordic UART Primary Services listed in the nRF Connect app. There is no DFU Service nor Characteristic&amp;nbsp;available for me to write to. Going off of what you said above, is there something else I need to edit in the Buttonless BLE DFU app in order to include the DFU service in my application firmware? I am trying to run this Buttonless DFU app as it is in the example with no modification (other than removing the need for bonds), but feel like I havent enabled things properly. Can you help give me some advice on how to resolve this? Thank you :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Getting error "DFU characteristic not found"</title><link>https://devzone.nordicsemi.com/thread/264049?ContentTypeID=1</link><pubDate>Tue, 11 Aug 2020 12:31:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:76d5f991-b5e1-4949-9234-9fb4067331bf</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Let me try to summarize this.&lt;/p&gt;
&lt;p&gt;You are using the bootloader from the normal SDK (SDK17.0.0) and the application from the Mesh SDK, right?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q1: Is your issue actually that when you have performed a DFU, and updated the application, then you are not able to perform the DFU again?&lt;/p&gt;
&lt;p&gt;If so, that is because your device is not in DFU mode, and there is no way for the application to put it back in DFU mode. I suggest that for now, skip everything Mesh related, and even the dongle. Test the ble_app_buttonless_dfu example on the DK. This example contains a DFU service, which has only one job, put the device back in DFU mode. You need to include this service in your appliation firmware, so that nRF Connect/nRF Toolbox recognizes this service, and uses it to put it back in DFU mode.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are alternative methods to put it in DFU mode. This is a bit more tricky on the dongle, because it only has one button, but if you look in the SDK\examples\dfu\secure_bootloader\pca10056_s140_ble example, and look in nrf_bootloader.c -&amp;gt;&amp;nbsp;dfu_enter_check() -&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    if (NRF_BL_DFU_ENTER_METHOD_BUTTON &amp;amp;&amp;amp;
       (nrf_gpio_pin_read(NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN) == 0))
    {
        NRF_LOG_DEBUG(&amp;quot;DFU mode requested via button.&amp;quot;);
        return true;
    }&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If NRF_BL_DFU_ENTER_METHOD_BUTTON is defined, then it will read that pin on startup, and enter DFU mode if it is pressed. Then nRF Toolbox/nRF Connect can perform another DFU.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q2:&lt;/p&gt;
&lt;p&gt;I have not used nRF Toolbox before for DFU. Perhaps you can try nRF Connect for Android. There you just upload the .zip file, containing the init file and the application image. Either way, you need to create the application image using nrfutil, which will give you a .zip file. Didn&amp;#39;t you do this already to perform step 3 and step 4 in your explanation?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q3:&lt;/p&gt;
&lt;p&gt;Yes. That is correct.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q4:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The bootloader verifies that the application is signed using the private key. Then it stores this in the bootloader settings. If the application doesn&amp;#39;t match what it says in the bootloader settings, it will reject the application. This is a safety mechanism.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are two ways of generating bootloader settings. Either performing DFU, so that the bootloader generates the bootloader settings for you, or you can generate them manually using &amp;quot;&lt;a href="https://infocenter.nordicsemi.com/topic/ug_nrfutil/UG/nrfutil/nrfutil_settings_generate_display.html" rel="noopener noreferrer" target="_blank"&gt;nrfutil settings generate&lt;/a&gt; ...&amp;quot;.&lt;/p&gt;
&lt;p&gt;Imagine that you are in production of a product, and you need to program 1000 units. Then you probably don&amp;#39;t want to program the bootloader using a programmer, and then spend one minute performing the DFU on each device. It is better to program the bootloader + application + bootloader settings using the programmer, as this is much quicker. Therefore you can generate the bootloader settings using the &amp;quot;nrfutil settings generate ...&amp;quot; command, and it will give you the bootloader settings as a hex file, that you can program together with your bootloader and application.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Q5:&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t understand what you mean. Do you want to update the Dongle or the DK?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can use any of them, together with either &lt;a href="https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop" rel="noopener noreferrer" target="_blank"&gt;nRF Connect for Desktop&lt;/a&gt;&amp;nbsp;(-&amp;gt; &amp;quot;Bluetooth Low Energy&amp;quot; application) or nrfutil (command: &amp;quot;&lt;a href="https://infocenter.nordicsemi.com/topic/ug_nrfutil/UG/nrfutil/nrfutil_dfu_ble.html" rel="noopener noreferrer" target="_blank"&gt;nrfutil dfu ble&lt;/a&gt; ...&amp;quot;).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>