# ESP32-C3 mit OLED Display 0,42 Zoll - RISC-V IoT Board

**SKU:** SER573
**Brand:** Sonstige
**Price:** 5,00 EUR
**Availability:** in stock
**URL:** https://electronics.semaf.at/ESP32-C3-mit-OLED-Display-042-Zoll-RISC-V-IoT-Board

## Specifications

| Attribute | Value |
|---|---|
| Weight (kg) | 0.2 |

Kompaktes ESP32 C3 Entwicklungsboard mit eingebautem 0,42 Zoll OLED Display, RISC-V Kern, Wi-Fi und Bluetooth 5.

## Description

### Was ist das ESP32 C3 OLED 0,42 Zoll Board – und warum ist das interessant?

Stell dir vor, du willst einen kompakten Sensor Node bauen, der Messwerte direkt vor Ort anzeigt – ohne externes Display, ohne Extraverdrahtung, ohne zweites Bauteil im Gehäuse. Genau das liefert das **ESP32 C3 OLED 0,42 Zoll Board**: ein vollständiger IoT Mikrocontroller mit eingebautem Display, der kaum größer ist als ein Briefmarke. Das Board misst rund 20 × 25 mm, passt auf jedes Standard Breadboard und bringt WLAN, Bluetooth und einen echten OLED Screen direkt mit.

Der Kern ist der `ESP32-C3` von Espressif – ein 32-bit RISC-V Einkern-Prozessor mit bis zu 160 MHz Takt, integriertem Wi-Fi 802.11 b/g/n und Bluetooth 5 LE. Das eingelötete 0,42 Zoll OLED Display mit 72 × 40 Pixeln ist intern bereits über `I²C` verdrahtet und meldet sich mit dem `SSD1306` kompatiblen Treiber. Kein Löten zum Einstieg. Kein separater I²C Adapter nötig.

Ein kleiner aber wichtiger Hinweis vorab: Dieses Board wird unter verschiedenen Namen und von verschiedenen Herstellern produziert – bekanntester Ursprung ist **01Space bzw. ABRobot**. Pinbeschriftungen und I²C Adressen können zwischen Chargen leicht variieren. Dieser Artikel beschreibt die gängigste Variante mit `GPIO8` SDA, `GPIO9` SCL und I²C Adresse `0x3C`.

### Technische Daten im Überblick

Zahlen allein sind trocken. Was bedeuten die einzelnen Werte in der Praxis?

- **RISC-V Einkern, 160 MHz:** CoreMark Score 483 bei vollem Takt – ausreichend für MQTT, HTTP Client, JSON Parsing und gleichzeitige Display-Ausgabe ohne spürbaren Stau. Kein Dual-Core wie beim S3, aber für typische IoT Aufgaben mehr als genug.
- **400 KB SRAM, 4 MB Flash (QIO):** Der Flash-Speicher reicht locker für WLAN Stack, Webserver, Anwendungslogik und OTA Updates. Großen Datenpuffer im RAM halten – etwa für Kamera oder Audio – ist mit dem C3 nicht vorgesehen.
- **Wi-Fi 802.11 b/g/n (2,4 GHz):** Bis 150 Mbit/s im 40 MHz Kanal. Station, SoftAP und Station + SoftAP gleichzeitig werden unterstützt. 5 GHz WLAN gibt es nicht.
- **Bluetooth 5 LE inkl. BLE Mesh:** Kein klassisches Bluetooth (BR/EDR). BLE Advertising Extensions und Long Range (125 kbit/s) werden unterstützt. Wi-Fi und Bluetooth teilen sich intern die Antenne über einen Hardware Co-Existenz-Mechanismus.
- **0,42 Zoll OLED, 72 × 40 Pixel, `SSD1306` Treiber:** Monochrom, Hochkontrast, über `I²C` angebunden. Klein genug für ein Armband, groß genug für eine Statuszeile, eine IP-Adresse oder zwei Sensorwerte.
- **Deep Sleep 5 µA (Chip-Level, Espressif Datenblatt v2.4):** RTC Memory bleibt aktiv. Timer- und GPIO-Wakeup werden unterstützt. Am vollständigen Board liegt der Wert wegen CP2102 und Spannungsregler höher – dazu mehr im Praxis-Abschnitt.
- **Hardware-Kryptographie onboard:** AES-128/256, SHA, RSA und echter Hardware-Zufallszahlengenerator direkt im Chip – relevant für sichere MQTT Verbindungen oder zertifikatsbasierte Authentifizierung.
- **USB Serial/JTAG Controller im Chip:** Das Board nutzt zusätzlich einen `CP2102` als USB zu Serial Brücke über den Micro USB Port. Flashen und serieller Monitor funktionieren ohne Treiber-Fummelei unter Windows 10/11.

### Pinout – welcher Pin macht was?

Das Board stellt 13 GPIO Pins auf zwei Stiftleisten mit **2,54 mm Raster** bereit. Alle Pins arbeiten ausschließlich auf **3,3 V Logikpegel**. 5 V direkt an GPIO-Eingänge anlegen beschädigt den Chip dauerhaft – wer 5 V Sensoren oder ältere Arduino-Shields anschließen will, braucht zwingend einen **Level-Shifter**. Der 5V-Pin am Header leitet die USB-Spannung ungefiltert durch und ist ausschließlich als Eingang gedacht.

- **`GPIO0` bis `GPIO5` – ADC Eingänge:** Sechs Kanäle mit 12-bit Auflösung (0–4096 Schritte bei 0–3,3 V). Für Potentiometer, Licht- oder Feuchtigkeitssensoren ohne externen ADC Chip. Achtung: Der ADC auf dem ESP32-C3 hat bei aktivem Wi-Fi bekannte Genauigkeitsprobleme auf ADC2 – beim C3 gibt es nur ADC1, was dieses Problem entschärft.
- **`GPIO4` SCK, `GPIO5` MISO, `GPIO6` MOSI, `GPIO7` SS – SPI Bus:** Standard Hardware-SPI für schnelle Peripherie wie SD-Karten oder externe Display-Treiber. Gleichzeitig mit ADC auf GPIO4/5 nutzbar, solange keine analogen Messungen laufen.
- **`GPIO8` SDA, `GPIO9` SCL – I²C Bus (intern belegt für OLED):** Diese Pins sind durch das eingebaute Display dauerhaft belegt. Weitere I²C Geräte mit anderen Adressen als `0x3C` lassen sich parallel am selben Bus betreiben – die I²C Adressierung regelt das.
- **`GPIO20` RX, `GPIO21` TX – UART0:** Bootloader-UART. Im laufenden Betrieb als UART nutzbar, aber Achtung: Während des Flashens sind diese Pins belegt. Ein zweites UART-Gerät gleichzeitig angeschlossen haben und flashen wollen führt zu Konflikten.
- **`GPIO10` – freier GPIO:** Kein Sonderfall, kein Strapping, kein JTAG. Der unkomplizierteste Pin auf dem Board für digitale I/O, PWM oder einen weiteren I²C Bus in Software.

PWM ist auf allen 13 GPIO Pins verfügbar – der LED PWM Controller des `ESP32-C3` stellt bis zu 6 unabhängige Kanäle bereit. Servos, LED-Dimmer oder Motortreiber lassen sich damit direkt ansteuern.

### Pins mit Vorsicht behandeln

Nicht jeder Pin ist im Betrieb uneingeschränkt nutzbar. Diese Pins haben Sonderfunktionen, die beim Design beachtet werden müssen:

- **`GPIO2` – Strapping Pin:** Liegt dieser Pin beim Reset auf Low, schlägt der normale Flash Boot fehl. Im laufenden Betrieb unproblematisch, aber als Eingang mit externem Pull-down Widerstand aufpassen.
- **`GPIO4` bis `GPIO7` – JTAG und QSPI Flash:** Diese vier Pins sind gleichzeitig JTAG Leitungen und die QSPI Flash Verbindung. Als freie GPIO nutzbar, aber Hardware-Debugging über JTAG ist dann nicht mehr möglich.
- **`GPIO20` und `GPIO21` – UART0 Bootloader:** Belegen während des Flashens den seriellen Kanal. Im Normalbetrieb umprogrammierbar, aber mit Bedacht – der serielle Monitor und das Bootloader Protokoll laufen über diese Pins.
- **`GPIO11` bis `GPIO17` – intern, nicht herausgeführt:** Diese Pins sind am Chip vorhanden, aber intern mit dem Flash Chip verdrahtet und auf dem Board nicht zugänglich.

### Erste Schritte – Arduino IDE und PlatformIO einrichten

Bevor du loslegen kannst, braucht dein Computer eine Entwicklungsumgebung. Die zwei beliebtesten Optionen sind die **Arduino IDE 2** (einfacher Einstieg) und **PlatformIO** in Visual Studio Code (professioneller, mehr Kontrolle). Beide funktionieren mit dem Board.

**Arduino IDE 2 – Schritt für Schritt:** Öffne *Datei → Einstellungen* und füge diese URL unter "Zusätzliche Boardverwalter URLs" ein: `https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json`. Dann im Boardverwalter nach *esp32 by Espressif* suchen und installieren. Board auswählen: *Esp32c3 Dev*. Weitere Einstellungen unter Werkzeuge: Flash Size *4 MB*, Flash Mode *QIO*, Upload Speed *921600*.

**PlatformIO – platformio.ini:**

```
[env:esp32-c3-oled-042]
platform  = espressif32
board     = esp32-c3-devkitm-1
framework = arduino

board_build.mcu        = esp32c3
board_build.f_cpu      = 160000000L
board_build.flash_size = 4MB
board_build.flash_mode = qio
```

Es gibt keinen offiziellen PlatformIO Eintrag für dieses Board. Der Eintrag `esp32-c3-devkitm-1` ist ein passender generischer Ersatz und funktioniert in der Praxis einwandfrei.

**Erstes Display-Beispiel mit U8g2:** Die U8g2 Bibliothek ist die empfohlene Wahl für dieses Display. Konstruktor und minimales Beispiel:

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

U8G2_SSD1306_72X40_ER_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE, 9, 8);
// Parameter: Rotation, Reset, SCL (GPIO9), SDA (GPIO8)

void setup() {
  u8g2.begin();
  u8g2.setBusClock(400000); // 400 kHz I2C
}

void loop() {
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_ncenB08_tr);
  u8g2.drawStr(0, 15, "Hallo Welt!");
  u8g2.sendBuffer();
  delay(1000);
}
```

### Stromsparen und Sleep Modi

Wer das Board mit Batterie betreiben will, muss die Sleep-Modi kennen. Im Normalbetrieb mit aktivem Wi-Fi zieht der `ESP32-C3` Chip laut Espressif Datenblatt etwa **23 mA im Durchschnitt** – das vollständige Board mit CP2102 und Spannungsregler liegt etwas darüber. Mit einer 1.000 mAh Zelle wären das rund 40 Stunden. Für Projekte mit langen Schlafintervallen sieht die Rechnung deutlich besser aus.

- **Light Sleep:** CPU pausiert, SRAM bleibt aktiv. Aufwachzeit im Millisekundenbereich. Strom sinkt auf rund 800 µA am Modul. Netzwerkverbindung kann im Modem Sleep Modus aufrechterhalten werden.
- **Deep Sleep:** Hauptprozessor fährt komplett herunter. Nur RTC Memory (8 KB) bleibt aktiv. Chip-Level laut Espressif Datenblatt: **5 µA**. Am vollständigen Board liegt der Wert wegen CP2102 und Power-LED deutlich höher – Community-Messungen zeigen typisch 1 bis 2 mA, solange der CP2102 nicht von der Versorgung getrennt wird.

Wer echte Mikroampere im Sleep-Betrieb erreichen will, muss die Stromversorgung des CP2102 und der Status-LED hardwareseitig unterbrechen – per Transistor-Schalter oder durch Entfernen des Power-LED Widerstands. Für einfache Sensor Nodes mit 10 bis 60 Minuten Messintervall ist der Deep Sleep auch mit Board-Overhead noch sinnvoll nutzbar.

```
// Deep Sleep für 30 Sekunden
void setup() {
  // ... hier Sensor lesen, Daten senden ...
  esp_sleep_enable_timer_wakeup(30 * 1000000ULL);
  esp_deep_sleep_start();
}

void loop() {
  // Nach Deep Sleep nicht erreicht
}
```

### Welches Board passt zu dir? C3 OLED vs. C3 Super Mini

Alle drei Boards basieren auf demselben `ESP32-C3` Chip. Die Unterschiede liegen im Formfaktor, den Anschlüssen und dem integrierten Zubehör. Wer das richtige Board wählt, spart sich später Umbauarbeit.

- **ESP32 C3 OLED 0,42 Zoll (dieses Board):** Eingebautes Display direkt auf der Platine. Micro USB mit CP2102. 20 × 25 mm. Weniger freie GPIO Pins, weil I²C intern belegt. Für alle Projekte, bei denen eine kleine Statusanzeige ohne externe Verdrahtung gewünscht ist.
- **ESP32 C3 Super Mini:** Kein Display, dafür mehr freie GPIO Pins. USB-C statt Micro USB. Nativer USB Serial/JTAG Chip ohne CP2102 – Deep Sleep Werte am Board damit realistisch niedriger. Gleiche Chip-Specs. Für Projekte ohne Anzeigebedarf oder wenn ein größeres externes Display geplant ist.

Kurz zusammengefasst: Dieses Board gewinnt, wenn du ein Display willst ohne externe Verdrahtung. Das Super Mini gewinnt, wenn du alle GPIO Pins frei haben und USB-C bevorzugen willst.

### Praxis-Tipps und Stolperfallen

Das ist das, was Nutzer typisch erst nach ein paar Stunden Debugging herausfinden. Lies das vor dem ersten Einstecken.

**Display Bibliothek:** Die Adafruit SSD1306 Bibliothek kennt keine native 72 × 40 Auflösung. Wer sie mit 128 × 64 initialisiert, bekommt ein Bild – aber der sichtbare Bereich liegt teilweise außerhalb des physischen Displays. Die saubere Lösung ist die **U8g2 Bibliothek** mit dem Konstruktor `U8G2_SSD1306_72X40_ER_F_HW_I2C`. Der ältere Workaround mit 128 × 64 Konstruktor und manuell gesetztem xOffset 30 / yOffset 12 funktioniert auch, ist aber fehleranfälliger. I²C Takt unbedingt auf 400 kHz setzen: `u8g2.setBusClock(400000)`.

**Pinout-Varianten zwischen Chargen:** Manche Boards dieser Bauart haben SDA auf `GPIO5` und SCL auf `GPIO6` statt GPIO8/GPIO9 – das hängt vom Hersteller ab. Ein I²C Scanner Sketch klärt schnell, ob das Display antwortet. Wenn nicht, einfach die SDA/SCL Pins im Konstruktor tauschen und neu flashen.

**Download Modus:** Erkennt die IDE das Board nicht oder läuft der Upload ins Timeout? Den **BOOT Knopf** gedrückt halten, kurz **RST** drücken, BOOT loslassen. Das Board ist nun im Download Modus und der Upload funktioniert.

**Deep Sleep und CP2102:** Der CP2102 auf dem Board zieht auch im Deep Sleep des ESP32-C3 kontinuierlich Strom – Community-Messungen zeigen typisch 1 bis 2 mA Gesamtverbrauch am Board. Der Chip-Wert von 5 µA aus dem Datenblatt gilt für das nackte Modul ohne Peripherie. Für Low-Power Projekte mit Akkubetrieb entweder den CP2102 per Transistor vom Strom trennen oder zum Super Mini Board ohne CP2102 wechseln.

**ESPHome:** Ein nativer Display Typ für 72 × 40 fehlt in der Standard ESPHome Konfiguration. Die Community hat Workarounds über Lambda Blöcke entwickelt – eine funktionierende YAML Konfiguration inklusive Display, onboard LED und BLE Tracking findet sich im [Home Assistant Community Forum](https://community.home-assistant.io/t/esp32-c3-72x40-oled-esphome/852490).

Weiterführende Dokumentation: [ESP32 C3 Datenblatt – Espressif Systems (PDF)](https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf), [01Space / ABRobot GitHub Repository mit Schaltplan](https://github.com/zhuhai-esp/ESP32-C3-ABrobot-OLED), [Praxis-Bericht mit Pinout Analyse und Library Tipps](https://emalliab.wordpress.com/2025/02/12/esp32-c3-0-42-oled/).
