<?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>buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/63443/buttonless-dfu-and-nus</link><description>Hi ! 
 I am on a firmware project for a nrf52832. I am using SES on Windows. 
 There seem to be a problem when combining buttonless DFU and NUS. When I do the services_init, I have to choose if I call &amp;#39;ble_dfu_buttonless_init&amp;#39; or &amp;#39;ble_nus_init&amp;#39;. If I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 14 Jul 2020 13:27:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/63443/buttonless-dfu-and-nus" /><item><title>RE: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/259923?ContentTypeID=1</link><pubDate>Tue, 14 Jul 2020 13:27:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:713c429f-e936-4d68-a6b7-794a38372eeb</guid><dc:creator>JayLynkz</dc:creator><description>&lt;p&gt;Hi Edvin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;figured out that if I place the NUS init before the DFU init in the services init, both work at the same time.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My services_init function looks like this :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void services_init(void)
{
    uint32_t           err_code;
    ble_nus_init_t     nus_init;
    nrf_ble_qwr_init_t qwr_init = {0};
    ble_dfu_buttonless_init_t dfus_init = {0};

    // Initialize Queued Write Module.
    qwr_init.error_handler = nrf_qwr_error_handler;

    err_code = nrf_ble_qwr_init(&amp;amp;m_qwr, &amp;amp;qwr_init);
    APP_ERROR_CHECK(err_code);

    // 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);

    // DFU 

    dfus_init.evt_handler = ble_dfu_evt_handler;
    
    err_code = ble_dfu_buttonless_init(&amp;amp;dfus_init);
    APP_ERROR_CHECK(err_code);
    
    
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Thanks for your advices about the advertisement report, this might be helpful in the future !&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jerome&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/259226?ContentTypeID=1</link><pubDate>Thu, 09 Jul 2020 14:04:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e620cf48-1d2e-4031-b280-5014fabb2bd4</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Sorry. Perhaps I was a bit short in the previous reply.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And it is perhaps a bit tedious to find the address this way. But if you use nRF Connect for Desktop -&amp;gt; Bluetooth Low Energy, you can see the address of all advertising devices:&lt;/p&gt;
&lt;p&gt;So if I flash the ble_app_uart example (and softdevice) to my DK, so that it starts advertising I will see this in nRF Connect for Desktop:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-6ef94e798a3a46438254ce219ab6cfc9/pastedimage1594302100111v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note that this is the reverse byte order (MSB), so in the application, the address of this device would be:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;addr[0] = 0xC1
addr[1] = 0x0A
addr[2] = 0x6B
addr[3] = 0xA7
addr[4] = 0xCE
addr[5] = 0xED&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Now, the point of all this was that you should check your advertisements after you add the buttonless service. On your central, add the&amp;nbsp;BLE_GAP_EVT_ADV_REPORT to your&amp;nbsp;ble_evt_handler() in main.c:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;        case BLE_GAP_EVT_ADV_REPORT:
            NRF_LOG_INFO(&amp;quot;advertisement from %02x:%02x:%02x:%02x:%02x:%02x&amp;quot;, p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[0],
                                                                             p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[1],
                                                                             p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[2],
                                                                             p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[3],
                                                                             p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[4],
                                                                             p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[5]);
            NRF_LOG_RAW_INFO(&amp;quot;Adv len: %d, data: &amp;quot;, p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.data.len);
            for (uint16_t i=0; i&amp;lt; p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.data.len; i++)
            {
                NRF_LOG_RAW_INFO(&amp;quot;%02x:&amp;quot;, p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.data.p_data[i]);
            }
            NRF_LOG_RAW_INFO(&amp;quot;\r\n&amp;quot;);
            break;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This would print all advertisements that it scans, which is a lot. Therefore I thought you could filter out only the advertisements that you know you are looking for by using a &amp;quot;manual&amp;quot; filter by the address. One byte is probably enough. Therefore, in my case, I would add this if check to only print advertisements from one known address:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;        case BLE_GAP_EVT_ADV_REPORT:
            if (p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[0] == 0xC1)
            {
                NRF_LOG_INFO(&amp;quot;advertisement from %02x:%02x:%02x:%02x:%02x:%02x&amp;quot;, p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[0],
                                                                                 p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[1],
                                                                                 p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[2],
                                                                                 p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[3],
                                                                                 p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[4],
                                                                                 p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.peer_addr.addr[5]);
                NRF_LOG_RAW_INFO(&amp;quot;Adv len: %d, data: &amp;quot;, p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.data.len);
                for (uint16_t i=0; i&amp;lt; p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.data.len; i++)
                {
                    NRF_LOG_RAW_INFO(&amp;quot;%02x:&amp;quot;, p_ble_evt-&amp;gt;evt.gap_evt.params.adv_report.data.p_data[i]);
                }
                NRF_LOG_RAW_INFO(&amp;quot;\r\n&amp;quot;);
            }
            break;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You can do something similar (the manual address filter in BLE_GAP_EVT_ADV_REPORT in nrf_ble_scan.c, but remember to remove it later!!)&lt;/p&gt;
&lt;p&gt;To see why the central don&amp;#39;t connect to your device when it detects the advertising report.&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: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/259039?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 16:15:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cff550b3-3c85-414f-892a-56226ccb6c61</guid><dc:creator>JayLynkz</dc:creator><description>&lt;p&gt;Hi Edvin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span&gt;&amp;nbsp;Look at the advertising reports, to find the address of the advertising device. Then write it down.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I couldn&amp;#39;t find the way to see the advertising report. Do you mean that I should find an advertising report from my peripheral ? Is there any doc I could refer to on how to get the advertising report ?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What is your&amp;nbsp;all_filter_mode in nrf_ble_scan.c?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="text"&gt;bool const all_filter_mode   = p_scan_ctx-&amp;gt;scan_filters.all_filters_mode;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Thanks !&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/259025?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 14:41:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c67e7ac7-e9f8-4425-b34e-5ab6b703d2c0</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Try this:&lt;/p&gt;
&lt;p&gt;Remove the buttonless service (or use the unmodified NUS example). Look at the advertising reports, to find the address of the advertising device. Then write it down.&lt;/p&gt;
&lt;p&gt;Then add the buttonless service back, and add the&amp;nbsp;BLE_GAP_EVT_ADV_REPORT event in your central&amp;#39;s ble_evt_handler in main.c.&lt;/p&gt;
&lt;p&gt;Then add a custom filter so that you only see the advertisements from that device, using the address that you wrote down.&lt;/p&gt;
&lt;p&gt;Then try to see what the advertisement packet looks like compared to the advertisements from ble_app_uart example. Are they identical?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Also, try to debug in the&amp;nbsp;nrf_ble_scan_on_ble_evt() in nrf_ble_scan.c, and find out why the scan filter is not matched. What is your&amp;nbsp;all_filter_mode in nrf_ble_scan.c?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/259016?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 14:05:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1149bd7b-1de1-4bf4-bdd4-8daaace9bd43</guid><dc:creator>JayLynkz</dc:creator><description>&lt;p&gt;Hi Edvin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Do you see the advertisements from the peripheral using e.g. nRF Connect?&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What is your central in this case ? What sort of filters does it use to decide who to connect to?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My central is uploaded on a nrf52832 devkit. Its a custom app based on ble_app_uart_c.&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This is the filter used. You can see it is the same that I am using for the peripheral, which makes sense because it used to work before I added the DFU part in services_init().&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**@brief NUS UUID. */
static ble_uuid_t const m_nus_uuid =
{
    .uuid = BLE_UUID_NUS_SERVICE,
    .type = NUS_SERVICE_UUID_TYPE
};&lt;/pre&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And what SDK version do you use (just in case it is relevant later).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SDK 16&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll assume you are using the ble_app_uart_c as a central. I&amp;#39;ll refer to SDK 17.0.0 for now:&lt;/p&gt;
&lt;p&gt;You can see in scan_init(), it sets up a filter for the UUID for the NUS. Does your advertisement contain the NUS service&amp;#39;s UUID ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here&amp;#39;s my scan_init() function. You can see it does include the UUID for the NUS.&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void scan_init(void)
{
    ret_code_t          err_code;
    nrf_ble_scan_init_t init_scan;

    memset(&amp;amp;init_scan, 0, sizeof(init_scan));

    init_scan.connect_if_match = true;
    init_scan.conn_cfg_tag     = APP_BLE_CONN_CFG_TAG;

    err_code = nrf_ble_scan_init(&amp;amp;m_scan, &amp;amp;init_scan, scan_evt_handler);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_ble_scan_filter_set(&amp;amp;m_scan, SCAN_UUID_FILTER, &amp;amp;m_nus_uuid);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_ble_scan_filters_enable(&amp;amp;m_scan, NRF_BLE_SCAN_UUID_FILTER, false);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I add down here my services_init() function, in which I manually added the ble_dfu_buttonless_init.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**@brief Function for initializing services that will be used by the application.
 */
void services_init(void)
{
    uint32_t           err_code;
    ble_nus_init_t     nus_init;
    nrf_ble_qwr_init_t qwr_init = {0};
     ble_dfu_buttonless_init_t dfus_init = {0};

    // Initialize Queued Write Module.
    qwr_init.error_handler = nrf_qwr_error_handler;

    err_code = nrf_ble_qwr_init(&amp;amp;m_qwr, &amp;amp;qwr_init);
    APP_ERROR_CHECK(err_code);

    // DFU 

    dfus_init.evt_handler = ble_dfu_evt_handler;

    err_code = ble_dfu_buttonless_init(&amp;amp;dfus_init);
    APP_ERROR_CHECK(err_code);
    
    // 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;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As I said, when I take it off, my central finds the peripheral using NUS. But when I add the buttonless init, buttonless dfu works but the central doesn&amp;#39;t find my peripheral anymore.&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thanks for your help !&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/258970?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 10:24:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:40ae18cd-fa53-4873-af0d-d58f9a4167ff</guid><dc:creator>Edvin</dc:creator><description>[quote user="JayLynkz"]However, even though I see it advertising, the central does not connect like it used to before I setted up DFU. Is it anything else I need to change ?[/quote]
&lt;p&gt;&amp;nbsp;That is probably because of the central&amp;#39;s selection of who to connect to. Do you see the advertisements from the peripheral using e.g. nRF Connect?&lt;/p&gt;
&lt;p&gt;What is your central in this case? What sort of filters does it use to decide who to connect to? And what SDK version do you use (just in case it is relevant later).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll assume you are using the ble_app_uart_c as a central. I&amp;#39;ll refer to SDK 17.0.0 for now:&lt;/p&gt;
&lt;p&gt;You can see in scan_init(), it sets up a filter for the UUID for the NUS. Does your advertisement contain the NUS service&amp;#39;s UUID?&lt;/p&gt;
&lt;p&gt;&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: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/258881?ContentTypeID=1</link><pubDate>Tue, 07 Jul 2020 20:09:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:29bc5098-bcff-4cd2-b042-53d5cf6ec8f0</guid><dc:creator>JayLynkz</dc:creator><description>&lt;p&gt;Added this information to the uuids.. didn&amp;#39;t work either.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;ble_uuid_t m_adv_uuids[] =                                          /**&amp;lt; Universally unique service identifier. */
{
    {BLE_UUID_NUS_SERVICE, NUS_SERVICE_UUID_TYPE},
    {BLE_UUID_DEVICE_INFORMATION_SERVICE, BLE_UUID_TYPE_BLE}
};
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/258871?ContentTypeID=1</link><pubDate>Tue, 07 Jul 2020 17:55:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:62c26556-fbec-4784-9f6a-afaa8ecbd116</guid><dc:creator>JayLynkz</dc:creator><description>&lt;p&gt;Hi Edvin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for your answer. You are right, I switched the&amp;nbsp;&lt;span&gt;NRF_SDH_BLE_VS_UUID_COUNT&amp;nbsp;to 2 and had to move RAM start and size, now it works !&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Now, when I am avdertising, I am able to perform buttonless DFU with nrfToolbox. That part works fine.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The reason why I am using NUS is for a central to connect with the device and exchange data with the device. However, even though I see it advertising, the central does not connect like it used to before I setted up DFU. Is it anything else I need to change ?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I suspect that part of the code to play a role :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;ble_uuid_t m_adv_uuids[] =                                          /**&amp;lt; Universally unique service identifier. */
{
    {BLE_UUID_NUS_SERVICE, NUS_SERVICE_UUID_TYPE}
};&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/258833?ContentTypeID=1</link><pubDate>Tue, 07 Jul 2020 14:33:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:227e2af3-9881-4d25-8416-8abf801e7287</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Can you please check what function inside ble_nus_init() that returned this?&lt;/p&gt;
&lt;p&gt;Not just inside the ble_nus_init() function, but keep digging until you find the softdevice call (sd_...()) that returned this value (4).&lt;/p&gt;
&lt;p&gt;The main suspect is that you need to increase the&amp;nbsp;NRF_SDH_BLE_VS_UUID_COUNT from 1 to 2 in sdk_config.h.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;At least if it is the sd_ble_uuid_vs_add() that returns 4.&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: buttonless DFU and NUS</title><link>https://devzone.nordicsemi.com/thread/258681?ContentTypeID=1</link><pubDate>Mon, 06 Jul 2020 20:06:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7f1bb3f-f4d2-44bd-9200-a7496e2830fd</guid><dc:creator>JayLynkz</dc:creator><description>&lt;p&gt;The error is NRF_ERROR_NO_MEM that is raised from &amp;#39;ble_nus_init&amp;#39; when it is called after &amp;#39;ble_dfu_buttonless_init&amp;#39;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>