An ESP32 development board is a small programmable board that you load code onto from your computer over USB. It can read a sensor such as a temperature probe, or switch a relay to turn a pump on and off. It can then report to your phone or to Home Assistant over WiFi, Bluetooth or Zigbee.
The ESP32-C6 SuperMini is 26 x 18mm, about the width of a $2 coin. It has WiFi 6, Bluetooth LE and a Zigbee and Thread radio on one chip, so it can be a Zigbee or Matter light, switch or sensor for Home Assistant as well as a WiFi one. A single LiPo cell solders underneath and charges from USB-C, so a battery sensor needs no extra charger board. Windows, macOS and Linux see it with no driver to install, and you can program it in Arduino, ESPHome or ESP-IDF. The pins run at 3.3V, so any part you add that sends 5V signals will need a logic level converter between it and the board. Choose Soldered to push it straight into a breadboard, or Unsoldered if you have a soldering iron or want to wire straight to the pads.
Specifications
Datasheets
Wiring & getting started
- Use a USB-C data cable
A charge-only cable powers the board but no port ever appears, so if nothing shows up on your computer, swap the cable before anything else. Most computers need a USB-A to USB-C data cable.
- Fit the pins (Unsoldered, optional)
Snap each strip to 10 pins. Push both into a breadboard with the long pins down, sit the board on top so every pin comes through a pad, and solder the 20 joints. The breadboard keeps the pins straight while you work.
- Plug it in
Your computer sees the board as a new port. If no port appears, or your computer keeps making the USB connect and disconnect sound, hold BOOT, press and release RESET, then let go of BOOT. Press BOOT with a plastic pen, not a fingertip: a finger across the pins can short two of them, and then the blue LED comes on but still no port appears. On a board you soldered, check for a solder bridge between pins.
- Set up the Arduino IDE
In Tools > Board > Boards Manager, search esp32 and install the esp32 package, version 3.0 or later. Older versions have no C6, so the board is missing from the list. Choose Tools > Board > esp32 > ESP32C6 Dev Module, set USB CDC On Boot to Enabled so Serial Monitor works, then pick the board's port under Tools > Port.
- Upload Blink
Open File > Examples > 01.Basics > Blink, change LED_BUILTIN to 15 and upload. Arduino shows "Hash of data verified." when the upload has worked. Left unchanged, Blink flashes the RGB LED instead.
- Check it works
The blue LED beside the 15 mark flashes on and off once a second. If it works on its own but stops once wired up, something is holding GPIO8, 9 or 15 at power-up, so move that wiring to another pin. If it still won't work, message us with your order number and we'll help you.
- Add an I2C sensor or display (optional)
With this board setting, Arduino puts I2C on GPIO23 (SDA) and GPIO22 (SCL), two of the inner holes. To use edge pins instead, start I2C with
Wire.begin(20, 19);and wire SDA to 20 and SCL to 19. - Make a Zigbee device (optional)
In Tools, set Zigbee mode to Zigbee ED (end device) and Partition Scheme to Zigbee 4MB with spiffs, or the sketch won't build. Open File > Examples > Zigbee > Zigbee_On_Off_Light and upload it, then put your Zigbee hub, such as Home Assistant with a Zigbee USB dongle, into pairing mode. If it won't pair, set Erase All Flash Before Sketch Upload to Enabled and upload again.
- Add a battery (optional)
Solder one protected LiPo cell to the round pads underneath, positive to B+ and negative to B-. Check the polarity before you solder, because a cell connected backwards can damage the charger. It charges whenever USB-C is plugged in and the charge LED shows it charging. Don't leave it charging unattended.
