<?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>nRF52 SDK14.2 &amp;quot;ble_app_buttonless_dfu&amp;quot; example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/30915/nrf52-sdk14-2-ble_app_buttonless_dfu-example-what-is-the-value-written-to-the-characteristic-when-entering-the-bootloader-using-nrf-connect-application-android</link><description>I am trying the buttonless DFU example from SDK14.2.0. I am not following the testing procedure mentioned at infocentre for SDK14.2. 
 Followed test procedure: 
 1. Erase device. 
 2. Upload softdevice v5.0.0 
 3. Upload bootloader_secure_ble bootloader</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 09 Mar 2018 09:52:54 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/30915/nrf52-sdk14-2-ble_app_buttonless_dfu-example-what-is-the-value-written-to-the-characteristic-when-entering-the-bootloader-using-nrf-connect-application-android" /><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/123591?ContentTypeID=1</link><pubDate>Fri, 09 Mar 2018 09:52:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a9c7bfc-6036-48a9-9614-5a5d02982f4f</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;Hi Rishi,&lt;/p&gt;
&lt;p&gt;Did you remember to comment out the SDK version of&amp;nbsp;ble_dfu_buttonless_init() in the ble_dfu.c &amp;amp; the header file?&amp;nbsp;Regarding the struct&amp;nbsp;ble_dfu_buttonless_init_t in the ble_dfu.h header file, I guess&amp;nbsp;it might be better to leave it in the old header file &amp;amp; only write your new code in your new files (.c. &amp;amp; .h) to see the code separation between the SDK &amp;amp; what you have customized. &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/20256/modifying-sdk-is-that-good-practice" target="_blank" rel="noopener noreferrer"&gt;See this link for good practice&lt;/a&gt; regarding making changes to the SDK code. Then, I would remember to search&amp;nbsp;in your copy of the buttonless DFU SDK example &amp;amp; include the new header file in all of the places that the old&amp;nbsp;ble_dfu_buttonless_init() function got called. Remember to include ble_dfu.h in your new header file. If you are only making this change &amp;amp; adding your custom vendor specific base UUID like I mentioned, this should be pretty straightforward. Hope that helps &amp;amp; good luck!&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Bjørn Kvaale&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/123440?ContentTypeID=1</link><pubDate>Thu, 08 Mar 2018 12:56:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0a5bcac0-d630-4c76-8367-274bf8fb3ca6</guid><dc:creator>Rishi</dc:creator><description>&lt;p&gt;Hey Bjorn,&lt;/p&gt;
&lt;p&gt;I am using nRF52832 (PCA10040) board.&lt;/p&gt;
&lt;p&gt;I repeated your test procedure and it worked out fine.&lt;/p&gt;
&lt;p&gt;The issue persists if I define these parameters in separate include and source files. As I do not wish to make changes to the SDK files, I defined a new function to initialise the buttonless service. However, this is where things don&amp;#39;t work out.&lt;/p&gt;
&lt;p&gt;Also, I call &lt;em&gt;&lt;strong&gt;dfu_buttonless_init(&amp;amp;dfus_init)&amp;nbsp;&lt;/strong&gt;&lt;/em&gt;in the&amp;nbsp;&lt;strong&gt;&lt;em&gt;services_init(&lt;/em&gt;)&amp;nbsp;&lt;/strong&gt;function. So this is consistent.&lt;/p&gt;
&lt;p&gt;Please check the function included below and try performing a similar test. I would like to ensure if I am missing out on something or there are some other dependencies which are causing this issue on having a new file.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Rishi&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**@brief Function to initialize buttonless bootloader service.
 */
uint32_t dfu_buttonless_init(const ble_dfu_buttonless_init_t * p_dfu_init)
{
    uint32_t        err_code;
    ble_uuid_t      service_uuid;
    ble_uuid128_t   vendor_base_uuid = BLE_UUID_OUR_BASE_UUID;

    VERIFY_PARAM_NOT_NULL(p_dfu_init);

    // Initialize the service structure.
    m_dfu.conn_handle                  = BLE_CONN_HANDLE_INVALID;
    m_dfu.evt_handler                  = p_dfu_init-&amp;gt;evt_handler;
    m_dfu.is_waiting_for_reset         = false;
    m_dfu.is_ctrlpt_indication_enabled = false;

    err_code = ble_dfu_buttonless_backend_init(&amp;amp;m_dfu);
    VERIFY_SUCCESS(err_code);
    
    BLE_UUID_BLE_ASSIGN(service_uuid, BLE_UUID_OUR_SERVICE_UUID);

    // Add the DFU service declaration.
    err_code = sd_ble_gatts_service_add(BLE_GATTS_SRVC_TYPE_PRIMARY,
                                        &amp;amp;service_uuid,
                                        &amp;amp;(m_dfu.service_handle));

    VERIFY_SUCCESS(err_code);

    // Add vendor specific base UUID to use with the Buttonless DFU characteristic.
    // err_code = sd_ble_uuid_vs_add(&amp;amp;nordic_base_uuid, &amp;amp;m_dfu.uuid_type);
    err_code = sd_ble_uuid_vs_add(&amp;amp;vendor_base_uuid, &amp;amp;m_dfu.uuid_type);
    VERIFY_SUCCESS(err_code);

    // Add the Buttonless DFU Characteristic (with bonds/without bonds).
    err_code = ble_dfu_buttonless_char_add(&amp;amp;m_dfu);
    VERIFY_SUCCESS(err_code);

    return NRF_SUCCESS;
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/123402?ContentTypeID=1</link><pubDate>Thu, 08 Mar 2018 10:53:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c3d2360a-00e0-4a01-8c50-63f317e1c3a4</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;Hi Rishi,&lt;/p&gt;
&lt;p&gt;Quick question: are you using an nrf52 Dev Kit?&lt;/p&gt;
&lt;p&gt;Just finished testing on my nrf 52 DK with a 52832 chip. I went through the exact same procedure as you did and got it working with both the nordic base uuid &amp;amp; a vendor specific UUID using SDK 14.2!&lt;/p&gt;
&lt;p&gt;To get the vendor specific UUID, I used this &lt;a href="https://www.uuidgenerator.net/" rel="noopener noreferrer" target="_blank"&gt;online generator&lt;/a&gt; to generate the UUID. Then, I went into ble_dfu.h in the buttonless dfu app &amp;amp; wrote this code underneath the #define&amp;nbsp;BLE_NORDIC_VENDOR_BASE_UUID.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/**@brief Test vendor-specific base UUID, 3fd64673-9a82-49c5-adaa-349a9faadece from
 https://www.uuidgenerator.net/
 */
#define BLE_VENDOR_SPECIFIC_BASE_UUID               \
{{                                                  \
    0xCE, 0xDE, 0xAA, 0x9F, 0x9A, 0x34, 0xAA, 0xAD, \
    0xC5, 0x49, 0x82, 0x9A, 0x73, 0x46, 0xD6, 0x3F  \
}}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Then, in ble_dfu.c, I added a line under:&amp;nbsp;ble_uuid128_t&amp;nbsp; &amp;nbsp;nordic_base_uuid = BLE_NORDIC_VENDOR_BASE_UUID;&lt;/p&gt;
&lt;p&gt;where I defined the vendor_base_uuid:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;ble_uuid128_t   vendor_base_uuid = BLE_VENDOR_SPECIFIC_BASE_UUID; // added by BK&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Lastly, I changed the code&amp;nbsp;err_code = sd_ble_uuid_vs_add(&amp;amp;nordic_base_uuid, &amp;amp;m_dfu.uuid_type);&amp;nbsp;&lt;/p&gt;
&lt;p&gt;to:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;err_code = sd_ble_uuid_vs_add(&amp;amp;vendor_base_uuid, &amp;amp;m_dfu.uuid_type);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I used the regular bootloader with private &amp;amp; public keys &amp;amp; &lt;a href="https://devzone.nordicsemi.com/b/blog/posts/getting-started-with-nordics-secure-dfu-bootloader" rel="noopener noreferrer" target="_blank"&gt;followed the Nordic secure dfu blog&lt;/a&gt; post to get that set up. Should work with the debug bootloader too, but I have not tested this.&lt;/p&gt;
&lt;p&gt;I then followed your steps 1-7 &amp;amp; on step 8&amp;nbsp;I press the button with the up &amp;amp; down arrows next to the unknown characteristic. A cross mark should appear on the button.&amp;nbsp;This characteristic should have the same base UUID that you generated with the online calculator above. Then, I pressed the write button (the one with the upwards arrow) &amp;amp; wrote 0x01 to the characteristic &amp;amp; pressed send.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You should then notice that the DK enters bootloader mode because LEDs 1 &amp;amp; 3 start lighting up. I tested this using nrf connect for mobile on both Android &amp;amp; iPhone &amp;amp; both methods worked out of the box.&lt;/p&gt;
&lt;p&gt;Hope that helps! Kind Regards,&lt;/p&gt;
&lt;p&gt;Bjørn Kvaale&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/123253?ContentTypeID=1</link><pubDate>Wed, 07 Mar 2018 13:21:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:485b52f6-2551-4734-b1b9-d779e6b9d432</guid><dc:creator>Rishi</dc:creator><description>&lt;p&gt;Yes, on enabling CCCD and enabling notification, I get the message, &amp;quot;Indications Enabled&amp;quot; and this is followed by writing the value.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am waiting for your test results.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/123206?ContentTypeID=1</link><pubDate>Wed, 07 Mar 2018 10:09:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:944dbaca-7e2f-4ff7-9981-b2bedb191a15</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;Did you enable CCCD on nrf connect before writing 0x01 to the characteristic? Asked another application engineer &amp;amp; he was sure that writing 0x01 would work to enable the bootloader mode. I&amp;nbsp;have started testing &amp;amp; will get back to you with some more updates.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/122931?ContentTypeID=1</link><pubDate>Tue, 06 Mar 2018 06:40:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e87ed593-bba9-489d-9f7c-0625bbeb4137</guid><dc:creator>Rishi</dc:creator><description>&lt;p&gt;Hi Bjorn,&lt;/p&gt;
&lt;p&gt;Thanks for your response. I have tested the example as described in infocentre document. It works fine. SDK12.2 testing procedure works out as well. The only difference is that now the user does not have to write any value to the characteristic, rather the nRF Connect UI takes care of this by asking a simple Yes/No question to switch to bootloader mode.&lt;/p&gt;
&lt;p&gt;The issue is that the nRF Connect is dependent on the Nordic Vendor Specific UUID. So, by changing the 128-bit UUID, the nRF Connect no longer asks a Yes/No question, and expects a certain value to be written to the characteristic as observed previously in SDK12.2.&lt;/p&gt;
&lt;p&gt;Going through the code, I see only two possibilities&amp;nbsp;&lt;strong&gt;0x01&amp;nbsp;&lt;/strong&gt;or&amp;nbsp;&lt;strong&gt;0xB1&lt;/strong&gt;. I would appreciate if you can test this behaviour and tell me what can I do to make it work.&lt;/p&gt;
&lt;p&gt;Buttonless DFU has to work along with other services and current testing methodology will simply not work in production scenario.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Rishi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/122750?ContentTypeID=1</link><pubDate>Mon, 05 Mar 2018 08:34:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9ac02ef0-c933-4a51-8b0d-fc54d0d182f9</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Sorry for the delayed response. It seems that the Buttonless DFU example has changed in SDK 14. If you compare the infocenter testing document for &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v12.2.0/ble_sdk_app_buttonless_dfu.html?cp=4_0_6_4_2_2_22" rel="noopener noreferrer" target="_blank"&gt;SDK 12.2&lt;/a&gt; with &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/ble_sdk_app_buttonless_dfu.html?cp=4_0_0_4_2_2_6" rel="noopener noreferrer" target="_blank"&gt;SDK 14.2&lt;/a&gt;, you notice that you don&amp;#39;t write 0x01 to the control point anymore.&amp;nbsp;Instead of writing 0x01 to enable the bootloader that starts the dfu process, you can automatically start the dfu process from nrf connect instead. I would recommend testing the example the way it is explained in the SDK 14.2 infocenter document link above.&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Bjørn Kvaale&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52 SDK14.2 "ble_app_buttonless_dfu" example: What is the value written to the characteristic when entering the bootloader using nRF Connect application (Android).</title><link>https://devzone.nordicsemi.com/thread/122401?ContentTypeID=1</link><pubDate>Thu, 01 Mar 2018 09:16:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0528de41-a6ed-47b8-bbca-4e16966fd34c</guid><dc:creator>Rishi</dc:creator><description>&lt;p&gt;Can I please have some update on this issue from Nordic Tech Support?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>