

The ESP32-C6 Zero is a low-power, dual-core microcontroller developed by Waveshare, featuring integrated Wi-Fi 6 and Bluetooth 5.0 capabilities. It is designed for IoT applications, offering robust connectivity, high performance, and energy efficiency. The back view of the ESP32-C6 Zero provides a detailed layout of its pins and components, aiding in understanding its connectivity and design.








| Parameter | Specification |
|---|---|
| Manufacturer | Waveshare |
| Part ID | ESP32-C6-Zero |
| Microcontroller | ESP32-C6 (dual-core) |
| Wireless Connectivity | Wi-Fi 6, Bluetooth 5.0 |
| Operating Voltage | 3.3V |
| Flash Memory | 4MB |
| SRAM | 512KB |
| GPIO Pins | 24 |
| Communication Interfaces | UART, SPI, I2C, I2S, PWM |
| Power Consumption | Ultra-low power in deep sleep mode |
| Dimensions | 51mm x 25.4mm |
The ESP32-C6 Zero features a total of 24 GPIO pins, along with power and communication pins. Below is the pinout description:
| Pin Number | Pin Name | Functionality |
|---|---|---|
| 1 | 3V3 | 3.3V Power Supply |
| 2 | GND | Ground |
| 3 | GPIO0 | General Purpose I/O, Boot Mode Select |
| 4 | GPIO1 | General Purpose I/O |
| 5 | GPIO2 | General Purpose I/O |
| 6 | GPIO3 | General Purpose I/O |
| 7 | GPIO4 | General Purpose I/O |
| 8 | GPIO5 | General Purpose I/O |
| 9 | GPIO6 | General Purpose I/O |
| 10 | GPIO7 | General Purpose I/O |
| 11 | GPIO8 | General Purpose I/O |
| 12 | GPIO9 | General Purpose I/O |
| 13 | GPIO10 | General Purpose I/O |
| 14 | GPIO11 | General Purpose I/O |
| 15 | GPIO12 | General Purpose I/O |
| 16 | GPIO13 | General Purpose I/O |
| 17 | GPIO14 | General Purpose I/O |
| 18 | GPIO15 | General Purpose I/O |
| 19 | GPIO16 | General Purpose I/O |
| 20 | GPIO17 | General Purpose I/O |
| 21 | TXD0 | UART Transmit |
| 22 | RXD0 | UART Receive |
| 23 | EN | Enable Pin (Active High) |
| 24 | RST | Reset Pin |
Powering the Board:
Programming the Board:
Connecting Peripherals:
Wireless Connectivity:
Below is an example of how to connect the ESP32-C6 Zero to an Arduino UNO for basic communication via UART:
// Example: UART Communication between Arduino UNO and ESP32-C6 Zero
#include <SoftwareSerial.h>
// Define RX and TX pins for Arduino
SoftwareSerial espSerial(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
Serial.begin(9600); // Initialize Serial Monitor
espSerial.begin(115200); // Initialize ESP32-C6 Serial Communication
Serial.println("Arduino is ready to communicate with ESP32-C6 Zero.");
}
void loop() {
// Send data from Arduino to ESP32-C6
if (Serial.available()) {
char data = Serial.read();
espSerial.write(data); // Forward data to ESP32-C6
}
// Receive data from ESP32-C6 and display on Serial Monitor
if (espSerial.available()) {
char data = espSerial.read();
Serial.write(data); // Display received data
}
}
Board Not Detected by Computer:
Wi-Fi or Bluetooth Not Working:
GPIO Pins Not Responding:
Program Upload Fails:
Q: Can the ESP32-C6 Zero operate on 5V?
A: No, the ESP32-C6 Zero operates at 3.3V. Applying 5V to any pin may damage the board.
Q: How do I reset the board?
A: Press the RST pin or use the EN pin to reset the board.
Q: Is the ESP32-C6 Zero compatible with Arduino libraries?
A: Yes, the ESP32-C6 Zero is compatible with most Arduino libraries, provided the correct board definitions are installed.
Q: Can I use the ESP32-C6 Zero for battery-powered applications?
A: Yes, the ESP32-C6 Zero is designed for low-power applications and is suitable for battery-powered projects.