BLE mesh -flooding, routing

Hi,

I have a particular use case and have been thinking different ways to implement it.

 Let's say there are different beacon sensors (static/moving) installed in a big factory/warehouse/building. The straightforward method to collect the data is installing BLE gateways.

I would like to reduce the number of BLE gateways (due to some reason). Instead, I want BLE nodes installed at different points to receive the sensor data and route this data to the gateway installed at a distant point.

For eg:- BLE nodes N1, N2, N3 .. Nn will be continuously scanning for sensor data S1, S2, S3.. Sn, and the received data have to be routed to BLE gateways G1, G2 .. Gn.

Is there any already existing model/protocol which I can reuse to implement the above use case. Does BLE mesh protocol/model help me to implement the above use case ? Could you please share your thoughts/inputs ?

Parents
  • Hello,

    Is there any already existing model/protocol which I can reuse to implement the above use case.

    We don't have any examples that do this out of the box, as far as I know. 

    Does BLE mesh protocol/model help me to implement the above use case ? Could you please share your thoughts/inputs ?

    Mesh is a possibility, but you will find that it heavily depends on the throughput. Mesh doesn't have a great throughput. 

    In general, what sort of throughput are you looking at? How many sensors are you trying to forward the data from? And what is the sample rate and sample size for each sensor?

    Best regards,

    Edvin

  • Hi Edvin,

    Thank you for your reply.

    In general, what sort of throughput are you looking at? How many sensors are you trying to forward the data from? And what is the sample rate and sample size for each sensor?

    the sample rate will be just 1 update per 30 seconds.

    sample size will be less than 20 bytes.

    The number of sensors will actually vary.

    We don't have any examples that do this out of the box, as far as I know. 

    What will be the best SDK to start with ? (nRF5 SDK/nRF5 SDK for Mesh). I know if I use nRF5 SDK I will have to implement the entire algorithm for routing and other things. I haven't used nRF5 SDK for Mesh so far and I do not know if it will be the right starting point. 

Reply
  • Hi Edvin,

    Thank you for your reply.

    In general, what sort of throughput are you looking at? How many sensors are you trying to forward the data from? And what is the sample rate and sample size for each sensor?

    the sample rate will be just 1 update per 30 seconds.

    sample size will be less than 20 bytes.

    The number of sensors will actually vary.

    We don't have any examples that do this out of the box, as far as I know. 

    What will be the best SDK to start with ? (nRF5 SDK/nRF5 SDK for Mesh). I know if I use nRF5 SDK I will have to implement the entire algorithm for routing and other things. I haven't used nRF5 SDK for Mesh so far and I do not know if it will be the right starting point. 

Children
  • I see. 

    I wish there was a straight forward answer to this, but let's try to look at some general traits of the different protocols.

    In Bluetooth LE, you have roughly 1.3MBPS of actual throughput under ideal conditions. This will be split between the number of concurrent connections that this device has, in addition to some overhead. So two connections means 1.3MBPS/2, and then take away a little bit, because you have some more headers when you have multiple connections. 

    Bluetooth Mesh is a flooding network. This means that every message will be repeated multiple times by all other nodes in the network. This makes Bluetooth Mesh ideal for some types of applications, but not all. Applications where you typically have a one-to-many message is ideal, such as a light switch telling many light bulbs to turn on. It is, however, not ideal for many-to-one applications, such as many sensors reporting to one node, which is what you are looking for here. The reason is, as I said, that all nodes will repeat all messages multiple times (2-3, typically). 

    Compare it to all nodes being a person. If the light switch person yells "ON" to all the light bulb persons, and all the light bulbs then repeats "ON", they will all pick up this message, and turn on. However, in the opposite case, you have a lot of sensor people yelling their sensor value, you can imagine that you have a lot of data flooding through your network, with a lot higher risk of some getting lost. 

    The exact limit of the throughput in a mesh network is hard to say exactly. It depends on the number of nodes in the network, as well as the spacing of the nodes (how many nodes are within the radio range of each other), as well as the sampling rate/message rate. Unfortunately, the best way to check is to test with the actual amount of nodes that you suspect you will have in the network. 

    You said that the sampling rate is roughly every 30 seconds. So that is not an awful lot of throughput per node. But it still depends on whether you imagine having 10 nodes, which will translate to 20 bytes every 3 seconds on average, or if you imagine having 1000 nodes, which would correspond to 20 bytes every 30ms. Note that the throughput in a mesh network is roughly a handful of kbps, instead of 1.3MBPS in a BLE connection.

    Again, depending on the density of the sensors, and the range between them, perhaps one thing you could look into is to have the sensors using normal BLE advertisements (beacons), and then have the BLE nodes (N1, N2, N3, ... Nn) be scanners, scanning for the nodes' advertisements. Then you can transfer the data to a gateway using a BLE connection. It may be feasible, but please note that I still don't know if you are talking about 10's of sensors, hundreds, thousands or tens of thousands. 

    Best regards,

    Edvin

Related