Last Updated on 18. October 2026 by SuffocationLink status: OK
Hier ein Board der LilyGO Familie mit dem neuen ESP32-S2. Über den ESP32-S2 habe ich bereits HERELink status: Unknown berichtet. Es ist ein USB-C Board. Der ESP32 ist direkt aufgedampft. Das Board besitzt einen Anschalter und einen Lipoladeregler mit JST Anschluss. Für den JST Anschluss wurde ein Anschlusskabel mitgeliefert. Die Antenne ist nicht aufgedampft, sondern besteht aus einem kleinen Metallgestell. Auch kann eine externe Antenne angeschlossen werden. Es besitzt drei Taster und Mäuseklavier und einen SD-Karten Slot. Mehr hierzu später.
Verwendete Versionen
- ESP-IDF v4.3-dev-1901-g178b122c1
- VS-Code 1.50.1Link status: Broken
- Version: 1.50.1
- Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
- Date: 2020-10-13T15:06:15.712Z
- Electron: 9.2.1
- Chrome: 83.0.4103.122
- Node.js: 12.14.1
- V8: 8.3.110.13-electron.0
- OS: Windows_NT x64 10.0.19041
- LilyGO ESP32_S2 20-6-18 V1.01
Facts
- Das Board selbst ähnelt den Prototypen von Espressif ESP32-S2-Saola-1Link status: OK and ESP32-S2-Kaluga-1Link status: OK und benötigt einen CH340 DriverLink status: OK USB Treiber.
| LILYGO ESP32-S2 V1.1 | |
|---|---|
| Manufacturer | LILYGO |
| Processor | ESP32-S2 (Xtensa LX7, 32 Bit) |
| Kernel | 1 |
| Tact | 240 MHz |
| Flash | 4 MB |
| SRAM | 320 KB |
| Digitale Pins | 22 |
| Analoge Eingänge | 6 (VP, VN, 32, 33, 34, 35) |
| WLAN | 802.11 b/g/n, 2,4 GHz |
| USB | USB-C, CH340C |
| Operating voltage | 2,7–3,6 V |
| Input voltage | 5 V (USB) |
| Abmessungen | 65,21 × 25,95 × 5 mm |
| Weight | 7 g |
| Weitere Bausteine | PSRAM 8 MB, Akkuanschluss JST 2-polig 1,25 mm (3,7–4,2 V), Ladestrom 500 mA |
| Function | Pins |
|---|---|
| LED | GPIO 5 |
| Akku Ladestand?(zu Prüfen) | GPIO 35? (A1_7) |
Areas of application
- Internet of Things
- Low Power Consumption
- TOF Indoor-Ortung ?!?
- Handy Tool (OTG)
Views
Analyse
Board Annotation
Schön, es gibt eine „Doku“ von LILYGO

Dip Switch USB/OTG stellt USB von Normal auf OTG (USB On-The-GoLink status: OK) um, wie überraschend ;). Als OTG Gerät kann das Board zum Beispiel direkt am Handy betrieben werden.
Ich vermute, mit Hilfe von Switch zwei kann man einen externen Oszillator/Takt am GPIO32/33 anschließen. Dieser wird auch als Schaltuhr bezeichnet und sollte mit 32.768 kHz getaktet werden. Leider habe ich hierzu keine weiteren Informationen von Lilygo gefunden, denke aber, dass sie mit denen von Espressif konform gehen:

Genauer betrachtet
Der ESP32-S2 Chip von Espressif. S2 ohne Zusatz bedeutet, kein eingebautes Flash, Arbeitstemperatur zwischen -40 und +85°C und Bauform QFN57 (7×7).

Externer PSRam
- 64 mBit = 8 MB
- Bauform SOP8-150 mil
- Maximaler Takt 133 MHz
- Arbeitstemperatur -40 bis 85°C
- Spannung 3.3V

40MHz Quarz zur Taktung des ESP

Usb-C Controller CH340.

USB-C Anschluss

25Q32BVSIG Flash Speicher
- Hersteller BoyaMicro
- 25Q = SPI Flash Quad IO
- 32B = 32M-bit = 4MB
- Versorgungsspannung 2,7 -3,6V
- SS = Bauform 8-pin SOIC 208-mil
- I = Industrieller Temperaturbereich von -40 bis 85°C
- G = Grüne Verpackung Rohs konform …

Laderegler für Lipo LTH7 (TP4054)

Linearer Spannungsregler Max 6V auf 3.3V/600mA

JST 1,5 x2 Anschluss

SMD Antennenanschluss. Dieser ist im Auslieferzustand mit der internen Antenne verbunden. Will man den Anschluss verwenden, muss der Widerstand links oben auf den Punkt rechts umgelötet werden. (von vertikal zu horizontal)

Mal angeschlossen
Mal über die Console aufs Board geschaut, ob da schon etwas läuft. Baudrate ist in dem Fall 115200. Es folgt ein Teil des Outputs.

Es handelt sich um ein Programm vom Hersteller. https://github.com/Xinyuan-LilyGO/LilyGo-esp32s2-base/Link status: OK
Programming
Das Board kann aktuell nur mit dem Espressif Framework programmiert werden. Unterstützt wird dies aktuell von zwei IDEs, Eclipse und VS-Code. Unter Eclipse habe ich das Framework nicht zum Laufen gebracht, wenns bei euch geklappt hat, lasst einen Kommentar, bestenfalls mit Link zur entsprechenden Anleitung da.
Die Installation von VS-Code unter Windows hat mich mehrere Tage gekostet. Diese ist unter folgendem Link zu finden.
Wenn ihr keine IDE benötigt, reicht das Espressif IDF und Python aus, um Code auf der Konsole zu kompilieren, das Vorgehen könnt ihr der folgenden Anleitung entnehmen.
Libraries
Die Espressif IDF bietet erstmal alles, was man braucht, um den ESP32-S2 zu betreiben. Treiber für Sensoren und sonstiges müssen dann noch zusätzlich eingebunden werden.
Testprojekt erstellen
Es sind viele Beispielprogramme in der IDF enthalten. Ich hätte gerne ein TOF Beispiel verwendet, da es eine der Neuerungen des ESP32-S2 ist. Leider ist die Funktionalität noch nicht implementiert, es wird erst in ein paar Wochen damit gerechnet. Wenn es neue Informationen gibt, werde ich dazu einen eigenen Bericht verfassen.
Mit IDF und Konsole
Preparation
- Konsole öffnen (cmd.exe) hier spielt sich alles ab.
- Ins Arbeitsverzeichnis wechseln, bei mir „esp“ im Benutzerverzeichnis.
- Die Beispielprogramme befinden sich unter ..\esp-idf\examples\<Kategorie>\<Projektname>
- Mit xcopy ein Beispielprogramm kopieren
- Ins Verzeichnis wechseln

Weiter gehts mit dem Bauen:
Zielplattform festlegen
idf.py set-target esp32s2

Konfigurieren
idf.py menuconfig
Menuconfig ist eine textbasierte Oberfläche. Navigiert wird über die Pfeiltasten auf der Tastatur. In ein Menü oder Konfigurationspunkt kann mit Enter gesprungen werden. Heraus kommt man mit Escape. Wird im Hauptmenü Escape gedrückt, wird das Programm beendet. Wurden vorher Änderungen vorgenommen, wird man zum Speichern aufgefordert. (Shift+S zum Speichern und Shift + Q zum Beenden). Nachfolgend die Schritte und die entsprechenden Konsolen Screenshots dazu.
- Optional, Daten für das Board anpassen
- Beispielkonfiguration anpassen wichtig ist ssid / passwort und ap passwort im Menü Component config.
- Speichern

Hauptmenü 
Beispiel Konfiguration 
Beispielkonfiguration 
Angepasste Beispielkonfiguration 
Konsolen-Ein-/Ausgabe
Build
idf.py build
Dies kann beim ersten Mal mehrere Minuten dauern.
Sollte alles geklappt haben, kann nun das Programm auf den ESP geflasht werden.
Flashen
Board an den PC anschließen und den seriellen Port bestimmen (bei mir COM30)
idf.py -p COM30 flash
Monitoren
idf.py -p COM30 monitor

Gut es passiert was, spannend wirds aber erst mit zwei oder mehr Knoten. Beim einen den Knopf gedrückt, beim anderen empfangen.

Wer keinen zweiten ESP32S2 hat, kann auch einen „alten“ ESP32 verwenden, neues Ziel setzen (esp32) , menuconfig, build, flash ….
Mit VS-Code
Wie ein Beispielprogramm kopiert wird, habe ich im Bericht zur VS Code Installation näher beschrieben, deshalb hier nur die Kurzfassung.
- F1 Taste für Befehle ausführen
- ESP-IDF eingeben – es werden alle Befehle aufgelistet
- Befehl ESP-IDF: Show ESP-IDF Examples Projects wählen

Auf der linken Seite kann das Beispielprogramm ausgewählt werden. Ich wähle hier mal, wie oben, das ip_internal_network Projekt aus der Sparte mesh aus.

Noch ein Zielverzeichnis wählen:

So sieht das Projekt aus:

Zielplattform auswählen
- F1 Taste
- esp-idf eingeben
- ESP-IDF: Set Espressif device target wählen
Ich wähle die ESP32-S2 Umgebung

Die Verarbeitung dauert einen kleinen Moment. Jetzt soll das Projekt konfiguriert werden. Im Code selbst sind Platzhalter eingebaut, wie hier die CONFIG_MESH_ROUTE_TABLE_SIZE.

Diese werden auf der Console mit menuconfig, in VS-Code mit dem Konfigurationstool eingestellt.
F1 -> esp-idf eingeben -> „Launch gui configuration tool“ auswählen
(ist auch über das Zahnrad links unten erreichbar)

In den Abschnitt Example Configuration wechseln und die Angaben zur SSID, Wlan Passwort und AP Passwort machen. Danach oben rechts Speichern.

Jetzt die Sourcen bauen – Zylinder unten links.


Serielle Schnittstelle auswählen

Bei mir ist es COM30.


Programm auf den ESP schreiben. Dies kann bis zu einer halben Minute dauern.


Monitoren


Hiermit ist der bereits für die IDF beschriebene Prozess für das VS-Code abgeschlossen. Auch hier sei angemerkt, dass das Beispiel erst mit mehreren Knoten einen Sinn ergibt. Wer keine zwei S2 hat, kann einen gewöhnlichen ESP verwenden. Framework Zielplattform auf ESP32 eingestellt und die ganze Prozedur von neuem beginnen. Leider muss auch die Konfiguration neu eingegeben werden.
Problems
Probleme gab es hier keine, da das IDF Framework schon funktionierte. Sollte es mit VS-Code oder dem IDF Framework Probleme geben, bitte in den verlinkten Beiträgen im Kapitel Probleme nachsehen.
ESP-IDF InstallationLink status: Unknown
ESP-IDF im VS-CodeLink status: Unknown
Conclusion
Mit funktionierendem IDF Framework ist die Programmierung des ESP32-S2 ein Kinderspiel. Es sind viele Beispielprogramme dabei und die Menükonfiguration mit den Platzhaltern hat mich beeindruckt.
Schade ist, dass die TOF und OTG Funktionalität noch nicht verfügbar sind, diese Neuerungen wären sehr interessant gewesen. Ich werde diese dann in einem gesonderten Bericht behandeln.
Anfänglich fiel es mir schwer, in den Code hineinzufinden. Wenn man die Einfachheit des Arduino Codes gewohnt ist, sieht der Code der IDF um einiges komplexer aus. Mit ein wenig Übung und ein paar Tutorials ist jedoch auch dies zu schaffen. Die ESP-IDF könnte eine wirkliche Alternative sein. Sie ist früher verfügbar und aktueller als die Portierungen.
Außer, dass ich mehrere Tage für die richtige IDF Installation verbraucht habe, ergeben sich für mich, sieht man mal von dem geringeren Stromverbrauch ab, keine essentiellen Vorteile durch den S2, noch nicht ;).
Wenn ihr auch eine Meinung, Verbesserungsvorschläge, Korrekturen usw. habt, würde ich mich über einen konstruktiven Kommentar von euch freuen.
Related Posts
- ESP32-S2 playing with the mouseLink status: OK
- Espressif IDF – GPIOsLink status: OK
- Espressif IDF – TasksLink status: OK
- Espressif IDF – MenuconfigLink status: OK
- Espressif IDF – TimerLink status: OK
- Espressif IDF – LognachrichtenLink status: OK
- Espressif IDF – FehlerbehandlungLink status: OK
- Espressif IDF – KonsolenausgabeLink status: OK
- Espressif IDF – Projekt erstellenLink status: OK
- LilyGo ESP32-OledLink status: OK
Sources
Original HerstellerseiteLink status: OK
Espressif IDF Support ESP32-S2Link status: Broken
Espressif IDF get StartLink status: OK
Espressif IDF ESP32-S2 Support Status Link status: OK
GPIO 0 ErLink status: OKlLink status: OKäuterung von EspressifLink status: OK
VS-Code HomepageLink status: OK
| Date | Change | Author |
|---|---|---|
| 19.10.2026 | Fakten-Tabelle durch Datenblock aus dem Modell ersetzt | Suffocation |
| 04.10.2026 | Rechtschreibung korrigiert: Tippfehler, Kommas, Groß-/Kleinschreibung, Grammatik | Suffocation |
| 03.10.2026 | Log-Liste eingefügt | Suffocation |
| 23.10.2020 | Post created | Suffocation |









