avatarJohn Romkey

Summary

The ESP32-C6 Reality Check provides an overview of the newly available ESP32-C6 development kits from Espressif, highlighting their features, current limitations, and the status of software support.

Abstract

The ESP32-C6 is Espressif's latest CPU offering WiFi 6 support and an 802.15.4 radio for Zigbee and Thread protocols, alongside Bluetooth capabilities. It operates as a single-core 160MHz RISC-V CPU with standard GPIO functions. Currently, the dev kits available through AliExpress are sample versions that include a jumper for current measurement and both native USB and CP2102N USB/UART support. The ESP32-C6 supports only the 2.4GHz band of WiFi 6, emphasizing power efficiency over performance. Software support is nascent, with ESP-IDF 5.1 required for initial support, and the Arduino community will have to wait for updates. Notably, radio coexistence is not supported in the initial release, limiting simultaneous use of Bluetooth, WiFi, and ESP-NOW. Despite these limitations, early adopters can experiment with Thread and Zigbee, as demonstrated by successful builds of the blink, OpenThread CLI, and Zigbee light examples from the ESP-IDF repository. The article advises that the ESP32-C6 is suitable for developers experienced with ESP-IDF and those eager to explore Thread or Zigbee in the ESP32 ecosystem, but not for those requiring immediate Arduino support, radio coexistence, or calibrated ADC functionalities.

Opinions

  • The author suggests that the ESP32-C6 is best suited for developers with ESP-IDF experience and an interest in Thread or Zigbee.
  • There is an expectation that Arduino support and other features like radio coexistence and calibrated ADC will be available in future releases, but no specific timeline is provided.
  • The article implies that early adopters should be prepared for a lack of handholding and tutorials, as the software ecosystem is still maturing.
  • The author expresses personal success in building and running examples for blink, OpenThread CLI, and Zigbee light, indicating potential for development despite current limitations.
  • A recommendation is made to purchase from Espressif’s official store on AliExpress or to check Adafruit for availability, suggesting a preference for authentic and reliable sources.

ESP32-C6 Reality Check

Official Espressif ESP32-C6 dev kits recently became available. I was lucky enough to get a couple through AliExpress.

If you’re thinking about getting one there are a few things you should know.

Photo Credit John Romkey

What Is The ESP32-C6?

The ESP32-C6 is Espressif’s first CPU with WiFi 6 support and first available CPU with an 802.15.4 radio, supporting Zigbee and Thread as well as Bluetooth. It’s a single core, 32 bit 160MHz RISC-V CPU with the usual complement of I2C, SPI, UART and other GPIO functions. Think of it as an ESP32-C3 with updated radio support that allows Zigbee and Thread.

The ESP32-C6’s datasheet is available from Espressif.

Samples vs Shipping Product

I was able to buy two of the ESP32-C6 DevKitC-1 samples. These are slightly different from the expected final product. The biggest difference is a jumper on the board — J5 — which provides access to measure current draw by the hardware.

Photo Credit John Romkey
Photo Credit Espressif

The DevKitC-1 board includes both native USB support (CDC/serial mode only), and a CP2102N USB/UART chip, both with USB-C connectors and both able to power the board.

Screencap from Espressif

2.4GHz WiFi 6 Support

I’ve seen folks confused by WiFi 6 support: the C6 supports WiFI 6–802.11ax — but only in the 2.4GHz band, so don’t expect 5GHz (or 6GHz) radio support or performance. The main thing you’ll get from 802.11ax is improved power usage and low power modes, which should help battery operated projects.

Requires ESP-IDF 5.1

ESP-IDF 5.1 will include “initial support for the ESP32-C6 chip”. Unfortunately, it’s not available yet. At the time that I wrote this, ESP-IDF was still on version 5.0.

The master branch of ESP-IDF does have preliminary ESP32-C6 support in it. You can build C6 firmware today by using an up-to-date copy of the master branch and running

idf.py --preview set-target esp32c6

Initially No Simultaneous Radio Use

According to Espressif’s notes, ESP-IDF 5.1 will not support radio “coexistence”. On other ESP32 models, coexistence allows you to use Bluetooth, Wifi and ESP-NOW at the same time by parceling out time on the radio to each service. This isn’t currently supported on the ESP32-C6.

This means that although the C6 supports Thread and Zigbee, you won’t be using it to build a Thread Border Router or to act as a WiFi Zigbee hub at this time.

A Thread Border Router is a very limited IPv6 router that routes traffic between a Thread network and another Internet (IPv6) network. In order for it to operate, the border router must be able to use its Thread radio and another network interface simultaneously. ESP-IDF 5.1 does not currently support this. While it does include support for SPI ethernet devices, which potentially could allow an ethernet/Thread Border Router, it explicitly does not include Border Router support.

I’m sure that a future release of ESP-IDF will support coexistence; just don’t expect it to be working now.

No Arduino Support Yet

Don’t expect Arduino support anytime soon. Arduino updates usually lag ESP-IDF releases by quite a bit. The latest Arduino core release, 2.0.6, is still based on ESP-IDF 4.4.3; moving to 5.x might be a larger undertaking than usual.

Add to that the fact that there are currently no Arduino-style software interfaces for Zigbee or Thread support, so when the Arduino core does initially support that ESP32-C6, it may yet include support for its new radio protocols.

Other Limitations

From Espressif’s notes:

  • the ADC is not calibrated, which means that it won’t be as accurate as it might be
  • the software may not yet support deep and light sleep modes

First Software builds

I was able to build and run the blink example in ESP-IDF.

I was also able to build and run the OpenThread CLI example, which was very encouraging. Although its README didn’t mention the C6, it built and ran without modification.

I was able to scan for Thread networks and see Nest Protect’s Thread network and the Thread network used by our Apple gear. Now if I could find a way to provision Thread devices to the Apple network I’d be even happier.

| PAN  | MAC Address      | Ch | dBm | LQI |
+------+------------------+----+-----+-----+
| 6152 | 18b43000002cXXXX | 23 | -53 |   0 | Nest Protect
| 6152 | 18b43000002cXXXX | 23 | -55 |   0 |
| 6152 | 18b43000002cXXXX | 23 | -69 |   0 |
| 6152 | 18b43000002cXXXX | 23 | -76 |   0 |
| 6152 | 18b43000002cXXXX | 23 | -53 |   0 |
| 6152 | 18b43000002bXXXX | 23 | -73 |   0 |
| 6152 | 18b43000002fXXXX | 23 | -56 |   0 |
| 6152 | 18b43000002cXXXX | 23 | -38 |   0 |
| a8f1 | 964a0d2c1a85YYYY | 25 | -47 |   0 |
| a8f1 | c67a880f96a7YYYY | 25 | -41 |   0 |
| a8f1 | 86efff4254ceYYYY | 25 | -60 |   0 |
| a8f1 | 76670b06a333YYYY | 25 | -45 |   0 |
| a8f1 | b6dce50debcbYYYY | 25 | -47 |   0 | Eve Energy

I was also able to build the Zigbee light example.

Who Should Get This?

If you’re not prepared to build software using ESP-IDF without a lot of handholding and tutorials, you should not get an ESP32-C6 board at this time.

If you need to use the Arduino core, get ready to wait for a while for initial support, then wait longer for it to be stable, then wait longer for Arduino-style interfaces to Thread and Zigbee.

You should also not get them if you need radio coexistence, deep or light sleep, or calibrated ADC to work at this time. I’m sure these are all coming but there’s not an established timeframe for them yet.

If you need to get a leg up on Thread or Zigbee development in an ESP32 context, then you can do that today with these chips and the live version of ESP-IDF.

Be sure to use Espressif’s official store if you order through AliExpress. You may also be able to find samples at Adafruit.

IoT
Esp32
Zigbee
Recommended from ReadMedium