This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Combining Provisioner & Client role and Self Provisioning & Configuring client node

Hi,

   Iam working on a project based on Ble Mesh, Iam using nrf5_SDK_for_Mesh_v4.2.0_src. Iam trying to form a BLE Mesh network and control the light bulb. For my application I need provisioner and client combined and will need to switch between client and provisioner roles. So I want my application should provision bulbs and also configure itself as a client node. 
1. I tried provisioning & configuring client but when I send message from client to On/Off sever led, Iam getting "Mesh assert at 0x0002CA32". How can I provision and configure client node itself? 
2. Iam not able get the composition data from sever when I use more than one access element (Error when #define ACCESS_ELEMENT_COUNT (2) )

Parents
  • Hi,

    1. Did you provision and configure the client successfully? You can use addr2line tool to see where the assert occurs, see this.

    I suggest you take a look at the Client example from Mesh SDK v1.0.1. The provisioner and client was combined in this example. The SDK version is old but you can use the example as a reference. This post is also relevant.

    2, What kind of error do you receive? What do you use to provision the device? Have you made any other modifications to the example other than changing the Element Count?

  • Hi,

    1. It seems it asserts at this line:

    NRF_MESH_ASSERT_DEBUG(bearer_event_in_correct_irq_priority());

    related to priority. You should go through this: Setting interrupt priority levels. Use the example I mentioned in the previous answer as a reference to see that everything is done correctly.

    2. Not sure if this is related to this thread. Can you try provisioning and configuration with the nRF Mesh app for iOS/Android and the static provisioner example without modifications? Do you see the same issue? No modifications was made to the server except for Element Count?

Reply
  • Hi,

    1. It seems it asserts at this line:

    NRF_MESH_ASSERT_DEBUG(bearer_event_in_correct_irq_priority());

    related to priority. You should go through this: Setting interrupt priority levels. Use the example I mentioned in the previous answer as a reference to see that everything is done correctly.

    2. Not sure if this is related to this thread. Can you try provisioning and configuration with the nRF Mesh app for iOS/Android and the static provisioner example without modifications? Do you see the same issue? No modifications was made to the server except for Element Count?

Children
  • 1. I have set mesh irq priority as "NRF_MESH_IRQ_PRIORITY_LOWEST" and iam using uart interrupt, uart irq priority as " APP_IRQ_PRIORITY_LOWEST"
    2. Yes I have made some modification. Actually I want to use light bulbs as sever node and also provision & configure light bulbs with static provisioner. Static provisioner uses URI to provision & configure a node so in order to provision light bulbs I modified code. Is element count in provisioner related to URI? 
    Without any modification in static provisioner it works fine. Instead of using URI I have hardcoded  scenario (m_scenarios[i].p_cfg) since I know number of models in light bulb. And any other suggestion to use static provisioner to provision & configure light bulbs?

  • 1. What function is returning this assert? 

    2. I don't think the Element Count is related to URI. URI is a kind of ID to tell which type of device it is. And the number of element is sent when the provisionee respond to the provisioning request, not when getting the compositioning data.

    I suggest you to test out the PyACI provisioner to get a deeper understanding on how everything works.

  • 1. when I try to send on/off message from client to server generic_onoff_client_set() and then it returns mesh assert. I was able to trace upto nrf_mesh_packet_send() this function gets called.
    2. Ok thanks I will try with PyACI provisioner.

Related