<?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>Mesh Assert on timeslot request</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/41379/mesh-assert-on-timeslot-request</link><description>Hi everyone, 
 I have migrated my project from SDK for Mesh v2.1.1 to v3.0.0. 
 I am getting a Mesh Assert when the Mesh is trying to request a radio timeslot after the &amp;quot;NRF_EVT_RADIO_BLOCKED&amp;quot; event has been received. 
 I am getting the retun code 0x0f</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 19 Dec 2018 09:56:52 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/41379/mesh-assert-on-timeslot-request" /><item><title>RE: Mesh Assert on timeslot request</title><link>https://devzone.nordicsemi.com/thread/162454?ContentTypeID=1</link><pubDate>Wed, 19 Dec 2018 09:56:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8a7a484-ad9f-4b96-bf11-32b9f447e578</guid><dc:creator>Marjeris Romero</dc:creator><description>&lt;p&gt;Hi Fabian,&lt;/p&gt;
&lt;p&gt;You said you were using SDK for Mesh v3.0.0? Then you need to use nRF5 SDK 15.2 instead of 15.0. The right guide for integrating Mesh into nRF5 SDK examples will then be this one &lt;a href="https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/Mesh_SDK/v3-0-0/md_doc_getting_started_how_to_nordicSDK"&gt;https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/Mesh_SDK/v3-0-0/md_doc_getting_started_how_to_nordicSDK&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Next time remember you can select the version of the SDK you are want to work with in the Documentation Library using the drop down menu in the top right.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-0e11c372c9c4484c89205fed447afab1/select_5F00_version_5F00_doclib.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The forwarding of SoC events to the mesh stack is already taking care of in &amp;#39;ble_softdevice_support.c&amp;#39; in Mesh SDK v3.0.0.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void on_sd_evt(uint32_t sd_evt, void * p_context)
{
    UNUSED_VARIABLE(p_context);

    (void) nrf_mesh_on_sd_evt(sd_evt);
}

    /* Register Mesh handler for SoC events. */
    NRF_SDH_SOC_OBSERVER(mesh_observer, NRF_SDH_BLE_STACK_OBSERVER_PRIO, on_sd_evt, NULL);
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;So if you already were adding this in your main.c then the SD event observer would have been registered twice and give you a timeslot assert. So now that&amp;#39;s why the problem &amp;quot;was fixed&amp;quot; when you removed &amp;#39;ble_softdevice_support.c&amp;#39;.&lt;/p&gt;
&lt;p&gt;I strongly recommend to follow the guide for Mesh SDK v3.0.0 and use SDK 15.2, since that&amp;#39;s what the Mesh SDK v3.0.0 has been production tested with and can save you some troubles down on the road. Sorry for the inconvenience this time.&lt;br /&gt;&lt;br /&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Marjeris&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh Assert on timeslot request</title><link>https://devzone.nordicsemi.com/thread/162426?ContentTypeID=1</link><pubDate>Wed, 19 Dec 2018 08:38:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c1fa536f-35be-48c5-8e32-6547c107ed6c</guid><dc:creator>Fabian Hauschild</dc:creator><description>&lt;p&gt;Hi Marjeris,&lt;/p&gt;
&lt;p&gt;I have added the mesh functionallity to a BLE example from nRF SDK 15.0.0 (ble_peripheral/ble_app_blinky)&lt;/p&gt;
&lt;p&gt;This example uses this &amp;quot;&lt;span&gt;ble_stack_init&amp;quot; function (in main.c) to initialize the BLE Stack&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**@brief Function for initializing the BLE stack.
 *
 * @details Initializes the SoftDevice and the BLE event interrupt.
 */
static void ble_stack_init(void)
{
    ret_code_t err_code;

    err_code = nrf_sdh_enable_request();
    APP_ERROR_CHECK(err_code);
   
    // Configure the BLE stack using the default settings.
    // Fetch the start address of the application RAM.
    uint32_t ram_start = 0;
    err_code = nrf_sdh_ble_default_cfg_set(APP_BLE_CONN_CFG_TAG, &amp;amp;ram_start);
    APP_ERROR_CHECK(err_code); // FH

    // Enable BLE stack.
    err_code = nrf_sdh_ble_enable(&amp;amp;ram_start);
    APP_ERROR_CHECK(err_code);  // FH

    // Register a handler for BLE events.
    NRF_SDH_BLE_OBSERVER(m_ble_observer, APP_BLE_OBSERVER_PRIO, ble_evt_handler, NULL);
}
&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span&gt;To add the mesh function to this example I followed this guide from the Nordic website&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/Mesh_SDK/v2-1-1/md_doc_getting_started_how_to_nordicSDK"&gt;https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/Mesh_SDK/v2-1-1/md_doc_getting_started_how_to_nordicSDK&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;And added this code to forward SoftDevice events to the mesh stack&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define MESH_SOC_OBSERVER_PRIO 0


// Mesh Event handler
static void mesh_soc_evt_handler(uint32_t evt_id, void * p_context)
{
    nrf_mesh_on_sd_evt(evt_id);
} // end func

// Mesh SOC observer
NRF_SDH_SOC_OBSERVER(m_mesh_soc_observer, MESH_SOC_OBSERVER_PRIO, mesh_soc_evt_handler, NULL);&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Sorry for my late reply and thanks for your help&lt;/p&gt;
&lt;p&gt;Fabian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh Assert on timeslot request</title><link>https://devzone.nordicsemi.com/thread/161813?ContentTypeID=1</link><pubDate>Fri, 14 Dec 2018 08:41:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0175d1e3-ba5b-47ba-b7ce-50eaf12a818d</guid><dc:creator>Marjeris Romero</dc:creator><description>&lt;p&gt;Hi Fabian,&lt;/p&gt;
&lt;p&gt;Sorry for the late reply. But we think that removing &amp;#39;ble_softdevice_support.c&amp;#39; from the project is probably not the &amp;quot;right&amp;quot; solution. Our guess is that your project setup made you register the SD event observer twice. This will happens if you call ble_stack_init() function from &amp;#39;ble_softdevice_support.c&amp;#39;, and also add the handler at the project level.&lt;/p&gt;
&lt;p&gt;Could you check that for me?&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Marjeris&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh Assert on timeslot request</title><link>https://devzone.nordicsemi.com/thread/161250?ContentTypeID=1</link><pubDate>Tue, 11 Dec 2018 14:57:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:69f21d62-7dbc-471a-b668-42acdc1e5658</guid><dc:creator>Fabian Hauschild</dc:creator><description>&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;it seems the problem has been solved by removing &amp;quot;&lt;span&gt;ble_softdevice_support.c&lt;/span&gt;&amp;quot; from the project.&lt;/p&gt;
&lt;p&gt;I have integrated the Mesh functionallity in toan exsiting BLE Project.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks for your help&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Fabian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh Assert on timeslot request</title><link>https://devzone.nordicsemi.com/thread/161235?ContentTypeID=1</link><pubDate>Tue, 11 Dec 2018 14:25:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ef820349-f906-4fbd-87cf-ba77855d671d</guid><dc:creator>Fabian Hauschild</dc:creator><description>&lt;p&gt;Hi Marjeris,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I have used both migration guides you have mentioned.&lt;/p&gt;
&lt;p&gt;I am using the the timeslot.c file from Mesh SDK v3.0.0 .&lt;/p&gt;
&lt;p&gt;I have done this modification to see which return code is causing the assert&lt;/p&gt;
&lt;p&gt;Thanks for your answer&lt;/p&gt;
&lt;p&gt;Fabian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh Assert on timeslot request</title><link>https://devzone.nordicsemi.com/thread/161231?ContentTypeID=1</link><pubDate>Tue, 11 Dec 2018 14:12:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dd098a03-a202-4365-ba95-1ec5ac28ab66</guid><dc:creator>Marjeris Romero</dc:creator><description>&lt;p&gt;Hi Fabian,&lt;/p&gt;
&lt;p&gt;Have you have a look at the migration guides? From v2.0.1 to v2.2.0 &lt;a href="https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/Mesh_SDK/v3-0-0/md_doc_migration_2_0_1_to_2_2_0"&gt;here&lt;/a&gt; and from v2.2.0 to v3.0.0 &lt;a href="https://www.nordicsemi.com/en/DocLib/Content/SDK_Doc/Mesh_SDK/v3-0-0/md_doc_migration_2_2_0_to_3_0_0"&gt;here&lt;/a&gt;. You need to use the timeslot.c file which is included in Mesh SDK v3.0.0 without doing any modifications to it.&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Marjeris&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>