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

Synchronization of actions between different nodes in a mesh?

Hi, when reading BLE Mesh specs, this paragraph caught my attention:

Messages may support a delay parameter that indicates a delay between receiving a message and starting the state transition. This helps when synchronizing actions of multiple receivers (such as lights) when senders retransmit messages multiple times. Each retransmitted message may indicate a different delay, compensating for the time elapsed since transmitting the first message.

My project could totally use this feature, I'm wondering how this can be done precisely (<=20 ms if possible), that is, let's say I need 6 motors to start rotating at the same time, or else major mechanical mishaps take place, how do I do that, by embedding a hop count of some sort in the message sent over the mesh? Or is there any other way which I am not aware of?

And above everything, how reliable is this? Since if one node fails to receive the message THE FIRST TIME, the outcome could be very, very undesirable?

Parents
  • You want a message with ack if you want reliability, you also want to ensure that all motors have got the message before starting up. You may also want a fallback to cancel and restart if one of the nodes did not ack within your timeout. The mesh already has a hop count that can be used for re-transmits.

    You can use the mesh for this but since the node count is low (only 6 nodes), it is also possible use a simple scanner/advertiser to achieve this level of synchronization.

    All motors can be started within 20ms of each other with sync either on the 16MHz or 32KHz clocks

Reply
  • You want a message with ack if you want reliability, you also want to ensure that all motors have got the message before starting up. You may also want a fallback to cancel and restart if one of the nodes did not ack within your timeout. The mesh already has a hop count that can be used for re-transmits.

    You can use the mesh for this but since the node count is low (only 6 nodes), it is also possible use a simple scanner/advertiser to achieve this level of synchronization.

    All motors can be started within 20ms of each other with sync either on the 16MHz or 32KHz clocks

Children
  • You are right, I'm not there yet, but so far I'm thinking about utilizing the "shockburst" TM feature: find out the "central" (spacially speaking) node, and assign her with the task of sending out synchronizing bursts periodically. The Shockburst has a max range of 200m, which is more than enough for us.

  • Do you mean combining Bluetooth mesh and Shockburst, or using Shockburst only?

    As for range it is more or less the same between Shockburst and BLE. There is a small difference in the modulation, and the packet format is different, but nothing that makes a big impact on the range.

    In a line of sight scenario you can reach 200m, but indoor I would expect significantly lower range.

    Best regards

  • Hi then the whole "Shockburst" is kind of misleading isn't it?

    I was under the impression that typical BLE ad packets goes no further (and rightly so) than 11 or 12 meters outdoor?

  • Hi

    I don't know what you put into the Shockburst term, if you find it misleading?

    Shockburst is getting pretty old by now, and was introduced before BLE was even specified. I think the "burst" part of the name points to the fact that the radio would send short bursts (packets), rather than the older radios where you sent/received a continuous stream and had to assemble/de-assemble the packet manually.

    BLE happens to look a lot like ShockBurst (partly because Nordic was heavily involved in the spec process), and as mentioned except for a minor change in modulation characteristics and a slightly different packet structure, the physical layer is very similar.

    11-12m outdoor range is pretty poor. Assuming you have Nordic devices in both ends you should be able to go further than that, especially if you increase the output power beyond 0dBm.

    If you use a phone to receive the advertisement packet then the receiver sensitivity of the phone makes a difference, and this is outside our control (obviously).

    Best regards

Related