LILYGO EP32 S2 V1.1

Last Updated on 7. Dezember 2020 by sfambach

Hier ein Board der Liligo Familie mit dem neuen ESP32-S2. Über den ESP32-S2 habe ich bereits HIER 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 sonder 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.

Verwendet Versionen

  • ESP-IDF v4.3-dev-1901-g178b122c1
  • VS-Code 1.50.1
    • 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

Fakten

BeschreibungWert
Flash4MB
PSRAM8MB
SRAM320kB
Wifi2,4 GHz 802,11 b/g/n, 802,11 n
Arbeitsspannung2,7V-3,6V
Digital I/O Pins22
Analog Input Pins6 (VP, VN, 32, 33, 34, 35)
Analog Output Pins2 (25, 26)
Clock Speed(Max)240MHz
Flash4M Bytes
LED_BUILTINGPIO5
USBTyp C CH340C
Akku Anschluss für 3,7V Lipo2Pin 1,25mm
Abmessungen l/b/h in mm65,21 / 25,95/5
Abmessung (Gemessen) l/b/h in mm66,82/ 25,92 /5,77
Gewicht7g
LilyGO ESP32-S2 – Kerndaten
FunktionPins
LEDGPIO 5
Akku Ladestand?(zu Prüfen)GPIO 35? (A1_7)
Spezielle Pinbelegungen

Anwendungsbereiche

  • IOT
  • Low Power konsumption
  • TOF Indor-Ortung ?!?
  • Handy Tool (OTG)

Ansichten

Analyse

Board Annotation

Schön es gibt eine „Doku“ von LILYGO

Lilygo ESP32_S2 Annotiert
Lilygo ESP32_S2 Annotiert

Dip Switch USB/OTG stellt USB von Normal auf OTG (USB On-The-Go) 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 anschliessen. 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 Espressis konform gehen:

Quelle: Espressif.com

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).

ESP32-S2 Controller

Externer PSRam

  • 64 mBit = 8 MB
  • Baufrom SOP8-150 mil
  • Maximaler Takt 133 MHz
  • Arbeitstempertur -40 bis 85°C
  • Spannung 3.3V

40MHz Quarz zur Taktung des ESP

40 MHz externer Quarz

Usb-C Controller CH340.

CH340 USB-C Chip

USB-C Anschluss

USB-C Anschluss

25Q32BVSIG Flash Speicher

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

Laderegler für Lipo LTH7 (TP4054)

Laderegler TP4054

Linearer Spannungsregler Max 6V auf 3.3V/600mA

JST 1,5 x2 Anschluss

JST 1,5mm Amschluss, zweiphasig

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

Antennenanschluss

Mal Angeschlossen

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

ESP32-S2 – Programm auf dem Chip

Es handelt sich um ein programm vom Hersteller. https://github.com/Xinyuan-LilyGO/LilyGo-esp32s2-base/

Programmierung

Das Board kann aktuell nur mit dem Espressif Framework programmiert werden. Unterstützung wird dies aktuelle von zwei IDEs, Eclipse und VS-Code. Unter Eclipse habe ich das Framwork nicht zum Laufen gebracht, wenns bei euch geklappt hat lasst einen Kommentar bestenfalls mit Link zur ensprechenden Anleitung da.

Die Installation von VS-Code unter Windows hat mich mehrere Tage gekostet. Diese ist unter folgenden Link zu finden.

VS-Code Espressif IDF Installation

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.

Espressif IDF Installation

Bibliotheken

Die Espressif IDF bietet ersmal alles was man braucht um den ESP32-S2 zu betreiben. Traber für Sensoren und sonstiges muss dann noch zuzätlich eingebungden 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

Vorbereitung
  • Konsole öffnen (cmd.exe) hier spielt sich alles ab.
  • Ins Arbeisverzeichnis wechseln, bei mir „esp“ im Benutzerverzeichnis.
  • Die Beispielprogramme befinden sich unter ..\esp-idf\examples\<Kategorie>\<Projektname>
  • Mit xcopy ein Beispielprogramm kopieren
  • Ins Verzeichnis wechseln
Windows Konsole – Projekt vorbereiten

Weitergehts mit dem Bauen:

Zieplattform 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 Konfigurationpunkt kann mit Enter gesprungen werde. Heraus kommt man mit Escape. Wird im Hauptmenü Escape gedrückt, wird das Programm beendet. Wurden vorher Änderungen vorgenommen wir 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
Bauen
idf.py build

Dies kann beim ersten Mal mehrere Minuten dauern.

Sollte alles geklappt haben kann nun das Programm auf auf den ESP geflasht werden.

Flashen

Board an den PC anschliessen und den seriellen Port bestimmen (bei mir COM30)

idf.py -p COM30 flash
Monitoren
idf.py -p COM30 monitor 
LillyGO ESP32S2 Ausgabe

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

So sollte es beim „anderen“ Knoten aussehen

Wer keinen zweiten ESP32S2 hat kann auch einen „alten“ ESP32 verwenden, neues Ziel setzen (esp32) , menuconfig, build, flash ….

Mit VS-Code

Wie eine Beispielprogramm kopiert wird habe ich im Bericht zur VS Code Insatallation 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
VS Code Espressif IDF – Befehl Show Examples Porojects

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

VS Code Espressif IDF – Beispiel-Projekt wählen

Noch ein Zielverzeichnis wählen:

VS Code Espressif IDF – Projektverzeichnis wählen

So sieht das Projekt aus:

VS Code Espressif IDF – Projektverzeichnis Struktur

Zielplattform auswählen

  • F1 Taste
  • esp-idf eingeben
  • ESP-IDF: Set Espressif device target wählen

Ich wähle die ESP32-S2 Umgebung

VS-Code IP Project – Auswahl Zielplattform

Die Verarbeitung dauert einen kleinen moment. Jetzt soll das Projekt kofiguriert werden. Im code selbst sind Platzhalter eingebaut, wie hier die CONFIG_MESH_ROUTE_TABLE_SIZE.

VS-Code IP Project – Code Beispiel mit Platzhalter

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)

VS-Code IP Project – Starten von menuconfig

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

VS-Code IP Project – Example Configuration ausfüllen

Jetzt die Sourcen bauen – Zylinder unten links.

VS-Code IP Project – Projekt bauen (CMake config und compile)
VS-Code IP Project – Projekt bauen -> Erfolgsmeldung

Serielle Schnittstelle auswählen wählen

VS-Code IP Project – Port Wahl

Bei mir ist es COM30.

VS-Code IP Project – Port Auswahliste
VS-Code IP Project – Port Auswahl erfolgreich

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

VS-Code IP Project – Flashen
VS-Code IP Project – Flashen erfolgreich

Monitoren

VS-Code IP Project – Monitor starten
VS-Code IP Project – Monitor ausgabe.

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 neuen beginnen. Leider muss auch die Konfiguration neu eingegeben werden.

Probleme

Probleme gab es hier keine, da das IDF Framework schon funktionierte. Sollte es mit VS-Code oder dem IDF Framework Problem geben bitte in den glinkten Beiträgen im Kapitel Probleme nachsehen.

ESP-IDF Installation

ESP-IDF im VS-Code

Fazit

Mit funktionierenden IDF Framework ist die Programmierung des ESP32-S2 ein Kinderspiel. Es sind viele Beispielprogramme dabei und die Menükonfiguration mit den Platzhalten hat mich beeindruck.

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 hinein zu finden. Wenn man die Einfachheit des Arduino Codes gewohnt ist sieht der Code der IDF um einiges komplexer aus. Mit einwenig Ü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.

Ausser, dass ich mehrere Tage für die richtige IDF Installation verbraucht habe, ergeben sich für mich, sieht man mal von dem geringern Stromverbrauch ab, keine essentiellen Vorteile durch den S2, noch nicht ;).

Wenn ihr auch eine Meinung habt, Verbesserungsvorschläge, Korrekturen usw. habt würde ich mich über einen konstruktiven Kommentar von euch freuen.

Verwandte Beiträge

Quellen

Original Herstellerseite

Espressif IDF Support ESP32-S2

Espressif IDF get Start

Espressif IDF EPS32-S2 Support Status

GPIO 0 Erläuterung von Espressif

VS-Code Homepage

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.