The ESP32-C6 is one of the most useful ESP32 chips for modern smart-home development because it combines Wi-Fi 6, Bluetooth LE and an IEEE 802.15.4 radio on the same device. That last radio is what makes native Thread and Zigbee possible.
For Home Assistant users, this means an ESP32-C6 can be built as a genuine Matter-over-Thread accessory instead of another Wi-Fi node. The device joins a low-power Thread mesh, Home Assistant controls it using Matter, and a Thread Border Router connects the mesh to the normal home network.
ESP32-C6 Matter device
│
Thread
│
Thread Border Router
│
Ethernet / Wi-Fi LAN
│
Home Assistant
│
Matter Server
The important part is understanding that Matter, Thread and ESPHome are different layers. A lot of confusing advice online mixes them together.
Matter vs Thread vs ESPHome
| Technology | What it does | ESP32-C6 role |
|---|---|---|
| Thread | Low-power IPv6 mesh network | Uses the C6 IEEE 802.15.4 radio |
| Matter | Smart-home application protocol and device model | Makes the C6 appear as a standard Matter accessory |
| ESPHome | Firmware platform mainly used with Home Assistant | Can use Wi-Fi or, on supported hardware, OpenThread as its network transport |
A native Matter-over-Thread device is therefore not simply an ESPHome node that happens to use Thread. With native Matter, Home Assistant sees standard Matter clusters and endpoints. With ESPHome over Thread, Home Assistant still communicates using the ESPHome Native API; Thread is only replacing Wi-Fi as the IP transport.
Native Matter:
ESP32-C6 → Thread → Border Router → Matter → Home Assistant
ESPHome over Thread:
ESP32-C6 → Thread → Border Router → ESPHome Native API → Home Assistant
Both are useful. They solve different problems.
Why Use Matter over Thread?
- Low-power networking: Thread was designed for small smart-home nodes rather than high-bandwidth traffic.
- Mesh routing: mains-powered Thread routers can forward packets for other devices.
- No extra Wi-Fi client: the accessory does not need to join the main 2.4 GHz Wi-Fi network.
- Local operation: Matter control is designed to work locally rather than depending on a vendor cloud.
- Interoperability: the same Matter accessory can potentially be shared between compatible ecosystems using Matter multi-admin.
- IPv6: Thread is an IP network rather than a proprietary non-IP mesh.
For a mains-powered relay or display, Wi-Fi can still be simpler. Thread becomes more attractive for sensors, switches and larger installations where you want a dedicated low-power mesh.
ESP32-C6 Hardware Support
ESP32-C6 contains a 2.4 GHz IEEE 802.15.4 radio in addition to Wi-Fi and Bluetooth LE. Current Espressif Arduino support includes Matter over Thread on ESP32-C6, and current ESPHome supports OpenThread on ESP32-C6 when using the ESP-IDF framework.
| Chip | Wi-Fi | 802.15.4 | Native Thread | Matter over Thread |
|---|---|---|---|---|
| ESP32 | Yes | No | No | No |
| ESP32-C3 | Yes | No | No | No |
| ESP32-S3 | Yes | No | No | No |
| ESP32-C6 | Yes | Yes | Yes | Yes |
| ESP32-H2 | No | Yes | Yes | Yes |
| ESP32-C5 | Yes | Yes | Yes | Supported with Thread build selection |
If your main goal is experimenting with both normal Wi-Fi ESP32 projects and Thread/Matter, the C6 is particularly convenient because you do not give up Wi-Fi.
What You Need
- An ESP32-C6 development board — an official Espressif DevKit is the easiest starting point, although many C6 SuperMini-style boards also work.
- Home Assistant — Home Assistant OS is the most straightforward supported environment for the official Matter app.
- A working Matter integration in Home Assistant.
- A Thread Border Router connected to the same local network as Home Assistant.
- The Home Assistant Companion app on Android or iPhone for normal Matter commissioning.
- A recent Arduino-ESP32 core if you want to use Espressif’s Arduino Matter library.
A Thread Border Router can be provided by Home Assistant hardware or by another ecosystem. Home Assistant can route through third-party border routers such as compatible Apple or Google devices; the border router does not need to be the Matter controller.
Thread Border Router: What It Actually Does
ESP32-C6
│
Thread / 802.15.4
│
Thread Border Router
│
IPv6 LAN
│
Home Assistant
The border router forwards IP traffic between the Thread mesh and your normal LAN. In a Matter installation the application traffic remains encrypted end-to-end between the Matter nodes and controllers. The border router does not have to understand the accessory as a light, sensor or switch.
Home Assistant currently supports its own Thread Border Router path using compatible Thread radios, but the setup is separate from simply plugging in a Zigbee adapter. Home Assistant Connect ZBT-1, Connect ZBT-2 and Yellow normally need to be explicitly configured for Thread rather than assumed to be Thread border routers out of the box.
Prepare Home Assistant First
Before flashing the ESP32-C6, make sure the controller side is ready. In Home Assistant, open Settings → Devices & services and confirm that Matter is available.
- Confirm the Matter integration is installed and healthy.
- Confirm Home Assistant can see a Thread network.
- Confirm at least one Thread Border Router is operational.
- If Home Assistant manages the preferred Thread network, send or synchronise those Thread credentials to the phone used for commissioning.
- Keep the phone on the same local network as Home Assistant during initial setup.
If commissioning produces a message that the device requires a border router, do not start debugging the ESP32 code first. That error normally means the Thread infrastructure or credential hand-off is incomplete.
Arduino IDE Setup for ESP32-C6 Matter
Espressif’s current Arduino core includes a Matter library with ESP32-C6 Matter-over-Thread support. For a first test, use an official example before building a large custom sketch.
After installing a current ESP32 board package, select your ESP32-C6 board and look under the Matter examples. The important commissioning example is the Matter CHIPoBLE Thread path: the device starts uncommissioned, Bluetooth LE is used for onboarding, and the controller supplies the Thread operational dataset.
Factory-fresh ESP32-C6
│
Bluetooth LE commissioning
│
Phone / Matter controller
│
passes Thread dataset
│
ESP32-C6 joins Thread mesh
│
normal Matter traffic runs over Thread
Do not hard-code a separate Thread dataset into the same sketch while also expecting normal BLE commissioning. Espressif’s current Matter implementation provides separate commissioning and on-network flows for a reason.
Minimal Matter-over-Thread On/Off Example
The following example shows the structure of a simple Matter light endpoint. It deliberately keeps the application small so the network selection and Matter initialisation order are obvious.
#include <Arduino.h>
#include <Matter.h>
MatterOnOffLight light;
const uint8_t OUTPUT_PIN = 7;
bool setLight(bool state) {
digitalWrite(OUTPUT_PIN, state ? HIGH : LOW);
Serial.printf("Matter light: %s\n", state ? "ON" : "OFF");
return true;
}
void setup() {
Serial.begin(115200);
pinMode(OUTPUT_PIN, OUTPUT);
digitalWrite(OUTPUT_PIN, LOW);
// Select Thread before creating/starting Matter endpoints.
Matter.selectNetwork(MATTER_NETWORK_THREAD);
light.begin(false);
light.onChange(setLight);
// Start Matter only after endpoints are configured.
Matter.begin();
matterWaitUntilReady();
// Synchronise the physical output with the Matter state.
light.updateAccessory();
}
void loop() {
// Handles the case where the controller removes the Matter fabric.
matterRestartIfNoFabric();
delay(10);
}
Change OUTPUT_PIN for your board. Do not copy GPIO7 blindly into a relay project. Check the exact C6 board pinout, boot-strapping pins, onboard LED wiring and any USB/UART usage first.
For a real relay or socket, use the Matter endpoint type that matches the device rather than pretending every output is a light. Espressif’s library includes endpoint classes such as MatterOnOffPlugin, temperature sensors, humidity sensors, contact sensors, occupancy sensors, leak detectors, fans, thermostats and several lighting types.
Commission the ESP32-C6 into Home Assistant
Once the firmware is flashed, reset the board and leave it powered near the phone and Thread Border Router.
- Open the Home Assistant Companion app.
- Go to the Matter device-add flow.
- Scan the QR code or enter the manual pairing code produced by the Matter firmware/example.
- The phone discovers the uncommissioned accessory using Bluetooth LE.
- The Matter controller transfers the required Thread network information.
- The ESP32-C6 joins the Thread network.
- Home Assistant adds the device to its Matter fabric and exposes the supported entities.
After successful commissioning, normal control no longer depends on Bluetooth. The operational path is Thread → Border Router → local IPv6 network → Home Assistant Matter Server.
Where Does the QR Code Come From?
Matter commissioning requires setup information containing the discriminator and passcode. Development examples usually print or provide the commissioning information needed to create or display the QR/manual code. For a production device, commissioning data must be handled as part of the device’s manufacturing and provisioning process rather than treating every unit as the same development accessory.
If you repeatedly reflash test firmware, remember that Matter fabric information can remain stored in non-volatile memory. A failed second commissioning attempt may simply mean the board is still commissioned to an earlier fabric.
Factory Reset and Decommissioning
Matter devices store fabric and network information. If you move between controllers, change commissioning modes or repeatedly test different Thread networks, stale credentials can cause surprisingly confusing failures.
- Remove or decommission the device cleanly when possible.
- Use the Matter library’s decommission/factory-reset path for development.
- After a factory reset, treat the ESP32-C6 as a new Matter accessory.
- If the controller has an old device entry, remove that stale entry before troubleshooting the radio.
Matter over Thread vs Matter over Wi-Fi on ESP32-C6
| Matter over Thread | Matter over Wi-Fi | |
|---|---|---|
| Radio | IEEE 802.15.4 | 2.4 GHz Wi-Fi |
| Infrastructure | Thread Border Router required | Normal Wi-Fi access point |
| Mesh | Yes | Normal Wi-Fi topology |
| Low-power suitability | Better suited | Usually higher power |
| Setup complexity | Higher | Lower |
| ESP32-C6 support | Yes | Yes |
| Best use | Sensors, switches, Thread homes | Mains-powered devices, simple installations |
If the device is permanently mains-powered and your Wi-Fi is reliable, Matter over Wi-Fi may be the easier engineering choice. Thread is most valuable when its low-power mesh characteristics actually solve something.
ESPHome over Thread Is Not Matter
This distinction has become more important because current ESPHome can use OpenThread on ESP32-C6 with ESP-IDF.
ESPHome YAML
│
OpenThread network
│
Thread Border Router
│
IPv6
│
ESPHome Native API
│
Home Assistant
That is a perfectly valid Home Assistant architecture, but the node remains an ESPHome device. It does not automatically become a Matter accessory and it does not expose Matter clusters merely because packets travel over Thread.
Choose ESPHome over Thread when you specifically want ESPHome’s YAML configuration, Native API, component ecosystem and deep Home Assistant integration. Choose native Matter when you want the ESP32-C6 to behave as a standards-based Matter accessory that is not tied to the ESPHome integration.
Which Route Should You Choose?
| Goal | Better starting point |
|---|---|
| Fastest normal Home Assistant sensor build | ESPHome over Wi-Fi |
| Experiment with low-power ESPHome networking | ESPHome over Thread |
| Build a standards-based Thread smart-home accessory | Native Matter over Thread |
| Device should be shareable to multiple Matter ecosystems | Native Matter |
| Need a huge existing ESPHome component library | ESPHome |
| Learn Matter clusters/endpoints and commissioning | Native Matter |
Common Problem: Home Assistant Says a Border Router Is Required
This normally means Home Assistant or the commissioning phone cannot use a suitable Thread network.
- Check that a Thread Border Router is actually running.
- Check the Thread integration in Home Assistant.
- Check that the phone has the preferred Thread network credentials.
- If using a Home Assistant radio, confirm it has actually been configured for Thread rather than still running Zigbee.
- Keep the phone, Home Assistant and border router on a network where IPv6/mDNS traffic is not being filtered unnecessarily.
Common Problem: ESP32-C6 Is Visible over BLE but Will Not Join Thread
- Thread credentials may not have been transferred correctly.
- The phone may know a different Thread network from the one Home Assistant can route.
- The border router may be offline or too far away.
- The ESP32-C6 may still contain credentials from an earlier commissioning attempt.
- The firmware may have been built for a different Matter network path.
- 2.4 GHz interference can affect Thread just as it affects Zigbee and Wi-Fi.
For development, a factory reset followed by one clean commissioning attempt is often more useful than repeatedly retrying against stale Matter state.
Common Problem: Device Commissions but Home Assistant Cannot Control It
Once commissioning has completed, Bluetooth is no longer the main path. Troubleshoot the operational network instead.
- Confirm the ESP32-C6 is attached to Thread.
- Confirm the border router is reachable from Home Assistant.
- Check IPv6 routing between the LAN and Thread network.
- Check the Matter Server logs in Home Assistant.
- Make sure the endpoint was initialised before
Matter.begin(). - Make sure your endpoint callback actually updates the physical hardware and returns success.
Common Problem: Wrong Endpoint Type
Matter controllers interpret the device using its standard device type and clusters. A relay controlling a wall socket should not necessarily be represented as a light simply because an on/off light example is convenient.
Use an endpoint class that describes the real accessory. This improves the Home Assistant entity model and makes the device behave more sensibly when shared to other Matter controllers.
Thread Channel and 2.4 GHz Interference
Thread uses the same 2.4 GHz spectrum as Zigbee, Bluetooth and 2.4 GHz Wi-Fi. A Thread mesh therefore does not magically eliminate RF interference.
- Keep the Thread Border Router away from USB 3.0 noise sources where practical.
- Do not bury the C6 antenna behind large metal objects.
- Avoid mounting the module directly beside switching power supplies or large relay coils.
- If you also run Zigbee, plan the two 802.15.4 networks rather than assuming more networks automatically means better coverage.
- Good router placement is usually more valuable than maximum transmit power.
Can ESP32-C6 Be a Thread Border Router?
The ESP32-C6 can run Thread networking, and Espressif provides OpenThread capabilities, but a normal Matter accessory project should not be designed around the same tiny board also replacing your household Thread Border Router. A border router is infrastructure: it must reliably bridge the Thread mesh to the LAN and remain continuously available.
For a Home Assistant installation, use a supported border-router solution and let the ESP32-C6 remain the end device or Thread router it was intended to be.
ESP32-C6 Board Choice
For first Matter experiments, an official Espressif C6 development board is easier because pin assignments, USB behaviour and hardware documentation are known. The inexpensive ESP32-C6 SuperMini is attractive once the software stack is working, but clone board layouts can differ.
For pin and board comparisons, see our ESP32-C6 SuperMini pinout and safe GPIO guide, ESP32-C3 vs ESP32-C6 comparison and ESP32-C3 SuperMini vs ESP32-C6 SuperMini guide.
A Sensible First Project
Do not start with a battery sensor, multiple endpoints, custom clusters and deep sleep all at once. Prove the network first.
- Flash a simple Matter on/off endpoint.
- Commission it over Thread.
- Toggle it reliably from Home Assistant.
- Power-cycle the C6 several times.
- Confirm it rejoins the Thread mesh without recommissioning.
- Factory-reset and commission it again so you understand recovery.
- Only then add the real sensor, relay or application logic.
That sequence separates Matter/Thread problems from GPIO and application problems.
Final Recommendation
ESP32-C6 is currently the most flexible general-purpose ESP32 for experimenting with Matter over Thread because it combines 802.15.4, Bluetooth LE and conventional Wi-Fi on one inexpensive platform.
For Home Assistant, the clean architecture is: ESP32-C6 as the Matter accessory, a stable Thread Border Router as network infrastructure, and Home Assistant as the Matter controller. Once that distinction is clear, Matter over Thread becomes much easier to reason about.
If you only need a Home Assistant-only node, ESPHome may still be the faster route. If you want to learn or build a genuinely interoperable Matter accessory, native Matter over Thread is the more relevant path.
Related ESP32 Guides
- ESP32-C6 SuperMini Pinout + Safe GPIOs
- ESP32-C3 vs ESP32-C6: Which One Should You Use?
- ESP32-C61 vs ESP32-C6: Wi-Fi 6 vs Thread/Zigbee
- ESP32-C3 SuperMini vs ESP32-C6 SuperMini
- Home Assistant Connect ZBT-2 vs ZBT-1