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

Mesh network durations

Hi, 

I created a mesh network with a mesh model which allows me to send a string message over it.

I use one board with a provisioning role and 3 others as provisionee. When i add them to the mesh networks, it takes about 3 minutes per device. Do you have any idea on how i can reduce this duration ? 

If I want to send 50 packets of 20 bytes over BLE Mesh, do you have any idea on the time it would take to send and receive all of them ? 

Thank you.

Parents
  • Hi,

    Mesh SDK v2.0.0 was just released. I highly recommend you continue working with that. The documentation in Infocenter will be updated shortly.

    1. When i add them to the mesh networks, it takes about 3 minutes per device. Do you have any idea on how i can reduce this duration?
       
      3 minutes per device sounds like a lot. Do you mean provisioning or both provisioning and configuration? In v1.0.1 we demonstrated provisioning without configuration in 0.6 seconds using the serial interfaceIf you are dropping the provisioning link for some reason, there is a spec mandatory timeout of 60 seconds before the link is reset (p. 259, sec. 5.4.4). In the Mesh SDK v2.0.0 release we're providing an interactive provisioning and configuration script based on the serial example and interactive pyaci. We're also splitting up the provisioner role into a separate example.

    2. If I want to send 50 packets of 20 bytes over BLE Mesh, do you have any idea on the time it would take to send and receive all of them? 

      Regarding timing considerations. Assuming more than 11 bytes of application payload s.t. the message is segmented, an N-byte payload will be split up in ceil((N + MIC_SIZE)/12) segments. The timing is non-deterministic but you might get some statistical numbers for it experimentally. The numbers are for the most part determined by number of segments, timeout settings for re-transmission in sender's the transport layer, timeout settings for acknowledgements in the receiver's transport layer, TTL, number of hops between the nodes and packet loss. Do a search for mesh throughput on DevZone and you will find answers to similar questions.

    3. Could you help me finding what i am doing wrong?

      There might be other issues with your code but one is that you are busy-wating in the GPIO IRQ handler. That will block the mesh from doing packet processing. Don't use any nrf_delay_() calls from within an IRQ handler. I'd also suggest thinking about how many bytes you *really need to send. The BLE Mesh is specifically designed to send short payloads very effective through the mesh.

    In the future we would appreciate it if you created separate support cases for separate questions. This will greatly help other user find relevant questions and answers on DevZone.

    Ketil

Reply
  • Hi,

    Mesh SDK v2.0.0 was just released. I highly recommend you continue working with that. The documentation in Infocenter will be updated shortly.

    1. When i add them to the mesh networks, it takes about 3 minutes per device. Do you have any idea on how i can reduce this duration?
       
      3 minutes per device sounds like a lot. Do you mean provisioning or both provisioning and configuration? In v1.0.1 we demonstrated provisioning without configuration in 0.6 seconds using the serial interfaceIf you are dropping the provisioning link for some reason, there is a spec mandatory timeout of 60 seconds before the link is reset (p. 259, sec. 5.4.4). In the Mesh SDK v2.0.0 release we're providing an interactive provisioning and configuration script based on the serial example and interactive pyaci. We're also splitting up the provisioner role into a separate example.

    2. If I want to send 50 packets of 20 bytes over BLE Mesh, do you have any idea on the time it would take to send and receive all of them? 

      Regarding timing considerations. Assuming more than 11 bytes of application payload s.t. the message is segmented, an N-byte payload will be split up in ceil((N + MIC_SIZE)/12) segments. The timing is non-deterministic but you might get some statistical numbers for it experimentally. The numbers are for the most part determined by number of segments, timeout settings for re-transmission in sender's the transport layer, timeout settings for acknowledgements in the receiver's transport layer, TTL, number of hops between the nodes and packet loss. Do a search for mesh throughput on DevZone and you will find answers to similar questions.

    3. Could you help me finding what i am doing wrong?

      There might be other issues with your code but one is that you are busy-wating in the GPIO IRQ handler. That will block the mesh from doing packet processing. Don't use any nrf_delay_() calls from within an IRQ handler. I'd also suggest thinking about how many bytes you *really need to send. The BLE Mesh is specifically designed to send short payloads very effective through the mesh.

    In the future we would appreciate it if you created separate support cases for separate questions. This will greatly help other user find relevant questions and answers on DevZone.

    Ketil

Children
No Data
Related