ESP32-C3 Supermini: Arduino Setup, USB & Wi-Fi Test
Program the ESP32-C3 Supermini, verify USB serial output, scan Wi-Fi and recover a board that will not upload.
On this page
Identify the ESP32-C3 SuperminiConnect USB and install Arduino supportChoose the C3 board settingsUpload the first programRun a Wi-Fi scanRecover a board that will not uploadConnect a sensor and avoid pin conflictsTroubleshooting checklistReferences and next stepsRelated products
Start with a known USB data cable and the board on its own. Keep a note of your exact product variant, Arduino-ESP32 package version and Tools settings so the setup can be reproduced.
Identify the ESP32-C3 Supermini
This guide covers the ESP32-C3 Supermini product and the related C3 SuperMini listing linked below. Header soldering and PCB details can vary. Confirm the chip marking says ESP32-C3; an ESP32-S3 Supermini or C6 Supermini needs a different board target. Only the GPIOs physically exposed on your PCB are available at its headers.
Connect USB and install Arduino support
- Disconnect sensors and jumper wires for the first upload. Connect the board directly to your computer with a data-capable USB-C cable.
- Install Arduino IDE 2 and the stable esp32 by Espressif Systems package using our Arduino setup guide.
- Compare the port list with the board unplugged and plugged in. Select the port belonging to this board.
Common Supermini boards connect USB directly to the chip. If your revision instead has a USB-to-UART bridge, identify that bridge before choosing a driver or USB settings. A USB-C connector alone does not identify the USB interface.
Choose the C3 board settings
| Arduino option | Starting point |
|---|---|
| Board | Matching manufacturer profile, or ESP32C3 Dev Module |
| USB CDC On Boot | Enabled when using the chip's native USB connector for Serial |
| Flash size | The linked C3 listings specify 4 MB; confirm your actual variant |
| Other settings | Keep profile defaults for the first serial test |
| Serial Monitor | 115200 baud |
Select a C3 target even if the port appears as an unknown device. Do not copy PSRAM settings from an ESP32-S3 tutorial.
Upload the first program
Create a new sketch, paste this program, click Verify and then Upload. Reopen the port if it changes after flashing, open Serial Monitor and press Reset once. A repeating uptime line is the success check; an onboard LED is not required.
#include <Arduino.h>
void setup() {
Serial.begin(115200);
const unsigned long started = millis();
while (!Serial && millis() - started < 3000) delay(10);
Serial.printf("Chip: %s\n", ESP.getChipModel());
Serial.printf("Flash detected: %lu bytes\n",
(unsigned long)ESP.getFlashChipSize());
}
void loop() {
Serial.printf("Running: %lu seconds\n", millis() / 1000UL);
delay(1000);
}
The detected flash size is useful when checking your selected flash setting. This test checks the processor, upload path and serial output; it does not measure battery consumption or verify external peripherals.
Run a Wi-Fi scan
Replace the sketch with this example. It scans nearby 2.4 GHz networks without needing a network password. The output lists network names and received signal levels; a more negative dBm value indicates a weaker received signal.
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
const unsigned long started = millis();
while (!Serial && millis() - started < 3000) delay(10);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(200);
}
void loop() {
const int count = WiFi.scanNetworks();
if (count < 0) {
Serial.println("Scan failed; reset and check board settings.");
} else {
Serial.printf("Networks found: %d\n", count);
for (int i = 0; i < count; ++i) {
Serial.printf("%s : %d dBm\n",
WiFi.SSID(i).c_str(), (int)WiFi.RSSI(i));
}
}
WiFi.scanDelete();
delay(10000);
}
Recover a board that will not upload
- Close Serial Monitor and other programs using the port.
- Hold BOOT, press and release Reset, then release BOOT.
- Check the port list again and select the download-mode port.
- Upload the serial test. After it finishes, press Reset without holding BOOT.
On C3 boards, BOOT normally controls GPIO9. Keep external wiring off boot-strapping pins during recovery. If no Reset button is present, follow the revision's power-on/BOOT procedure.
Connect a sensor and avoid pin conflicts
Use GPIO numbers from the PCB's own pinout, not the physical header position. ESP32 signals use 3.3 V logic. Leave GPIO18/19 available when the board uses native USB. Check boot-strapping pins before connecting circuits that pull a signal high or low.
For a first practical project, continue with our SHT40 / SHT41 / SHT45 wiring and temperature-reading guide. Its example explicitly selects SDA and SCL in code.
Troubleshooting checklist
| Symptom | What to check |
|---|---|
| No port | Data cable, USB socket and download mode; a power LED only confirms some power is present. |
| Upload completes, Serial is blank | USB CDC On Boot, current port, monitor speed, and Reset after opening the monitor. |
| Wrong chip message | Choose ESP32C3 Dev Module or the correct C3-specific profile. |
| No networks found | Retry close to a 2.4 GHz access point and check power and antenna clearance. |
| LED does not blink | LED pin, polarity and type vary by revision. Use the serial test to establish basic operation first. |
References and next steps
- Espressif Arduino installation
- Arduino-ESP32 board settings
- ESP32-C3 USB Serial/JTAG
- ESP32-C3 download mode
- Espressif Wi-Fi API
Need help? Send the product link, board photographs, package version, selected Tools options and complete error output to ESP32S support.
Related products
Share the product link, hardware revision, software version and any error messages.
Contact ESP32S support →