Die ESP32 Firmware kann in mehreren Varianten für verschiedenen Geräte gebaut werden:
Die Firmware ist in C/C++ programmiert und der Quelltext ist frei auf GitHub verfügbar. Als Basis dienen das Arduino ESP32 Projekt und PlatformIO.
Zuerst müssen PlatformIO und Node.js anhand der Anleitung des jeweiligen Projekts installiert werden. Für PlatformIO empfehlen wir die PlatformIO IDE Erweiterung für Visual Studio Code zu verwenden. Es kann aber auch PlatformIO Core verwendet werden.
Allgemein sollte immer die neueste Version von PlatformIO und Node.js verwendet
werden. Der Node.js Package Manager npm
muss mindestens in Version 8
vorliegen.
Für Windows muss der Silicon Labs CP210x Universal Windows Driver installiert werden. Linux und macOS bringen diesen Treiber schon von sich aus mit.
Dann das esp32-firmware Repository von GitHub als ZIP Datei herunterladen und entpacken oder mittels git clonen.
Die platformio.ini
Datei befindet sich im software/
Verzeichnis.
Achte darauf das software/
Verzeichnis in Visual Studio Code als
Projekt-Verzeichnis zu öffnen und die prepare
Umgebung
bauen (build
), um das Bauen der anderen Umgebungen vorzubereiten. Allgemein muss dies
nur einmal durchgeführt werden und nicht vor jedem Bauen anderer Umgebungen.
Abhängig von der zu bauenden Variante der Firmware muss die entsprechenden PlatformIO Umgebung gewählt werden:
esp32
definiert in esp32.ini
esp32_ethernet
definiert in esp32_ethernet.ini
warp
definiert in warp.ini
warp2
definiert in warp2.ini
Um die entsprechende Firmware zu bauen muss dann die PlatformIO "Build" Aufgabe ausgeführt werden. Um die Firmware in einem Schritt zu bauen, auf den Brick hochzuladen und eine Verbindung zur seriellen Konsole herzustellen kann die PlatformIO "Upload and Monitor" Aufgabe ausgeführt werden. Dazu muss der Brick vorher per USB angeschlossen werden.
Die Funktionalität und das Webinterface der Firmware sind aus Modulen zusammengesetzt.
Die verschiedenen Varianten der Firmware unterscheiden sich hauptsächlich durch
die aktiven Module. Die Liste der aktiven Module wird in der jeweligen .ini
Datei für jede Umgebung durch die Optionen custom_backend_modules
und custom_frontend_modules
festgelegt.
Das Tutorial zur ESP32 Firmware zeigt Schritt für Schritt wie die Standard-Firmware um ein eigenes Modul erweitert werden kann.