0

I’m creating an IOT device with some unusual needs when compared with typical home automation. I wanted to ask if anyone knew of a mesh protocol (Zigbee, Thread, BLE Mesh), that might be able to achieve this user experience:

  1. When someone turns on their device, it looks to connect to a mesh network, comprised of other devices they have previously “friended”.
  2. If no network is found, it creates its own mesh network, available for other “friended” devices to connect to, when those devices turn on.
  3. If the device creates its own mesh network (as in behaviour above), but no one connects to it – and then the device finds a different network with more than one friend on it, the device should kill its own network in favour of connecting to the other.
  4. I’m expecting that there will not be a “master” node who has “friended” every possible device that wants to join the network – I’d like the possibility for “friends” to bring their “friends”, to also join the network.
  5. If a partition in the network occurs (this is very likely to occur in my use case), the network should automatically re-form when the devices are close to each other again.
  6. All devices are expected to be identical in function, size, software – so BLE Mesh is probably not suitable given it needs a “Provisioner”?
  7. Messages transferred will be bespoke to this application – ruling out Zigbee’s Application Layer?
  8. Messages will be small in size, so data transfer speed is not a big concern.

I believe from what I’ve read that Thread is probably the most suitable for this use case – but wanted some other opinions to see what the best choice might be? Seems to be a bit of a mine field to fully understand the ins and outs of all of these mesh protocols!

malric
  • 81
  • 1
  • 2
  • This is highly dependent on your hardware. Also, how do objects recognize themselves ? Does the data needs to be encrypted ? – Clonk Nov 05 '18 at 09:14
  • Hardware is not defined yet, so I am flexible on this - Ideally the device will be a low power embedded device (currently looking at the Nordic NRF52840 if I go with Thread). I'm imagining each device will have a randomly generated UUID assigned to that particular user, to distinguish themselves from others - however this is not vital, as my use case doesn't require messages to be transferred to specific nodes - all messages should flood the entire network. Data doesn't need to be encrypted. – malric Nov 05 '18 at 10:11
  • From the use case you've described, all three protocol can work in a mesh network. I'd suggest looking into other factor such as : bandwidth, power consumption, price (HW), security, physical range, frequency (interference with other device around) etc. Otherwise I'd choose the most simple protocol for mesh network which IMHO would be ZigBee. But I've also never used openthread so it could also work. – Clonk Nov 05 '18 at 16:07

1 Answers1

0

I believe Thread/OpenThread addresses all of the use case items you listed above.

jhui
  • 694
  • 4
  • 3