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

OpenThread & Zephyr for mesh usecase

Hello,

I wanted to ask the community/Nordic for protocol advice for a specific application.  I want to connect a series of sensor modules in a hotel.  The sensors are in adjacent rooms, so 30-40feet apart across a couple of walls.  These sensors are relaying simple images from cameras and maybe simple sensor data (temperature, humidity, etc).  So the data is a mix of large payload (70kB images from inexpensive OVC type cameras), and small payload temperature data.  The data is going to a cellular gateway (raspberry pi with a cell device).  Some other properties of the system:

  1. Max of 200 end nodes per network
  2. Very infrequent data (maybe 2 images per day from 200 end nodes)
  3. End nodes are wall powered, so no power concerns.  And they have all day to send the image, so not super urgent.
  4. Need secure communications, but also very easy commissioning.  Each device/network to have unique encryption, use a cell phone to on-board devices to the network.
  5. Security:  can not use static keys to authenticate/encrypt data.  

I'm considering several options:

1)  Bluetooth GATT

2)  Bluetooth MESH

3)  OpenThread w/ Zephyr

Some good/bad of each approach, and maybe the community can point out others that I'm not seeing.

1)  Bluetooth GATT - just using simple GATT connections and relaying data to every node until it gets to gateway, without any networking.  Nodes just know if they've already gotten and passed on a piece of data.
GOOD:  fast data transfer, uses existing technology that is well established, able to use coded PHY for longer range adjacent nodes
BAD:  have to invent a way to authenticate gatt devices with each other using a phone.  Poor network utilization maybe. 

2)  Bluetooth MESH
GOOD:  
BAD:  No networking...looks a lot like the GATT method, but also have to do a lot more packetizing to put the image together.

3)  OpenThread w/ Zephyr
GOOD:  well established commissioning standard for onboarding devices to the network using a phone.  Thread takes care of encryption and authenticaion.  Good network utilization (Thread networking),
BAD:  Lower data rates than GATT method, limited number of nodes (but OK for this application)
Unsure:  is 70kB payload reasonable payload size for thread?  Would packetizing be required if it's using IP based network stack?  Use Zephyr vs. some other thread implementation?

Other considerations:

1)  I can't use wifi in the hotel.  Too difficult to manage and deploy at scale

2)  Easy commissioning is a huge deal.  Whether it's using Thread, MESH, or GATT, I'm not sure how to ensure that only my own devices join the network.  The phones that are used to onboard devices have access to cloud for key retrieval...but I'm not sure how that would be used the different options.

I'm also open to other protocols.

Parents
  • You got most of it right, I will try to fill in the missing part

    2) Bluetooth Mesh

    Good: The standard is built with such use cases in mind, and would be a natural choice in the future

    Bad: This is quite new standard, hence many missing feature and the product are not completely mature.

    3) OpenThread

    Good: The data rates can be in between GATT and Mesh data rates.

    Bad: 70KB from each node can be a stretch, Even I am unsure of this as this needs proper benchmarking

     

Reply
  • You got most of it right, I will try to fill in the missing part

    2) Bluetooth Mesh

    Good: The standard is built with such use cases in mind, and would be a natural choice in the future

    Bad: This is quite new standard, hence many missing feature and the product are not completely mature.

    3) OpenThread

    Good: The data rates can be in between GATT and Mesh data rates.

    Bad: 70KB from each node can be a stretch, Even I am unsure of this as this needs proper benchmarking

     

Children
No Data
Related