Replies: 1 comment
-
SEDs consider a number of parameters when selecting a parent, but two-way link margin is the top priority: openthread/src/core/thread/mle.cpp Line 2949 in 8d39758 However, by default, once a SED selects a parent, it will remain attached to that parent until it loses connectivity. You can change this by enabling the Parent Search feature for all devices (including MTDs):
I would suggest using the Parent Search feature.
Yes, it is feasible to do so.
Link state information to neighboring devices is probably the best Thread can offer today.
Multiple border routers and potentially multiple Thread networks is useful to increase coverage and capacity. |
Beta Was this translation helpful? Give feedback.
-
Context:
I am working on a project to monitor up to 880 devices in an Industry 4.0 warehouse. The warehouse is divided into 16 areas, with each area housing 30–55 devices, which are placed within box pallets. These devices wake up periodically (every 5–10 minutes), acquire sensor data, and transmit it to a backend infrastructure. The aim is to process this data dynamically and adjust warehouse ambient conditions. This picture provides a representative view of the warehouse.
To achieve this, I need to infer the location of the devices, i.e., determine which of the 16 areas the data originates from. However, implementing precise indoor location methods has proven challenging:
Why OpenThread?
After further research and reading the papers below, I am considering OpenThread as a promising alternative. It’s an opportunity to explore and learn more about this protocol, which I have not worked with before.
My Proposed Approach Using OpenThread
The concept is that each end-device will connect to one of the two nearest routers, and the routers will create a network among themselves to ensure messages can reach one of the Border Routers. Whenever an end-device wakes up, it identifies its parent router, retrieves its MAC address, and includes it in the message payload. Each router's MAC address is mapped to a specific area within the warehouse. However this approach relies on End Devices always connecting to the nearest Thread Router. If this condition is met, the parent’s MAC address will reliably indicate the End Device’s location. The network proposed:
It's also important to note that, while the diagram is represented in 2D, the warehouse is actually a 3D space. Therefore, end-devices can be positioned at any point (x, y, z) within their designated area.
Initial Tests and Observations
Current Setup:
I have started testing in a small setup but observed a significant challenge: End Devices do not always connect to the nearest Thread Router. For example, in the setup below, Node 3 connects to Router B instead of the closer Router C. This behavior aligns with OpenThread’s self-balancing mechanism, which optimizes hop counts and routing efficiency rather than physical proximity, right? The image below illustrates the Thread Topology in my house, showing the placement of Thread Routers and Thread End Devices along with their respective connections. This representation is based on the visualization provided by the nRF Thread Topology Monitor app.
If Node 3 connects to:
Thus, Router B is preferred even though it is farther away physically.
To address this I will try:
Unfortunately, I need additional development boards to fully test these ideas, as shown in the image below. I am currently waiting to receive more nRF52840DKs and nRF54L15DKs to proceed with testing these concepts.
Questions:
Any suggestions or feedback on this approach would be greatly appreciated.
Best regards.
Beta Was this translation helpful? Give feedback.
All reactions