Welcome! This repository contains everything you need to get your ESP32-C3 Super Mini with built-in OLED up and running in minutes.
No prior electronics or programming experience required!
- Download and install Arduino IDE 2.x from the official website: arduino.cc/en/software.
- Open the Arduino IDE on your computer.
The Arduino IDE needs to know how to speak to ESP32 microcontrollers:
- In Arduino IDE, open your preferences:
- macOS:
Cmd + ,(or go toArduino IDE > Settings...) - Windows / Linux:
Ctrl + ,(or go toFile > Preferences)
- macOS:
- Find the field labeled Additional boards manager URLs.
- Paste the following URL into the box:
(If there is already another URL in that field, separate them with a comma
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,). - Click OK.
- On the left sidebar of the Arduino IDE, click the Boards Manager icon (looks like a circuit board).
- Search for
esp32and install the package by Espressif Systems.
The on-board screen uses an open-source graphics library called U8g2:
- On the left sidebar, click the Library Manager icon (looks like a stack of books).
- In the search bar, type:
U8g2 - Locate U8g2 by oliver and click Install.
- Plug your ESP32 Super Mini into your computer using a USB-C Data Cable.
(Note: Some cheap phone-charging cables only carry power and no data lines. If your computer does not detect a serial device, try a different USB-C cable). - In the Arduino IDE top menu, select:
- Tools > Board > esp32 > ESP32C3 Dev Module
- Tools > USB CDC On Boot > Enabled (Crucial for the ESP32-C3 Super Mini!)
- Tools > Port > Select the port for your board (
COM...on Windows,/dev/cu.usb...on macOS).
Bootloader Mode / Flash Tip:
If an upload ever hangs or fails withFailed to connect to ESP32-C3:
- Hold down the onboard BOOT (or BOO) button.
- Plug the USB-C cable in (or press and release the RESET button while holding BOOT).
- Release the BOOT button. This forces the chip into download mode so you can hit upload again.
Open any .ino file in the Arduino IDE and click the Upload arrow (➜) in the top toolbar:
| Project | Difficulty | Description |
|---|---|---|
01_digital_dice |
Simplest | Start with this one to try out the process of uploading firmware! Press the onboard button to trigger an animated, randomized 6-sided dice roll. |
02_slot_machine |
Next simplest | A 3-reel casino slot game with staggered reel stops and jackpot animations. |
03_wifi_pager |
Using Wifi | Sets up a standalone Wi-Fi hotspot and web portal to send messages straight to the OLED screen from your phone. |
You are working with a teeny tiny 32-bit single-core RISC-V microcontroller equipped with 2.4 GHz Wi-Fi and Bluetooth LE.
-
Monochrome OLED (72x40 SSD1306):
- Clock (
SCL)$\to$ GPIO 6 - Data (
SDA)$\to$ GPIO 5
- Clock (
-
User Button: Labeled
BOOTorBOOon the PCB$\to$ GPIO 9 (Active LOW, pulled HIGH internally).
+-----------------+
| [USB-C] |
V5 | [ ] [ ] | GPIO 10
GD | [ ] [ ] | GPIO 9
V3 | [ ] ESP32 [ ] | GPIO 8
RX | [ ] -C3 [ ] | GPIO 7
TX | [ ] [ ] | GPIO 6
GPIO 2 | [ ] [OLED] [ ] | GPIO 5
GPIO 1 | [ ] [ ] | GPIO 4
GPIO 0 | [ ] [ ] | GPIO 3
+-----------------+
You can do so much more with a microcontroller when you add peripherals! Think of ways you can turn this fun toy into a practical daily life tool (add a buzzer to make a portable alarm clock, or some sensors to turn it into a wearable (could make a tiny smart watch!), the coolest pair of earrings ever, with a humidity sensor you can monitor your plants' health, etc!) You can also:
- Digital Outputs: Add external LEDs, buzzers, or relays using
pinMode(pin, OUTPUT)anddigitalWrite(pin, HIGH). - Bluetooth: Use the included
BLEDevice.hlibrary to communicate wirelessly with mobile apps or build custom controllers.
This ReadMe and the accompanying programs were made with the help of Gemini (the generative AI tool)