Feedback on the ESP32-C6? - Page 1
Forum section: electronics / general

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 09, 2024, 10:54:31 pm
content: Has any of you used an ESP32-C6 yet? If so, any feedback? I'm interested in the fact it supports WiFi 6 and Thread/Zigbee (and of course, its low cost.)

author: mianos
author_rank: Regular Contributor
timestamp: May 10, 2024, 03:08:04 am
content: Wifi 6 at 2.4Ghz. I have the Mikrotik AX3 wifi 6 network here, works fine.It is *very* fast to auth and connect.I have had zero issues using the esp-idf. I see some people using the arduino layer have a few bugs.This project is using the C6:https://github.com/mianos/stillerate2/GPIO button, json2 max31685 SPI PT100 controllers.LEDC for PWM motor modulation.Native ESP touch wifi provisioningNative esp-idf mqtt (which is really good)I have not used thread or zigbee (I have the sonoff zigbee bridge running tasmota so not much point if I have power to the devices).What did you want to know?

author: josfemova
author_rank: Contributor
timestamp: May 10, 2024, 05:27:41 am
content: Depends on what you want to use it. If you want to use the arduino core, do take into account that there is not a stable release that supports the chip.Using just the IDF directly could be a better option if you feel comfortable working with it.Seeing that there's now a Xiao ESP32C6 and other 3rd party boards you could say is no longer in that super early adopter stage.I used it for a simple RC car that is controlled via a REST Server and worked fine enough, but that clearly is not an application that really stresses the capabilities of the chip.

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 10, 2024, 05:39:28 am
content: The esp-idf is fine, although I would like the option to go "baremetal", unfortunately there isn't much out there to do that. It's been done with the C3, although the radio was not supported (not documented), and haven't seen much for the C6 of that kind so far, but admittedly, without the radio part, this chip is not extremely useful.Oddly enough, there is a Rust support for the C6, that seems rather advanced:https://github.com/esp-rs/esp-halnot that I'm interested so far. But just to mention it.One specific question was whether it can support simultaneously Zigbee and WiFi (for instance to implement some gateway). It doesn't look like it, but if anyone can tell for sure.

author: tellurium
author_rank: Frequent Contributor
timestamp: May 10, 2024, 02:30:45 pm
content: Never touched C6But I can say that all ESP32s I've worked with (ESP32, C3, S3) work OK with both BLE and WiFi enabled.You can make a gateway no problem.I made a very primitive baremetal SDK for ESP32 / C3:https://github.com/cpq/mdkAnd hand-crafted flashing tool in C (no python):https://github.com/cpq/esputil

author: josfemova
author_rank: Contributor
timestamp: May 10, 2024, 03:17:49 pm
content: Quote from: SiliconWizard on May 10, 2024, 05:39:28 amIt's advanced but some of the main criticisms of Rust apply to the current state of that HAL. Amount and relationship of dependencies can be disorienting, and there are strong criticisms related to the intensive use of types for compile time checks that end up making it hard to approach if you are not already familiar with that type of dark magic.They have a plan for a refactor in the works tho', the criticisms have been taken into account.

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 10, 2024, 09:54:20 pm
content: Quote from: tellurium on May 10, 2024, 02:30:45 pmThanks! I've read that esp-idf didn't support WiFi + Zigbee yet, but maybe this has been fixed now - will have to check.Quote from: tellurium on May 10, 2024, 02:30:45 pmI'll have a look at that and see how it can be ported to the C6. I've quickly looked at the source code in esp-idf, so I guess all info should be there in form of source code, but it's a very large project with this pretty intricate, typical Cmake structure, so that's definitely not trivial to dissect.I just got a dev board for the C6 so I can start testing stuff.

author: tszaboo
author_rank: Super Contributor
timestamp: May 10, 2024, 09:57:30 pm
content: Quote from: mianos on May 10, 2024, 03:08:04 amIs it still half an amp peak current?How is the ADC?

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 11, 2024, 12:46:21 am
content: I am testing at the moment. Haven't tested the ADC yet. But yes, there are current peaks of up to 350mA when WiFi is active.I have tested some basic code that just connects to a WiFi AP and maintains the connection, it does nothing else. Just to get an idea:PS ModeAvg. CurrentAvg. Ping TimeWIFI_PS_NONE86 mA3.5 msWIFI_PS_MAX_MODEM35 mA250 msWIFI_PS_MIN_MODEM36 mA125 msThe power saving mode was set using the esp_wifi_set_ps() function.

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 11, 2024, 05:55:46 am
content: Quote from: mianos on May 10, 2024, 03:08:04 amYes, after my initial tests, I can confirm that. Which is nice.I've also noticed that with the default settings, the RSSI is much higher than with, say, my tablet (a Samsung). Both located in the same room, relatively far away from the AP, the RSSI with the ESP32-C6 board is almost 20 dB higher.I suspected that the default TX power was probably at its maximum. I set it to lower values with esp_wifi_set_max_tx_power() and got a matching decrease in RSSI. So one thing that can be adjusted is the TX power definitely, which will also lower the current peaks.Speaking of esp-idf, while feature-packed, it's also a huge dog. The repo itself is 2GB, and it downloads additional required tools when installing, which take 2.4GB. So that's a total of 4.4GB, the largest SDK I have ever run into for a MCU so far. The typical code size of compiled examples is also impressive - a basic WiFi example program gets several hundreds of files compiled and takes about 700KB. One annoying quirk is that any change of settings via the 'menuconfig' system seems t trigger the recompilation of the whole project.So, that's my journey with the ESP32-C6 so far.

author: tszaboo
author_rank: Super Contributor
timestamp: May 11, 2024, 09:02:43 am
content: Quote from: SiliconWizard on May 11, 2024, 12:46:21 amRight. I've spent some time on their website, even the ESP32-H2 requires 300mA or more. This is just plain bad for such a microcontroller, that is designed for only BLE and Zigbee. I have micros that are ~10mA for the same protocols.Will TX power really reduce those peaks, or is it required for other parts of the micro, it's not documented. Also not documented is the class of the output amplifier, it very well might be class D/E/F type that will drain high peaks irrespective of the average output power.

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 11, 2024, 09:50:39 pm
content: Quote from: tszaboo on May 11, 2024, 09:02:43 amI'll have to make more tests with other protocols than WiFi to see how it fares - relatively high currents is common with WiFi, but using BLE or Zigbee, we sure would be expecting much lower currents. I'll check that.In terms of current peaks, I'll also have to do more testing - my limited testing so far seems to show that current peaks don't seem to vary a lot with the max TX power that we set, although this setting definitely has an impact on the effective TX power. So you may be right about the output stage.This can be pretty problematic with batteries, as low-capacity ones will usually get drained much faster with these high current peaks, even with a relatively low average.I never saw those ESP32 SoCs as particularly "low-power" devices and would probably not recommend them for small battery-operated devices.

author: hans
author_rank: Super Contributor
timestamp: May 12, 2024, 11:42:36 am
content: How fast is it to auth and connect?A few years ago, I did a project with the ESP32-S2 chip and the Arduino runtime. It was a IoT sensor using deepsleep. A few problems I had with that project..The deepsleep results in effectively a power cycle when it resumes execution on the "big" CPU. This is a lot different than effectively any other microcontroller part I've used, that always resume execution with the same state/PC. PERHAPS these power cycles aren't a major issue if it wasn't for a very slow bootloader.. (especially if with the Arduino runtime?). For some reason it takes hundreds of ms to boot, at 10s of mA, thus burning a lot of power..The 2nd issue I had was with auth/connect time.. the Arduino routines didn't allow for the WiFi channel of the AP to be stored correctly. This meant that connects took 3-5secs at least. When I refactored the connection code to use channel numbers, I was able to get it down to 400-1000ms pretty consistently.The WiFi powersaving was turned on by default on the C3 chip, which I used in a different project. I saw similar power consumption averages.. but at the expense of delay as the AP queues packets that are read in burst by the ESP32.Those 300mA peaks for BLE/Zigbee; what power output was used? 20dBm = 100mW, and not too dissimilar from what you can do on WiFi. Obviously 300mA*3.3V=1W, so that's terrible PA efficiency.The ESP32 was never an energy efficiency beast. There are plenty of MCUs that are far FAR better (just look at ATSAML10 or STM32L4 or STM32U5 series -- the latter can run at 24MHz below 1mA@3.3V). Their popularity comes from being low-cost and offering a reprogrammable MCU for what otherwise would have been an RF chipset instead.