Donnerstag, 24. Juni 2021

Tasmota Firmware selbst gebaut

Es gibt für tasmota  Firmware Images zum download, aber diese enthalten nicht alles was so entwickelt wurde. Ich brauchte eine Firmware für ESP32 mit Ethernet (Olimex) und Wägesensor (HX711). Gibt es jeweils fertig als tasmota-ethernet und tasmota-sensors - ich wollte es doch aber zusammen!? 

Da bleibt nur: tasmota Firmware selbst bauen.

Es gibt eine Online Umgebung um dies zu tun, man braucht nichts zu installieren. Man muss sich dazu auf GitPod anmelden (funktioniert mit dem GitHub Account).

Ist man angemeldet kann man die Umgebung mit diesem Link starten. Jetzt passiert in einer virtuellen Umgebung (docker container) etwas, ein neuer Workspace wird erstellt.

  1. Den "Build Prozess" komplett abwarten, bis zum Schluss unten im Browserfenster die Zeile steht:
    • Server started on Port 3000
  2. Ganz links gibt es eine Menuleiste 
    • das Monitor Symbol "remote Explorer" anklicken, 
    • es öffnet sich ein Untermenu, dort klicken
    • GITPOD WORKSPACE / Ports / 3000 
  3. Wenn man da mit der Maus drüberfährt ergibt sich wieder eine Menuleiste und ganz rechts die Weltkugel: "Open Browser" - ein klick startet den Tasmocompiler!
Hätte das bis hierher so ausgesehen wie hier, hätte ich diesen Artikel nicht geschrieben.

Im Tasmocompiler selbst erklärt sich fast alles, die Werte kann man alle auf Standard lassen, außer bei "zusätzliche Parameter" fügt man zwei Zeilen ein. Dieses Beispiel gilt nur für das Olimex Board! Für andere Boards mus man mehr Parameter setzen, siehe Beispiel WT32-ETH01 weiter unten.

Hintergrund: Im Hintergrund wird die Datei user_config_override.h erzeugt, welche den Compiler letztlich steuert. Man kann die komplette Datei für später herunterladen.

#define FIRMWARE_SENSORS
#define USE_ETHERNET

Im letzten Punkt wird die Version und die Sprache ausgewählt und die Kompilierung gestartet. 
Hat man alles richtig gemacht sollte es keine Fehlermeldung geben!

Jetzt kann man die Firmware über den Button herunterladen und flashen. Zum flashen habe ich das Tool  ESP-Flasher-Windows-x64 verwendet welches in der tasmota Doku verlinkt ist. (direkter Link)

Damit es funktioniert, muss man für Ethernet (Board spezifisch) ein Template eintragen, danach gehen die LEDs an der Ethernet Schnittstelle an und in Tasmota Oberfläche / Informationen sieht man die LAN Adresse.

Für den Wägesensor muss man die GPIO Ports konfigurieren:
GPIO 16 = HX711 DAT 
GPIO 17 = HX711 SCK

Tipps

Es gibt eine Seite mit Hinweisen und Templates für weitere ESP Devices: Link 
Ich habe eine komplette my_user_config.h Datei im GitHub gefunden. Link

Eventuell kann man das noch genauer machen (undef USE_ETHERNET ).

#define USE_ETHERNET                             // Add support for ethernet (Currently fixed for Olimex ESP32-PoE)
// WT32_ETH01
  #define ETH_TYPE          0                    // [EthType] 0 = ETH_PHY_LAN8720, 1 = ETH_PHY_TLK110/ETH_PHY_IP101, 2 = ETH_PHY_RTL8201, 3 = ETH_PHY_DP83848, 4 = ETH_PHY_DM9051, 5 = ETH_PHY_KSZ8081
  #define ETH_ADDRESS       1                    // [EthAddress] 0 = PHY0 .. 31 = PHY31
  #define ETH_CLKMODE       0                    // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN, 1 = ETH_CLOCK_GPIO0_OUT, 2 = ETH_CLOCK_GPIO16_OUT, 3 = ETH_CLOCK_GPIO17_OUT

Sollte der ESP nach dem Restart in einen Boot Loop geraten und dabei Brown Out erkannt werden (sieht man gut im seriellen Monitor - Brown Outs sind Spannungseinbrüche) kann folgendes helfen, bevor man den Baustein als defekt ablegt:
  • 100 µF direkt an die Spannungsquelle klemmen.
  • Kurze Strippen zur Versorgung nehmen, nicht umständlich über Breadboard schleifen.
  • Netzteil prüfen
  • Verwendung von 5 Volt Speisung statt 3,3 Volt
Bei einem ESP Board mit Ethernetanschluss will man ja ev. auf Wifi Anbindung komplett verzichten. Man kann in der Konsole wifi einfach abschalten: wifi off.

In Tasmota kann man auch einen serial to TCP Bridge aktivieren um z.B. das HMUART Modul im Netzwerk zu betreiben. 

Keine Kommentare:

Kommentar veröffentlichen