LilyGo ESP32-Oled

Last Updated on 15. October 2026 by SuffocationLink status: OK

Ein ESP32, ein Display, was will man mehr. So oder so ähnlich stellt sich das LilyGo ESP32 Oled Board vor. Es ist relativ kurz und passt gerade so, mit einer verbleibenden Reihe auf jeder Seite, auf ein Steckbrett.

Facts

Allgemeines

DescriptionWorth
ProcessorESP32
Flash [MB]16
USBCP2102
DisplaySSD1306
Lipo Anschluss [mm]JST 2x 1,5
SteckbrettkompatibelJa, eine freie Reihe auf jeder Seite
Allgemeine Infos zum Board

Oled Display

DescriptionPin
I2C Address0x3C
RSTGPIO16
SCLGPIO15
Seventh-day AdventistGPIO4
Diagonale [Zoll]0.96
Spalten / Zeilen 128 / 64
Technik/FarbeOLED / SW
OLED Display Daten

Pinout

Esp32-Oled – Pinout
Quelle: https://wiki.liutyi.info/display/ARDUINO/ESP32+OLED+V2.0+TTGO+4Mt+Pro

Areas of application

  • Display für Roboter oder andere Geräte
  • Smarthome Anzeige

Views

Analyse

Angeschlossen

Mal angeschlossen, ist bei mir das Drawing Demo zu sehen.

https://wiki.liutyi.info/display/ARDUINO/ESP32+TTGO+V2.0+OLED+Drawing+DemoLink status: OK

Genauer hingeschaut

Bezüglich des Speichers war ich etwas überrascht, da die Angaben beim schnellen Ali auf 4MB hindeuten. Ich bin jetzt nicht der Experte auf dem Gebiet der Speicherchips, aber Winbond gibt den Speicher mit 128 M-bit an, was bei mir 16MB sind.

Ich habe die Arduino GUI auf 16MB umgestellt, die beste Option ist 16MB mit jeweils 3MB für die Applikation und der Rest kann als FAT genutzt werden.

Speicher auf 16MB = 2* 3MB Anwendungsdaten + 9 MB FATFS (Rest Bootloader …)

Das Compilieren und Aufspielen hat funktioniert.

Da ich der Arduino GUI nicht voll vertraue, habe ich den Test mit ESP IDF nochmal wiederholt.

Konfiguriert mit idf.py menuconfig:

Auf 16 MB umgestellt, Detect Flash size aktiviert

Auch hier scheint es zu klappen. Mehr zu den Einstellungen gibts unter folgendem LINK:

https://www.fambach.net/esp32-nuetzliche-infos/Link status: Unknown

Programming

Arduino GUI

Grundsätzliches zur Programmierung mit der Arduino GUI findet ihr HERELink status: Unknown.

Libraries

Es gibt viele Bibliotheken … aber dies ist meine … , ich verwende die von Daniel Eichhorn, weil ich mit ihr schon vorher gearbeitet habe und sie auch mit dem ESP8266 kompatibel ist. Alle anderen sind aber deswegen nicht schlechter.

https://github.com/ThingPulse/esp8266-oled-ssd1306Link status: OK

Test programme

Das Beispielprogramm habe ich aus den mitgelieferten entwickelt. Es zeigt einen Text und einen rechtsbündig angeordneten Zähler, der bei 999 wieder auf 0 umschaltet.

https://github.com/sfambach/esp32/blob/master/boards/TTGO_4M_ESP32-Oled/src/ESP32-DHT-SSD1306/ESP32-DHT-SSD1306.inoLink status: OK

Download über DowngitLink status: OK

Arduino Gui Testprogramm – So schaut’s aus.

Problems

Keine Probleme bisher bekannt.

Espressif IDF

Grundsätzliches zur Programmierung mit der Espressif IDF findet ihr HERELink status: Unknown.

Libraries

Ich wollte eigentlich die u8g2 verwenden, wegen komischer Linker-Fehler habe ich mich dann aber für die unten gelinkte Bibliothek entschieden.

Tarable SSD1306 BibliothekLink status: OK

Die Bibliothek ins components Verzeichnis extrahieren oder direkt mit git downloaden.

Test programme

Das Testprogramm habe ich an das der ArduinoGui angelehnt. Da ich keine delays setzen wollte, habe ich zusätzlich noch Timer verwendet. Hier der Code:

Source code ESP32-DHT-SSD1306.ino (GitHubLink status: OK)

/**
 * Example for SSD106 lib from Daniel Eichhorn
 * This example shows a simple text and a right aligned counter.
 * 
 * Libraries:
 * https://github.com/ThingPulse/esp8266-oled-ssd1306
 * 
 * For more examples viste http://fambach.net if you want ;) 
 * 
 */

/* modified font created at http://oleddisplay.squix.ch/ */
#include "modified_font.h"

/*  SSD1306 */
#include "SSD1306.h" 
#define SDA_PIN 4// GPIO21 -> SDA
#define SCL_PIN 15// GPIO22 -> SCL
#define SSD_ADDRESS 0x3c
SSD1306  display(SSD_ADDRESS, SDA_PIN, SCL_PIN);

void setup() {

  pinMode(16,OUTPUT);
  pinMode(2,OUTPUT);
  
  digitalWrite(16, LOW);    // set GPIO16 low to reset OLED
  delay(50); 
  digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in hi
  Serial.begin(115200);
  Serial.println("");
  Serial.println("ESP32 DHT Temperature and Humidity - OLED Display");
  Serial.println("");
  
  display.init();

  display.flipScreenVertically();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(Open_Sans_Condensed_Light_20); // set a font
}

void loop() 
{
  displayData();
  delay(1000);
}

/***************************************************
* Display Data
****************************************************/
int counter = 0;
void displayData() 
{

  display.clear();   // clear the display

  display.drawString(0, 32-20/2,  String("Stefan's Blog"));
  if(counter > 999){
    counter = 0;
  }
  String s = String(counter++);
  uint16_t numberWidth = display.getStringWidth(s);
  display.drawString(128-numberWidth, 32-20/2,s);  

  display.display();   // write the buffer to the display
  delay(10);
}

Im Prinzip sieht das Ergebnis genauso wie beim vorhergehenden Beispiel aus.

Espressif IDF Testprogramm – Ausgabe

Problems

Undeutbare Kompilierfehler

Pfad überprüfen, sollte keine Leerzeichen enthalten.

Kompiliert nicht – SPI Fehler

SPI Display herausnehmen, indem man das Folgende in der main-Datei auskommentiert.

//#define USE_SPI_DISPLAY
Kein Bild auf dem Oled

Reset nicht mit GPIO 16 belegt, stand auf -1.

Nur jede zweite Zeile wird ausgegeben

Zeilenanzahl überprüfen

Miscellaneous

Case

Dies könnte passen, habe ich aber noch nicht ausprobiert:

https://www.thingiverse.com/thing:4460498Link status: Unknown

Conclusion

Einfaches Board mit viel Speicher, Oled Display und Lipo Anschluss. Ein paar Ports sind auch herausgeführt, was will man mehr für kleines Geld (~7€ beim schnellen Ali).

Related Posts

Sources

Github LilyGO Lora-ESP32-OLEDLink status: Unknown

LilyGo Herstellerseite zum 4M ESP32-OLEDLink status: Unknown

Github LilyGO BeispielprogrammLink status: Unknown

SSD1306 BibliothekLink status: Unknown

Tarable SSD1306 BibliothekLink status: OK

Tarable SSD1305 Bibliothek BeispieleLink status: Unknown

Espressif U8g2 Bibliothek Link status: Unknown

NodeMCULink status: Unknown u8g2 BibliothekLink status: Unknown

Espressif IDF Build SystemLink status: OK

https://wiki.liutyi.info/display/ARDUINO/ESP32+OLED+V2.0+TTGO+4Mt+ProLink status: Unknown

https://wiki.liutyi.info/display/ARDUINO/ESP32+TTGO+V2.0+OLED+Clock+DemoLink status: Unknown

DateChangeAuthor
15.10.2026Beispielcode als Code-Block eingefügt (Einbettung über gist-it.appspot.com funktionierte nicht mehr)Suffocation
04.10.2026Rechtschreibung korrigiert: Tippfehler, Kommas, Groß-/Kleinschreibung, GrammatikSuffocation
03.10.2026Log-Liste eingefügtSuffocation
17.12.2020Post createdSuffocation
Changelog

Leave a Reply

Your email address will not be published. Required fields are marked *