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 (mindestens Version 6), Node.js (mindestens Version 14) und Git 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. Node.js und Git müssen aber immer außerhalb von Visual Studio Code installiert werden und nicht als Visual Studio Code Erweiterung.
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 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 um eine der Umgebungen zu bauen (build
).
Die Standard-PlatformIO-Umgebung ist auf empty
gesetzt und erzeugt keine nützliche Firmware.
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
energy_manager
definiert in energy_manager.ini
Um die entsprechende Firmware zu bauen muss dann die PlatformIO "Build" Aufgabe ausgeführt
werden. Es kann aber auch die Standard-PlatformIO-Umgebung in der platformio.ini
Datei
von empty
auf die gewünschte Umgebung geändert werden. Zum Beispiel empty
durch
esp32_ethernet
in dieser Zeile ersetzen, um standardmäßig die ESP32 Ethernet Brick Firmware
zu bauen:
default_envs = empty
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. Alternativ kann die gebaute Firmware über das Webinterface hochgeladen werden.
Die Firmware-Datei befindet sich im Verzeichnis software/build
und endet auf _merged.bin
.
Der Aufbau des Dateinamens ist wie folgt: [Umgebung]_firmware_[Versionsnummer]_[Bauzeitpunkt][Endung]
,
zum Beispiel ist warp2_firmware_2_0_7_62d7d0b1_merged.bin
eine Firmware für den WARP2 Charger mit
der Version 2.0.7, die am Unix Timestamp 0x62d7d0b1 = 1658310833, also am 20.07.2022 13:27:02 gebaut wurde.
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.