dennis-guse.de
HyperLED-Wiki

Mehrere Geräte (Master und Slaves)

Ein ESP32 kann viele LEDs treiben, aber manchmal willst du mehr: einen zweiten Streifen in einem anderen Raum, ein LED-Panel oder eine lange Wandinstallation. HyperLED lässt dich mehrere Boards verbinden und alle über eine Weboberfläche steuern.

Master und Slaves
Master und Slaves
  • Der Master ist das Board, das du normalerweise im Browser öffnest. Er kennt alle Segmente und sagt jedem Slave, was er zeigen soll.
  • Ein Slave ist ein weiteres Board mit der HyperLED-Slave-Firmware. Er hat keine eigene Weboberfläche. Du benennst und richtest ihn vom Master aus ein.

Die Verbindung heißt HyperBus. Sie funktioniert auf zwei Arten, und ein Slave wählt selbst die passende:

Kabel (UART) Funk (ESP-NOW)
Wie eine Datenleitung plus gemeinsame Masse Funk, kein Kabel
Vorteil am zuverlässigsten und schnellsten gar keine Verkabelung, nur Strom
Verdrahtung Master TX = GPIO 17 → Slave RX = GPIO 16, plus GND an GND. Ein ESP32-C6-Slave wird gerade verdrahtet: Master-TX GPIO 17 → C6 GPIO 17 (RX), Master-RX GPIO 16 ← C6 GPIO 16 (TX) keine

Slaves mit Kabelverbindung können die Daten an weitere Slaves weiterreichen (eine Kette). Beim Start prüft ein Slave, ob ein Kabel angeschlossen ist; wenn nicht, nutzt er den Funk. Er merkt sich seine Wahl.

Hinweis

Die Funkverbindung braucht keine Einrichtung: Slaves finden den WLAN-Kanal des Masters automatisch. Deshalb arbeiten Master und Slaves immer auf dem Kanal deines Heimnetzes.

Der Master rechnet nur, was ein Slave nicht selbst kann. Normalerweise führt der Slave die Animation selbst aus und bekommt nur die Einstellungen (Effekt, Farbe, Helligkeit, Geschwindigkeit), wenn sich etwas ändert. Das hält den Funk frei und die Effekte flüssig.

Einen Slave einrichten

  1. Spiel die Slave-Firmware auf den zweiten ESP32-S3. Sie liegt in einem eigenen Repository: HyperLED-Slave. Öffne es in VS Code mit PlatformIO und lade es wie die Firmware in Firmware installieren hoch (Schritt 1; der Slave braucht keine Weboberfläche).
  2. Schließ die LEDs wie in Verkabelung und Strom an den Slave an, oder das HUB75-Panel mit seiner festen Pinbelegung.
  3. Verbinde den Slave mit dem Master: Verdrahte TX/RX/GND für den Kabelbetrieb, oder versorge den Slave für den Funkbetrieb einfach mit Strom.
  4. Öffne in der Weboberfläche des Masters Geräte → Verbundene Geräte. Neue Slaves erscheinen von selbst (drück Geräte suchen, wenn du noch keinen siehst).
Verbundene Geräte
Verbundene Geräte
  1. Stell für jeden Slave ein: - einen Namen, - den LED-Typ (für ein Panel HUB75), - Daten-Pin und Anzahl LEDs bei Streifen, oder Breite, Höhe und Treiber-Chip bei einem HUB75-Panel,

und drück Konfiguration an das Gerät senden. 6. Öffne Geräte → Segmente und leg ein Segment mit dem Zielgerät Slave an (siehe Effekte, Farben und Segmente).

Ab da erscheint das Segment des Slaves auf der Seite Licht und funktioniert wie jedes andere Segment.

Jede Gerätekarte zeigt außerdem die Software-Version und wann das Gerät zuletzt gesehen wurde, und hat eine Einstellung für die kleine Onboard-LED des Boards (Farbe, Helligkeit). Probleme zeigt das Gerät damit immer an, auch wenn du sie ausschaltest.

Slaves aktuell halten

Unter Einstellungen → System → Firmware der Geräte drückst du Geräte jetzt aktualisieren. Jeder verbundene Slave verbindet sich dann kurz mit deinem WLAN und installiert die neueste Firmware. Siehe Updates, Sicherung und Zurücksetzen.

Slaves in Home Assistant

Home Assistant zeigt für jeden Slave, ob er verbunden ist und welche Firmware er hat; siehe Home Assistant und MQTT.

Tipps

  • Ein Netzteil pro Streifen oder Panel. Verbinde immer die Massen zusammengehöriger Netzteile.
  • Bei vielen LEDs pro Board denk an den Strom: Jeder Slave hat seine eigene Grenze, siehe Erstes Licht. Laufen die LEDs eines Slaves aus dem Netzteil des Masters, schalte im Segment Zieht Strom von diesem Gerät ein.
  • Slaves mit älterer Firmware funktionieren weiter. Sie bekommen vom Master Pixel für das, was sie selbst nicht können.
  • Plugin-Skripte (Lua) laufen auch auf einem Slave, mit Slave-Firmware 0.3.000 und neuer (0.3.001 für Plugins mit vielen Einstellungen, wie die Klipper-Statusanzeige); siehe Plugins.

Nächster Schritt

Taster und Schalter

Das Wiki auf GitHub