ESP32 Firmware

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.

Vorbereitung

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.

Firmware bauen

Abhängig von der zu bauenden Variante der Firmware muss die entsprechenden PlatformIO Umgebung gewählt werden:

  • ESP32 Brick: esp32 definiert in esp32.ini
  • ESP32 Ethernet Brick: esp32_ethernet definiert in esp32_ethernet.ini
  • WARP Charger Smart und Pro: warp definiert in warp.ini
  • WARP2 Charger Smart und Pro: 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.

Struktur der Firmware

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.