ESP32-C3 SuperMini Complete Guide: Pinout, Arduino IDE Setup, WiFi, Bluetooth, PWM, ADC and OLED

This article provides a practical and technical explanation of the topic, including real-world use cases and insights.

ESP32-C3 SuperMini Tutorial

ESP32-C3 SuperMini Complete Guide: Pinout, Arduino IDE Setup, WiFi, Bluetooth, PWM, ADC and OLED

The ESP32-C3 SuperMini is a compact and low-cost IoT development board based on the Espressif ESP32-C3 chip. It combines a 32-bit RISC-V microcontroller, 2.4 GHz WiFi, Bluetooth Low Energy, GPIO pins, ADC inputs, UART, SPI and I2C interfaces in a very small form factor.

This tutorial explains the board specifications, pinout, external power supply, Arduino IDE configuration, LED test, WiFi scan, WiFi connection, hotspot mode, Bluetooth scan, BLE server, digital pins, PWM, analog input, serial communication and OLED I2C display connection.

Board: ESP32-C3 SuperMini IDE: Arduino IDE Wireless: WiFi + BLE Level: Beginner to Intermediate
ESP32-C3 SuperMini product introduction and board dimensions
ESP32-C3 SuperMini product introduction and board dimensions.

Quick Overview

The ESP32-C3 SuperMini is suitable for IoT projects, sensor nodes, wearable prototypes, automation systems, web servers, wireless monitoring, OLED displays, Bluetooth Low Energy experiments and low-power applications. Its small size makes it easy to integrate into compact electronic projects.

In this guide, we use the Arduino IDE because it is simple, beginner-friendly and widely used. However, the same board can also be programmed using other development environments such as ESP-IDF or PlatformIO.

1. Product Introduction

The ESP32-C3 SuperMini is an IoT mini development board based on the Espressif ESP32-C3 WiFi and Bluetooth Low Energy chip. The ESP32-C3 uses a 32-bit RISC-V single-core processor running up to 160 MHz and provides enough computing power for many connected embedded applications.

The board supports IEEE 802.11 b/g/n WiFi in the 2.4 GHz band and Bluetooth 5 Low Energy. It is designed for low-power IoT systems, wireless sensor nodes, wearable electronics and small automation projects.

Thanks to its small size and single-sided surface-mount design, the ESP32-C3 SuperMini is easy to place inside compact enclosures. It also includes a USB Type-C connector, BOOT button, RESET button, onboard LED and multiple GPIO pins for sensors and modules.

2. Product Parameters and Main Features

FeatureDescription
ChipESP32-C3, 32-bit RISC-V single-core microcontroller
CPU FrequencyUp to 160 MHz
Wireless2.4 GHz WiFi 802.11 b/g/n and Bluetooth 5 Low Energy
Memory400 KB SRAM, 384 KB ROM and commonly 4 MB flash on SuperMini boards
GPIOMultiple digital GPIO pins, PWM support and analog inputs
InterfacesUART, I2C and SPI
SecurityHardware acceleration for cryptographic functions such as AES, RSA, HMAC and secure boot features depending on configuration
SizeApproximately 22.52 mm × 18 mm, depending on board variant
Onboard LEDBlue LED usually connected to GPIO8

Important Note About Board Variants

ESP32-C3 SuperMini boards can exist in several low-cost variants. Pin labels, antenna layout, onboard LED behavior and voltage regulation may differ slightly between sellers. Always compare your board with its printed pin labels before wiring external modules.

3. ESP32-C3 SuperMini Pinout and Interfaces

The ESP32-C3 SuperMini provides digital GPIO pins, ADC inputs, SPI, I2C and UART. The commonly used default mapping is shown below:

FunctionCommon PinNotes
5V5VPower input/output depending on USB and board regulator design
3.3V3V3Regulated 3.3 V output for low-current modules
GNDGCommon ground
ADCA0 to A5 / GPIO0 to GPIO5Analog input pins
I2C SDAGPIO8Default SDA in many Arduino mappings
I2C SCLGPIO9Default SCL in many Arduino mappings
SPI SCKGPIO4SPI clock
SPI MISOGPIO5SPI MISO
SPI MOSIGPIO6SPI MOSI
SPI SSGPIO7SPI chip select
UART RXGPIO20Hardware serial receive
UART TXGPIO21Hardware serial transmit
Onboard LEDGPIO8Common on many ESP32-C3 SuperMini boards
ESP32-C3 SuperMini pinout and schematic overview
ESP32-C3 SuperMini pinout and schematic overview.

4. External Power Supply

The ESP32-C3 SuperMini can be powered through the USB Type-C connector. Some board versions also allow external power input through the 5V and GND pins. Connect the positive terminal of the external supply to 5V and the negative terminal to GND.

Power Safety Warning

Do not connect USB power and an external power source at the same time unless your board documentation explicitly confirms that it is safe. Avoid short circuits between positive and negative terminals, because this can damage the board, battery, USB port or external equipment.

For battery-powered projects, use a stable 5 V power module or a safe 3.3 V regulated supply depending on the pin you use. Never feed more than the allowed voltage into the 3V3 pin.

5. Hardware Setup

To start programming the ESP32-C3 SuperMini, prepare the following components:

  • 1 × ESP32-C3 SuperMini development board
  • 1 × Computer with Windows, Linux or macOS
  • 1 × USB Type-C data cable
  • Optional: 0.96 inch I2C OLED display
  • Optional: potentiometer for ADC testing
  • Optional: USB-to-serial adapter for UART testing

USB Cable Tip

Some USB Type-C cables are power-only cables and cannot transmit data. If the board is powered but does not appear in the Arduino IDE port list, try another USB cable that supports data transfer.

External power supply, WiFi antenna and hardware setup
External power supply, WiFi antenna and hardware setup.

6. Software Setup: Install ESP32-C3 in Arduino IDE

The easiest way to program the ESP32-C3 SuperMini is to use the Arduino IDE with the Espressif ESP32 board package.

1

Install Arduino IDE

Download and install Arduino IDE 2 from the official Arduino website.

2

Add the ESP32 Board Manager URL

Open File → Preferences and add the following URL in Additional Boards Manager URLs:

https://espressif.github.io/arduino-esp32/package_esp32_index.json
3

Install ESP32 Boards

Go to Tools → Board → Boards Manager, search for esp32, select esp32 by Espressif Systems, then install it.

4

Select the Board

Go to Tools → Board → esp32 and select ESP32C3 Dev Module. On some systems the list is long, so scroll down carefully.

5

Select the Port

Connect the ESP32-C3 SuperMini to your computer, then select the correct serial port from Tools → Port. On Windows it is usually COM3 or higher.

Arduino IDE installation and ESP32 board manager setup
Arduino IDE installation and ESP32 board manager setup.
ESP32-C3 Dev Module selection, port configuration and LED blinking example
ESP32-C3 Dev Module selection, port configuration and LED blinking example.

8. ESP32-C3 SuperMini WiFi Functions

The ESP32-C3 supports 2.4 GHz WiFi and can work in Station mode, Access Point mode and mixed modes. This makes it useful for IoT nodes, web servers, dashboards, sensor monitoring and local control systems.

8.1 Scan Available WiFi Networks

The following code scans nearby WiFi networks and prints the SSID, RSSI signal level and encryption indicator in the Serial Monitor.

#include <WiFi.h>

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

  // Configure ESP32-C3 as WiFi station and disconnect from previous AP
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("Setup done");
}

void loop() {
  Serial.println("Scan start");

  int n = WiFi.scanNetworks();
  Serial.println("Scan done");

  if (n == 0) {
    Serial.println("No networks found");
  } else {
    Serial.print(n);
    Serial.println(" networks found");

    for (int i = 0; i < n; ++i) {
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : " *");
      delay(10);
    }
  }

  Serial.println("");
  delay(5000);
}
FAQ and WiFi network scanning code for ESP32-C3 SuperMini
FAQ and WiFi network scanning code for ESP32-C3 SuperMini.
WiFi scan and WiFi connection serial monitor output
WiFi scan and WiFi connection serial monitor output.

8.2 Connect to a WiFi Network

Replace YOUR_WIFI_NAME and YOUR_WIFI_PASSWORD with your own WiFi credentials. After successful connection, the board prints its local IP address.

#include <WiFi.h>

const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASSWORD";

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

  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println();
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
}

8.3 Create a WiFi Hotspot / Access Point

The ESP32-C3 SuperMini can also create its own WiFi network. This is useful for configuration portals, local dashboards and offline IoT systems.

#include <WiFi.h>

const char* ap_ssid = "ESP_AP";
const char* ap_password = "123456789";  // Minimum 8 characters

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

  WiFi.softAP(ap_ssid, ap_password);

  Serial.print("Host Name: ");
  Serial.println(WiFi.softAPgetHostname());
  Serial.print("Host IP: ");
  Serial.println(WiFi.softAPIP());
  Serial.print("Host SSID: ");
  Serial.println(WiFi.SSID());
  Serial.print("Host MAC Address: ");
  Serial.println(WiFi.softAPmacAddress());
}

void loop() {
  Serial.print("Number of connected stations: ");
  Serial.println(WiFi.softAPgetStationNum());
  delay(1000);
}
ESP32-C3 SuperMini WiFi hotspot SoftAP example
ESP32-C3 SuperMini WiFi hotspot SoftAP example.

9. Bluetooth Low Energy Functions

The ESP32-C3 supports Bluetooth Low Energy, which is useful for low-power communication with smartphones, sensors and nearby devices.

9.1 Scan Bluetooth Devices

This example scans nearby BLE devices and prints the results in the Serial Monitor.

#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>

int scanTime = 5; // seconds
BLEScan* pBLEScan;

class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks {
  void onResult(BLEAdvertisedDevice advertisedDevice) {
    Serial.printf("Advertised Device: %s\n", advertisedDevice.toString().c_str());
  }
};

void setup() {
  Serial.begin(115200);
  Serial.println("Scanning...");

  BLEDevice::init("");
  pBLEScan = BLEDevice::getScan();
  pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
  pBLEScan->setActiveScan(true);
  pBLEScan->setInterval(100);
  pBLEScan->setWindow(99);
}

void loop() {
  BLEScanResults foundDevices = pBLEScan->start(scanTime, false);
  Serial.print("Devices found: ");
  Serial.println(foundDevices.getCount());
  Serial.println("Scan done!");
  pBLEScan->clearResults();
  delay(2000);
}
ESP32-C3 SuperMini Bluetooth LE scan example
ESP32-C3 SuperMini Bluetooth LE scan example.

9.2 Use ESP32-C3 SuperMini as a Bluetooth Server

In this example, the ESP32-C3 SuperMini acts as a BLE server named MyESP32. A smartphone can connect to it using an application such as LightBlue and send a text string to the board.

#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>

#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

class MyCallbacks : public BLECharacteristicCallbacks {
  void onWrite(BLECharacteristic *pCharacteristic) {
    std::string value = pCharacteristic->getValue();

    if (value.length() > 0) {
      Serial.println("**********");
      Serial.print("New value: ");
      for (int i = 0; i < value.length(); i++) {
        Serial.print(value[i]);
      }
      Serial.println();
      Serial.println("**********");
    }
  }
};

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

  BLEDevice::init("MyESP32");
  BLEServer *pServer = BLEDevice::createServer();
  BLEService *pService = pServer->createService(SERVICE_UUID);

  BLECharacteristic *pCharacteristic = pService->createCharacteristic(
    CHARACTERISTIC_UUID,
    BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE
  );

  pCharacteristic->setCallbacks(new MyCallbacks());
  pCharacteristic->setValue("Hello World");
  pService->start();

  BLEAdvertising *pAdvertising = pServer->getAdvertising();
  pAdvertising->start();

  Serial.println("BLE server started. Search for MyESP32.");
}

void loop() {
  delay(2000);
}

9.3 Test with LightBlue App

  1. Upload the BLE server code to the ESP32-C3 SuperMini.
  2. Open the Serial Monitor at 115200 baud.
  3. Install and open the LightBlue app on your smartphone.
  4. Enable Bluetooth and search for the device named MyESP32.
  5. Connect to the device and open the writable characteristic.
  6. Select UTF-8 string format.
  7. Write the word Hello.
  8. The ESP32-C3 will print the received value in the Serial Monitor.
ESP32-C3 SuperMini Bluetooth server code example
ESP32-C3 SuperMini Bluetooth server code example.
LightBlue mobile app connection steps for ESP32-C3 BLE server
LightBlue mobile app connection steps for ESP32-C3 BLE server.
Sending Hello from LightBlue app to ESP32-C3 serial monitor
Sending Hello from LightBlue app to ESP32-C3 serial monitor.

10. ChatGPT / AI Application Idea with ESP32-C3 SuperMini

The ESP32-C3 SuperMini can be used as part of an AI-connected IoT project. For example, you can build a small web page served by the board, let the user submit a question, send the request to a backend server, and display the answer returned by an AI service.

Important Security Note for API Keys

Do not hard-code private API keys directly inside firmware that can be shared, published or extracted from the device. A safer architecture is to send the ESP32 request to your own backend server, then the backend communicates with the AI API securely.

Suggested Architecture

  1. Connect the ESP32-C3 SuperMini to WiFi.
  2. Create a small embedded web page or send data through HTTP/MQTT.
  3. Forward the question to your secure backend server.
  4. The backend sends the request to the AI API.
  5. The response is sent back to the ESP32-C3 and displayed on Serial Monitor or OLED.
ESP32-C3 SuperMini ChatGPT application idea and pin use explanation
ESP32-C3 SuperMini ChatGPT application idea and pin use explanation.

11. Digital Pins, PWM and Analog Input

The ESP32-C3 SuperMini includes digital pins that can be used for LEDs, relays, sensors and other modules. Some GPIO pins can also generate PWM signals, and several pins support analog input through the ADC.

11.1 Digital Pin Example

This is the same onboard LED blinking example using GPIO8:

const int led = 8;   // On-board blue LED on GPIO8

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);  // LED ON
  delay(1000);
  digitalWrite(led, LOW);   // LED OFF
  delay(1000);
}

11.2 Digital PWM Example

This example gradually dims the onboard LED using PWM.

const int ledPin = 8;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  for (int fadeValue = 0; fadeValue <= 255; fadeValue += 5) {
    analogWrite(ledPin, fadeValue);
    delay(30);
  }

  for (int fadeValue = 255; fadeValue >= 0; fadeValue -= 5) {
    analogWrite(ledPin, fadeValue);
    delay(30);
  }
}

11.3 Analog Pin Example

Connect a potentiometer output to an ADC pin such as A5. This code reads the analog value and changes the LED flashing speed depending on the potentiometer position.

const int sensorPin = A5;
const int ledPin = 8;

void setup() {
  pinMode(sensorPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int sensorValue = analogRead(sensorPin);

  digitalWrite(ledPin, HIGH);
  delay(sensorValue);

  digitalWrite(ledPin, LOW);
  delay(sensorValue);
}
ESP32-C3 SuperMini digital pin, PWM and analog pin examples
ESP32-C3 SuperMini digital pin, PWM and analog pin examples.

12. Serial Port and USB CDC

By default, the ESP32-C3 SuperMini communicates with your computer through USB serial. This is why you can open the Arduino IDE Serial Monitor and see messages printed with Serial.println().

The board also exposes hardware UART pins. A common mapping is GPIO20 as RX and GPIO21 as TX. When using a USB-to-serial adapter, connect adapter TX to ESP32 RX, adapter RX to ESP32 TX and GND to GND. Use only a 3.3 V logic serial adapter.

USB CDC On Boot

If the serial monitor does not print correctly, check the Arduino IDE option USB CDC On Boot. Some sketches require it enabled, while external UART tests may require different settings depending on your board package and connection method.

Analog read code and ESP32-C3 serial port wiring
Analog read code and ESP32-C3 serial port wiring.
USB CDC configuration and I2C OLED connection
USB CDC configuration and I2C OLED connection.

13. I2C OLED Display Connection

The ESP32-C3 SuperMini can easily control a 0.96 inch OLED display using the I2C interface. A common wiring is:

ESP32-C3 SuperMini0.96 inch OLED
5V or 3V3VCC, depending on your OLED module
GNDGND
GPIO9 / SCLSCL
GPIO8 / SDASDA

Install the U8g2 library from Sketch → Include Library → Manage Libraries, then upload this test code:

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>

// ESP32-C3 SuperMini default I2C: SDA = GPIO8, SCL = GPIO9
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

void setup() {
  Wire.begin(8, 9);
  u8g2.begin();
}

void loop() {
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_ncenB08_tr);
  u8g2.drawStr(0, 20, "ESP32-C3 SuperMini");
  u8g2.drawStr(0, 40, "OLED I2C Test");
  u8g2.sendBuffer();
  delay(1000);
}

14. FAQ and Troubleshooting

The COM port is not recognized in Arduino IDE. What should I do?

Try another USB Type-C data cable, press RESET, hold BOOT while connecting the board, or enter download mode by holding BOOT, pressing RESET, releasing RESET and then releasing BOOT. Also check if the required USB driver is installed on your system.

The program uploads but does not run. What is the solution?

Press the RESET button after uploading. Also check the selected board, selected port and boot options in the Arduino IDE.

The serial monitor does not print anything.

Confirm the baud rate is set to 115200, check the correct COM port, verify USB CDC On Boot, and make sure the sketch contains Serial.begin(115200); inside setup().

Why does WiFi not connect?

The ESP32-C3 supports 2.4 GHz WiFi. Make sure your router is not using only 5 GHz, check SSID and password, and keep the board close to the router during testing.

Can the ESP32-C3 SuperMini be used for IoT projects?

Yes. It is suitable for IoT sensors, MQTT nodes, web servers, WiFi dashboards, BLE devices, OLED displays, remote monitoring and compact embedded systems.

SEO Settings for WordPress

Focus SEO Keyword

ESP32-C3 SuperMini Tutorial

SEO Title

ESP32-C3 SuperMini Tutorial: Arduino IDE Setup, Pinout, WiFi, Bluetooth and OLED

Slug

esp32-c3-supermini-arduino-ide-wifi-bluetooth-tutorial

Meta Description

Learn how to use the ESP32-C3 SuperMini with Arduino IDE. Full guide with pinout, external power, LED blink, WiFi scan, WiFi connection, hotspot, Bluetooth BLE, PWM, ADC, serial port and OLED I2C display.

Suggested Tags

ESP32-C3, ESP32-C3 SuperMini, Arduino IDE, ESP32 Tutorial, ESP32 WiFi, ESP32 Bluetooth, BLE, IoT, RISC-V, ESP32 Pinout, OLED I2C, PWM, ADC, Embedded Systems, Microcontroller

Suggested Categories

IoT, ESP32, Arduino, Embedded Systems, Electronics Tutorials

Image Alt Text Strategy

Use descriptive alt text such as “ESP32-C3 SuperMini pinout”, “ESP32-C3 Arduino IDE board manager setup”, “ESP32-C3 WiFi scan serial monitor” and “ESP32-C3 Bluetooth BLE server LightBlue app”.

Official References

  • Arduino IDE official download and installation documentation.
  • Espressif Arduino-ESP32 official installation documentation.
  • Espressif ESP32-C3 official product and datasheet information.
  • OpenAI API key safety best practices for projects that connect ESP32 devices to AI services.

Conclusion

This article highlights key aspects and practical applications of the discussed technology.

References

  • IEEE Xplore Digital Library
  • SpringerLink Research
  • Google Scholar

Author: Mourad Elgorma
IoT & Networking Specialist

👉 Read more: Explore more ICT articles

Choose your Reaction!