Skip to Content

ESP32-C3 SuperMini Board

ESP32-C3 SuperMini Board

The ESP32-C3 SuperMini is a nice, cheap, little development board but documentation is a bit sparse and hard to come by. In this tutorial you will learn how to get started with this board.

Specifically, you will learn how to install the ESP32 core, so that you can program the board via the Arduino IDE. We will also have a closer look at the pinout and I will give you some example circuits and code to play with.

Required Parts

You can get the ESP32-C3 SuperMini Board at AliExpress or a very similar board at Amazon, where it is called “ESP32-C3 Mini”. However, the Amazon board has an RGB LED, while the AliEpress board has only a red led and a blue LED. I linked both of them below. You also will need a USB-C cable and a breadboard with some Dupont wires to try things out.

ESP32-C3 SuperMini

ESP32-C3 Mini

USB C Cable

Dupont wire set

Dupont Wire Set

Half_breadboard56a

Breadboard

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Features of the ESP32-C3 SuperMini

The ESP32-C3 SuperMini is a small (22.52x18mm) development board for IoT, based on the Espressif ESP32-C3. It contains a 32-bit RISC-V single-core processor with up to 160 MHz and comes with 400KB SRAM, 384KB ROM and a built-in 4M flash. The power consumption is quite low, with 43µA in deep sleep mode.

The board supports WiFi 802.11b/g/n protocols at 2.4GHz with Station mode, SoftAP mode, SoftAP+Station mode, and mixed mode, along with Bluetooth 5.0.

With respect to IO, the board offers 1 x I2C, 1 x SPI, 2 x UART, 11 x GPIO (PWM), and 4 x ADC interfaces. The picture below shows the front and back of the board:

Front and Back of ESP32-C3 SuperMini board
Front and Back of ESP32-C3 SuperMini board

You will note that the board has a BOOT and a RST button. Next to the reset button is a red power led and next to the button for the boot loader is a programmable, blue LED that is connected to GPIO 8.

Pinout

The following picture shows the Pinout of the board, with POWER, GPIO, I2C and SPI interfaces marked:

Pinout of ESP32-C3 SuperMini
Pinout of ESP32-C3 SuperMini (source)

Power supply is either via USB-C or by providing 3.3-6V on the 5V pin and ground on the GND pin. But do not connect USB-C and 5V at the same time! Also note that the board uses 3.3V logic.

Installation of ESP32 Core

If this is your first project with a board of the ESP32 series, you will need to install the ESP32 core first. If ESP32 boards are already installed in your Arduino IDE, you can skip this section.

Start by opening the Preferences dialog by selecting “Preferences…” from the “File” menu. This will open the Preferences dialog shown below.

Under the Settings tab you will find an edit box at the bottom of the dialog that is labelled “Additional boards manager URLs“:

In this input field copy the following URL:

https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

This will let the Arduino IDE know, where to find the ESP32 core libraries. Next we will install the ESP32 core libraries using the Boards Manager.

Open the Boards Manager via “Tools -> Boards -> Board Manager”. You will see the Boards Manager appearing in the left Sidebar. Enter “ESP32” in the search field at the top and you should see two types of ESP32 boards; the “Arduino ESP32 Boards” and the “esp32 by Espressif” boards. We want the esp32 libraries by Espressif. Click on the INSTALL button and wait until the download and install is complete.

Install ESP32 Core libraries
Install ESP32 Core libraries

Selecting ESP32C3 Dev Module Board

Finally we need to select a ESP32 board. In case of the ESP32-C3 SuperMini, we pick the generic “ESP32C3 Dev Module”. For that, click on the drop-down menu and then on “Select other board and port…”:

Drop-down Menu for Board Selection
Drop-down Menu for Board Selection

This will open a dialog where you can enter “esp32c3” in the search bar. You will see the “ESP32C3 Dev Module” board under Boards. Click on it and the COM port to activate it and then click OK:

Board Selection Dialog with ESP32C3 Dev Module
Board Selection Dialog with ESP32C3 Dev Module

Alternatively, you could also select the newer “Nologo ESP32C3 Super Mini“, if it is available. You can see in the screenshot above (2 lines below the ESP32C3 Dev Module).

Note that you need to connect the board via the USB cable to your computer, before you can select a COM port.

Enabling Serial Communication

To allow serial communication with the ESP32-C3 SuperMini make sure that “USB CDC On Boot” is enabled. You find this setting under “Tools -> USB CDC On Boot”:

Enabling USB CDC On Boot
Enabling USB CDC On Boot

If this setting is disabled, the Serial Monitor will not work, for instance!

If you have problems flashing the SuperMini, press and hold down the BOOT button, then
press the RESET button, release the RESET button, and then release the BOOT button. That puts the SuperMini into download mode. Usually this is not required though.

Similarly, if the flashed program doesn’t run after download, press and release the RESET button. Again, this is usually not needed.

Examples

In this section you will find some code examples to test your SuperMini:

Code Example: Blink

The following example is the classic Blink program that will blink the blue, on-board LED of the SuperMini that is connected to GPIO 8:

#define LED 8 // Blue LED

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

void loop() {
  digitalWrite(LED, LOW);
  delay(1000);
  digitalWrite(LED, HIGH);
  delay(1000);
}

Code Example: Wi-Fi Scan

This example from the Manual shows how to scan your local Wi-Fi network:

#include "WiFi.h"

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
}

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);
}

Code Example: OLED on I2C

The I2C interface of the SuperMini is on pins 8 (SDA) and 9 (SCL). The picture below shows how to connect an OLED display, for instance:

Connecting OLED to SuperMini via I2C

ad here is the code to test the wiring and the OLED. It simply writes the text “make” on the display. Note that you will need to install the Adafruit_SSD1306 library.

#include "Adafruit_SSD1306.h"

Adafruit_SSD1306 oled(128, 64, &Wire, -1);

void setup() {
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  oled.setTextSize(4);
  oled.setTextColor(WHITE);
}

void loop() {
  oled.clearDisplay();
  oled.setCursor(20, 16);
  oled.print("make");
  oled.display();
  delay(1000);
}

If you want to connect an LCD instead, have a look at the How to synchronize ESP32 clock with SNTP server tutorial, which also takes advantage of the Wi-Fi capability of the SuperMini.

Code Example: E-Paper Display on SPI

As a final example, we are going to control a E-Paper Display via the SPI interface of the SuperMini. The wiring diagram below shows how to connect a 4.2″ e-Paper Display to the SPI pins:

Connecting e-Paper to SuperMini via SPI
Connecting e-Paper to SuperMini via SPI

Below a table with all the connections for convenience. Note that you can power the display with 3.3V or 5V but the SPI data lines must be 3.3V! To be on the safe side, use 3.3V for power supply.

e-Paper displayESP32-C3 SuperMini
CS/SS7
SCL/SCK4
SDA/DIN/MOSI6
BUSY1
RES/RST2
DC0
VCC3.3V
GNDG

The hardware SPI pins for the SuperMini are 5 (MISO), 6 (MOSI), 7 (CS/SS) and 4 (SCK/SCL). The other pins are free to choose.

Before you can draw on the e-Paper display you will need to install two libraries. The Adafruit_GFX graphics library, which provides a common set of graphics primitives (text, points, lines, circles, etc.). And the GxEPD2 library, which provides the graphics driver software for the E-Paper Display.

The following code examples uses these libraries to print the text “Makerguides” on the display:

#include "GxEPD2_BW.h"

// hardware SPI
// #define MISO 5
// #define MOSI 6
// #define SCK 4

#define CS 7
#define DC 0
#define RST 2
#define BUSY 1
GxEPD2_BW<GxEPD2_420_GDEY042T81, GxEPD2_420_GDEY042T81::HEIGHT>
  epd(GxEPD2_420_GDEY042T81(CS, DC, RST, BUSY));

void setup() {
  epd.init(115200, true, 50, false);
  epd.setRotation(1);
  epd.setTextColor(GxEPD_BLACK);
  epd.setTextSize(2);
  epd.setFullWindow();

  epd.fillScreen(GxEPD_WHITE);
  epd.setCursor(90, 190);
  epd.print("Makerguides");
  epd.display();
  epd.hibernate();
}

void loop() {}

If you want to implement something more interesting have a look at the Monthly Calendar on E-Paper Display and the Analog Clock on e-Paper Display tutorials.

Conclusions

In this post you learned how to use the ESP32-C3 SuperMini. The SuperMini is great for IoT projects that require a small footprint but also Wi-Fi or Bluetooth. Due to the low deep sleep current it is also a good board for battery-powered projects. It’s biggest disadvantage is the comparatively small number of GPIO pins.

Happy Tinkering ; )

Schematics

The following few sections show the schematics for power supply, buttons and LEDs, and the microcontroller of the ESP32-C3 SuperMini board.

Power supply

Schematics for Power Supply
Schematics for Power Supply

Microcontroller

Schematics for Microcontroller
Schematics for Microcontroller

Buttons and LEDs

Schematics for Buttons and LEDs
Schematics for Buttons and LEDs

Pin Headers

Schematics for Pin Headers
Schematics for Pin Headers