ESP32-C3 SuperMini Development Board – Arduino Setup, Pinout, WiFi & Troubleshooting

AUSCOMTECH PRODUCT SUPPORT

ESP32-C3 SuperMini Development Board – Arduino Setup, Pinout, WiFi & Troubleshooting

Model: ESP32-C3 SuperMini / ESP32C3FN4

The ESP32-C3 SuperMini is a compact ESP32-C3 development board with a 32-bit RISC-V processor, 2.4GHz WiFi, Bluetooth Low Energy, USB-C programming and a small 22.52 × 18mm footprint.

This guide covers Arduino IDE setup, the board pinout, power connections, the onboard LED, WiFi testing, I2C wiring, ADC considerations and common upload or boot problems.

ESP32-C3 SuperMini Overview

Processor 32-bit RISC-V, up to 160MHz
Board SoC ESP32-C3FN4
Flash 4MB
SRAM 400KB
Wireless 2.4GHz WiFi + Bluetooth LE 5
Programming USB-C / USB Serial-JTAG
This is an ESP32-C3 board, not an ESP8266 board.

Use the Espressif ESP32 board package in Arduino IDE and select the generic ESP32C3 Dev Module profile. Code and libraries written only for the older ESP8266 platform are not automatically compatible.

The board exposes GPIO0 to GPIO10 plus GPIO20 and GPIO21 on its two rows of pads. GPIO18 and GPIO19 are used internally by the ESP32-C3 native USB interface and are not brought out on this SuperMini layout.

GPIO signals are 3.3V logic.

Do not apply 5V signals directly to an ESP32-C3 GPIO pin. Check the voltage level of sensors, displays and serial adapters before connecting them.

Powering the Board

For normal development, power and program the board through its USB-C connector using a data-capable USB cable.

Connection Use Important Notes
USB-C Power, programming and serial monitor Use a USB cable that supports data, not a charge-only cable.
5V External board power input Use a regulated 5V supply for standalone operation and disconnect USB first.
GND Ground Connect to the ground of external sensors, supplies and interfaces.
3V3 3.3V board rail Normally used to power small 3.3V peripherals. Do not apply 5V to this pin.
Do not connect external power to the 5V pin while USB power is also connected.

This SuperMini design does not provide a guaranteed automatic power-source selection system. Use either USB power or an external supply, not both at the same time.

WiFi transmission can cause short current peaks, so use a stable supply and keep power wiring reasonably short. Do not assume the 3.3V pin can power motors, relays or other high-current loads.

Pinout & GPIO Functions

Board Label ESP32-C3 Function Notes
5V5V power railUSB 5V / external regulated 5V input
G / GNDGroundCommon ground
3.3 / 3V33.3V railRegulated logic supply
0GPIO0 / ADC1_CH0General GPIO, ADC capable
1GPIO1 / ADC1_CH1General GPIO, ADC capable
2GPIO2 / ADC1_CH2ADC capable; strapping pin — use with boot-time care
3GPIO3 / ADC1_CH3General GPIO, ADC capable
4GPIO4 / ADC1_CH4ADC capable; JTAG MTMS; supplier diagram labels SPI SCK
5GPIO5 / ADC2_CH0ADC capable; JTAG MTDI; supplier diagram labels SPI MISO
6GPIO6JTAG MTCK; supplier diagram labels SPI MOSI
7GPIO7JTAG MTDO; supplier diagram labels SPI SS
8GPIO8Onboard blue LED, active-low; strapping pin
9GPIO9BOOT button; strapping pin
10GPIO10General GPIO
20GPIO20 / U0RXDUART0 receive
21GPIO21 / U0TXDUART0 transmit
I2C and SPI pins are flexible.

The ESP32-C3 GPIO matrix allows peripheral signals to be routed to different GPIOs. The supplied pin diagram shows GPIO8/GPIO9 as SDA/SCL and GPIO4–GPIO7 as an SPI mapping, but these are not permanently fixed connections.

Take care with GPIO2, GPIO8 and GPIO9 during reset.

These are ESP32-C3 strapping pins. GPIO8 also drives the onboard LED and GPIO9 is connected to the BOOT button. External circuits that force these pins to the wrong level during reset can stop the board booting normally.

BOOT and RESET Buttons

The RESET button restarts the ESP32-C3. The BOOT button is connected to GPIO9 and is used to force the chip into its ROM download mode when automatic USB uploading does not work.

To enter download mode manually:

  1. Press and hold BOOT.
  2. Press and release RESET.
  3. Release BOOT.
  4. Select the newly detected port in Arduino IDE and upload again.

Arduino IDE Setup

No additional library is required for the basic LED, WiFi or I2C examples in this guide. These features are included with the Espressif Arduino-ESP32 core.

1. Install ESP32 Support

Install a current Arduino IDE, then open the IDE preferences and add the following stable Espressif Boards Manager URL:

Espressif Boards Manager URL
https://espressif.github.io/arduino-esp32/package_esp32_index.json

Open Tools > Board > Boards Manager, search for esp32, then install esp32 by Espressif Systems.

2. Select the Board

Select:

  • Tools > Board > ESP32 Arduino > ESP32C3 Dev Module
  • USB CDC On Boot > Enabled
  • Tools > Port and choose the port belonging to the ESP32-C3
Why ESP32C3 Dev Module?

The SuperMini is a compact third-party ESP32-C3 board rather than an official Espressif development-board model. The generic ESP32C3 Dev Module target provides the appropriate Arduino build target for this board.

3. Connect a Data-Capable USB Cable

Some USB-C cables provide power only. A board that lights its power LED but never appears as a USB device may simply be connected with a charge-only cable.

The supplied board has a blue user LED connected to GPIO8. It is active-low, which means writing LOW turns the LED on and writing HIGH turns it off.

Arduino – ESP32-C3 SuperMini Onboard LED Test
const int LED_PIN = 8;

void setup() {
  Serial.begin(115200);

  pinMode(LED_PIN, OUTPUT);

  // GPIO8 LED is active-low.
  digitalWrite(LED_PIN, HIGH);

  delay(1000);
  Serial.println("ESP32-C3 SuperMini LED test started");
}

void loop() {
  digitalWrite(LED_PIN, LOW);
  Serial.println("LED ON");
  delay(1000);

  digitalWrite(LED_PIN, HIGH);
  Serial.println("LED OFF");
  delay(1000);
}

Expected Result

After uploading, the blue onboard LED should turn on for one second and off for one second repeatedly. Open Serial Monitor at 115200 baud to see matching LED ON and LED OFF messages.

If the upload succeeds but the program does not start, press the RESET button once.

WiFi Proof-of-Operation Test

The following sketch scans for nearby 2.4GHz WiFi networks. It does not connect to a network or require a WiFi password.

Arduino – ESP32-C3 WiFi Scanner
#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  delay(1000);

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("ESP32-C3 WiFi scanner");
}

void loop() {
  Serial.println();
  Serial.println("Scanning for WiFi networks...");

  int networkCount = WiFi.scanNetworks();

  if (networkCount == 0) {
    Serial.println("No networks found.");
  } else {
    Serial.printf("%d network(s) found:\n", networkCount);

    for (int i = 0; i < networkCount; i++) {
      Serial.printf(
        "%2d: %-32s RSSI %d dBm\n",
        i + 1,
        WiFi.SSID(i).c_str(),
        WiFi.RSSI(i)
      );
    }
  }

  WiFi.scanDelete();
  delay(5000);
}

Expected Result

Serial Monitor should display nearby 2.4GHz WiFi network names and their received signal strengths. Seeing one or more expected local networks confirms that the ESP32-C3 radio and Arduino WiFi support are operating.

ESP32-C3 WiFi is 2.4GHz.

The board does not provide 5GHz WiFi. A router configured only for a 5GHz network will not appear in this scan.

Using I2C Devices

The ESP32-C3 can route I2C through its GPIO matrix. Although the supplied pin diagram labels GPIO8 as SDA and GPIO9 as SCL, those two pins also have important board functions. For new projects, explicitly assigning other GPIOs avoids conflicts with the onboard LED and BOOT circuitry.

The following example uses GPIO0 for SDA and GPIO1 for SCL.

I2C Module ESP32-C3 SuperMini Function
VCC3V33.3V power when the module supports 3.3V operation
GNDGNDCommon ground
SDAGPIO0I2C data
SCLGPIO1I2C clock
Check I2C pull-up voltage.

I2C breakout boards often include pull-up resistors from SDA and SCL to their VCC pin. Make sure the bus is pulled up to 3.3V, not 5V, before connecting it to the ESP32-C3.

Arduino – I2C Scanner on GPIO0 / GPIO1
#include <Wire.h>

const int SDA_PIN = 0;
const int SCL_PIN = 1;

void setup() {
  Serial.begin(115200);
  delay(1000);

  Wire.begin(SDA_PIN, SCL_PIN);

  Serial.println("ESP32-C3 I2C scanner");
  Serial.println("SDA = GPIO0, SCL = GPIO1");
}

void loop() {
  byte deviceCount = 0;

  Serial.println();
  Serial.println("Scanning I2C bus...");

  for (byte address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    byte error = Wire.endTransmission();

    if (error == 0) {
      Serial.printf("Device found at 0x%02X\n", address);
      deviceCount++;
    }
  }

  if (deviceCount == 0) {
    Serial.println("No I2C devices found.");
  } else {
    Serial.printf("%u device(s) found.\n", deviceCount);
  }

  delay(5000);
}

Expected Result

With a correctly connected I2C device, Serial Monitor should report one or more hexadecimal addresses such as 0x3C, 0x40 or another address appropriate to the connected device.

Analog Input / ADC Notes

The ESP32-C3 provides six ADC-capable GPIOs on this board:

  • GPIO0 – ADC1 channel 0
  • GPIO1 – ADC1 channel 1
  • GPIO2 – ADC1 channel 2
  • GPIO3 – ADC1 channel 3
  • GPIO4 – ADC1 channel 4
  • GPIO5 – ADC2 channel 0

Arduino-ESP32 uses 12-bit ADC readings by default, giving raw values from 0 to 4095. For voltage measurements, analogReadMilliVolts() can provide a calibrated millivolt result.

The ADC measurement range is not automatically the full 0–3.3V GPIO range.

On ESP32-C3, the measurable ADC range depends on attenuation settings. With the commonly used 11dB attenuation setting, the current Arduino-ESP32 documentation specifies an approximate measurable range up to 2.5V. Use a suitable voltage divider when measuring higher voltages and never exceed the GPIO electrical limits.

WiFi Antenna Considerations

Keep the antenna end of the board away from metal enclosures, large ground planes, batteries and dense wiring where practical. Antenna placement can make a significant difference to WiFi and Bluetooth range.

External antenna modification is not a normal plug-in connection on this board.

Some supplier material shows an external coaxial cable being soldered directly to the RF antenna area. This is an RF modification rather than a normal GPIO connection and is not recommended as a beginner procedure. Incorrect coax connection, shielding or impedance can reduce wireless performance instead of improving it. Use the fitted antenna unless you have confirmed the exact PCB revision and RF feed arrangement.

Troubleshooting

No USB or COM port appears

  • Try a known data-capable USB-C cable. A charge-only cable can power the board without creating a USB connection.
  • Try another USB port and reconnect the board.
  • Hold BOOT, press and release RESET, then release BOOT to enter download mode manually.
  • Check that the Espressif ESP32 board package is installed in Arduino IDE.
  • Select the new USB serial port after entering download mode.

Upload fails or waits for the board

  • Confirm ESP32C3 Dev Module is selected rather than an ESP32, ESP32-S2 or ESP8266 target.
  • Check the selected port.
  • Use the manual BOOT/RESET download-mode sequence immediately before uploading.
  • Disconnect external circuits from GPIO2, GPIO8 and GPIO9 while diagnosing boot problems.
  • After the first successful upload, press RESET once if the new program does not start automatically.

Serial Monitor is blank

  • Set USB CDC On Boot to Enabled in the Arduino IDE Tools menu.
  • Use the same baud rate as the sketch. The examples in this guide use 115200 baud.
  • Check that Serial Monitor is connected to the board's current USB port.
  • Press RESET after opening Serial Monitor if required.

Onboard LED appears backwards or does not blink

  • The supplied board's GPIO8 LED is active-low: LOW turns it on and HIGH turns it off.
  • Confirm the sketch uses GPIO8.
  • Do not attach another circuit that strongly drives GPIO8 while testing the onboard LED.
  • If your board has visibly different components or an RGB LED instead of the simple blue LED, it may be a different SuperMini revision.

Board will not boot after connecting a sensor

  • Temporarily disconnect the sensor and reset the board.
  • Check whether the sensor is forcing GPIO2, GPIO8 or GPIO9 to an unsuitable level during reset.
  • For simple peripherals, consider GPIO0, GPIO1, GPIO3 or GPIO10 where practical.
  • Check that no peripheral is feeding 5V into a GPIO pin.

I2C scanner finds no devices

  • Check 3.3V, GND, SDA and SCL wiring.
  • Confirm the sketch pin numbers match the physical wiring.
  • Check whether the breakout board includes I2C pull-up resistors.
  • Make sure SDA and SCL are not being pulled up to 5V.
  • Try reducing wiring length and test one I2C device at a time.

WiFi range is poor

  • Keep the antenna end of the PCB clear of metal objects and large batteries.
  • Test the board away from a metal enclosure or crowded breadboard wiring.
  • Use a stable power supply, particularly during WiFi transmission.
  • Do not perform the direct-solder external antenna modification unless the exact RF layout has been verified.
⚠️ Important

This guide applies to the supplied ESP32-C3 SuperMini layout with two rows of eight pads, GPIO8 onboard LED, GPIO9 BOOT button and ESP32-C3FN4/4MB configuration. ESP32-C3 SuperMini boards are produced by multiple manufacturers and visually similar revisions can use different LEDs, antennas, regulators or fitted components. Compare the markings and layout of your board before applying power. GPIO pins use 3.3V logic and must not be driven directly from 5V signals.

Still need help?Contact AuscomTech Support and include the product or model shown above.
Contact Support →