I am currently evaluating the capabilities of OpenThread for ongoing research projects as well as a potential solution for commercial products.
Especially using an IPV6 based systems seems to be very promising and future proof as FOTA-update capability, transparent communication with each device and of course border-router capabilities to transparently forward messages to cloud services perfectly suit my needs.
What I am currently looking at is haven a multi-processor setup in a scalable system: I have a single Microcontroller with wireless capabilities (e.g. Nordic NRF...). Multiple Processors are connected to this single Nordic using e.g. separated Serial-Bus-Channels or a single one with an additional handshake giving only one processor at the time access to the bus to manage concurrency issues. Each processor is capable of running its own e.g. OpenThread Stack with an RTOS like Zephyr. These processors are connected on "PCB-Level".
Each processors in the setup (even the Nordic) shall be able to transparently be part of the Thread-Network (having its own IPv6 address etc.) - which would mean that the processors in some way "share" the radio-frontend of the nordic chip. Or in other words: the nordic acts as a router which is part of the mesh network while forwarding package also to its local serial bus.
Now coming to my questions:
- Has something similar already been implemented?
- Would it be possible to add another "input/output" interface to the OpenThread stack allowing to handle a serial bus as an additional sink/source for Thread packages? If so, which protocol to use? It seems that I simply would "tunnel" the Thread Packages to the Serial-Bus?
- I think the OpenThread Stack would also have to track the hardware-source of the package to perform correct routing?
- Is there another approach which I have overseen which would give me similar advantages?