Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REQUEST] Add an ESP32-C6 as "coprocessor" and "IEEE 802.15.4 radio" module to future voice boards (making a single PCB that have both a ESP32-S3 and a ESP32-C6) so that second SoC can be used as Touchscreen Display Controller and/or Thread Border Router #300

Open
Hedda opened this issue Jan 21, 2025 · 0 comments

Comments

@Hedda
Copy link

Hedda commented Jan 21, 2025

For the next-generation voice satellite board design/schematics please consider also adding another ESP32 SoC to the same PCB board as well as code support for that secondary ESP32 SoC to in the future be used as a Touchscreen Display Controller and/or Thread Border Router. Specifically suggest adding an ESP32-C6 as a second radio SoC to the same so PCB and make that secondary act as a "co-processor" and "IEEE 802.15.4 radio" module.

The two main real-world use cases I see justify adding an ESP32-C6 SoC as coprocessor and radio module are primarily two-fold:

  1. That ESP32-C6 could be used as a display/controller (or offload some other related things to free up resources and make it more future-proof):

  2. Perhaps more interestingly, the ESP32-C6 has a built-in IEEE 802.15.4 radio which means it can be used as a "Thread Border Router" (with OpenThread Border Router RCP firmware), to enable a Thread network and another entry point that can be used by Matter standard fabric. So if add this and could get it working as a TBR/OTBR then it would be super easy for users to add multiple Thread Border Routers to their network.

Regardless if having an integrated "Thread Border Router" would be the most practical new feature or not in the long-run. For the short-term I personally believe that the coolness of having a alternative model variant of Home Assistant voice satellite is the coolest fearute that woulc attract the most new users and developers, as having at least one early model with a a relativly large touchscreen should attract interest for even those users and developers who are not interested in voice.

As such having the suggested secondary ESP32 on the same board should in theory allow support for a capacitive touchscreen display with a local UI without sacrificing resources on the primary ESP32. It would at least be awesome to have a variant of a Home Assistant Voice Satellite with a large touchscreen display (.i.e. something similar in design to the existing Google Nest Hub / Google Home Hub and the Amazon Echo Show products).

From a marketing point of view it would also allow you to add Thread's Thread Border Router icons on the product box

image

One downside of adding an extra ESP32 (ESP32-C6 or ESP32-H2) it obviously that it would take up some additional space on the PCB and complitate FCC certification a little because of it now having multiple radios, however I do not believe it would add that much larger BOM cost, but the additional possibilities such an extra ESP32 SoC could add should hopefully more than make-up for that slightly higher cost(?).

While I think that it having "Thread Border Router" will be of most interest to many users in the future, and alternativly use case for ESP32-C6 could be to instead use it as a remote Zigbee Coordinator (also known as a Serial-over-IP Zigbee controller adapter) for Home Assistant's built-in ZHA integration (native Zigbee Gateway), see/follow this work-in-progress but note that the ESP Zigbee radio for zigpy is is still very experimental and not yet fully working with ZHA:

And yet another option could of course be to also use the ESP32-C6 as a "coprocessor" module a a dedicated Bluetooth Proxy chip with ESPHome:

Note that the reason main you want to combine ESP32-S3 and ESP32-C6 is not only to off-load those processes but more importantly so you separate Wi-Fi signals from Thread/Zigbee signals, and that is due to WiFi tendacy to overwhelm and interfer with Thread/Zigbee communication because how they both work. Same goes by the way for WiFi and Bluetooth Low Entergy but it usually is not a great impact on user experience as for Thread/Zigbee:

Anyway, what I think what would make a products like Home Assistant voice satellites perfect as a "Thread Border Router" is that a user can add multiple Thread Border Routers (TBR/OTBR) to their Thread/Matter network for redundacy (using fail-over) and having multiple voice assistant hardware apöliances around thier home is something that many Home Assistant users are likely to have many of and placed all over their home, so having many Thread Border Routers is one of the keys to getting a more robust Thread network.

Image

Image taken from the Thread Smart Home Fact Sheet by the Thread Group. It illustrates the landscape of Matter, Thread, and Border routers. Instead of Matter, you could also see another protocol here, such as HomeKit.

Unlike other IoT protocols, Thread can use multiple border routers in a single network. This increases wireless coverage and reduces the risk of a single point of failure. Ideal for home automation, with a potentially large number of devices spread over a large area.

Slightly different image here on the threadgroup.org when they describe a Thread based Matter fabric using the same text but also mentioning that Thread Border Router can be built int many devices such as access points, smart speakers, etc.:

Image

Also check out this blog which better describe what a Thread Border Router actually is and why it is very good to have many:

Image

As proof-of-concept for the idea of using a ESP32-S3 + ESP32-H2 combination board made for this purpose check out the "ESP Thread Border Router" board which is an official Espressif official SDK reference hardware for this purpose (can that use used as either Thread Border Router or as a remote Zigbee Coordinator):

Not tested myself but suposedly you can already get those working with Home Assistant's Thread integration:

Development is primarily being done with Espressif's ESP Thread Border Router SDK hardware (based on ESP32-H2-MINI-1 module):

image

image

OpenThread Border Router Example as in a similar two-SoC setup combining both a ESP32-S3 and ESP32-H2 in the same solution:

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant