Backup RFP Infinity controller state before Resolume changes
This commit is contained in:
95
docs/rfp-infinity-controller-plan.md
Normal file
95
docs/rfp-infinity-controller-plan.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# Infinity Controller auf WLED-MM-Basis
|
||||
|
||||
## Zielbild
|
||||
|
||||
Die Installation wird als dedizierter Master-ESP plus sechs WLED-MM Nodes betrieben. Die sechs Nodes rendern lokal auf je drei Ausgaengen mit je 106 LEDs. Der Master empfaengt Web-UI und DMX/grandMA-Steuerung und verteilt nur synchronisierte Szenenparameter, keine laufenden Pixelstreams.
|
||||
|
||||
## Bestehende Basis
|
||||
|
||||
- Node-Firmware-Target: `rfp_esp32s3_wroom1_n16r8_3x106`
|
||||
- Node-Ausgaenge: `GPIO4`, `GPIO5`, `GPIO6`
|
||||
- Pixel pro Ausgang: `106`, `106`, `106`
|
||||
- Logische Node-Segmente: `top = 0-105`, `middle = 106-211`, `bottom = 212-317`
|
||||
- DDP bleibt Debug/Fallback und wird nicht als Show-Sync verwendet.
|
||||
|
||||
## Implementierungsplan
|
||||
|
||||
- Node-Target beibehalten und um Infinity-Node-Rolle erweitern.
|
||||
- Neues Master-Target `rfp_esp32s3_wroom1_n16r8_master` anlegen.
|
||||
- Master-IP-Default als `192.168.178.10` dokumentieren und im Infinity-Modul verwenden.
|
||||
- Node-IP-Defaults als `192.168.178.11` bis `192.168.178.16` verwenden.
|
||||
- Physische DMX-Eingabe am Master ueber `WLED_ENABLE_DMX_INPUT` aktivieren.
|
||||
- DMX-Defaultpins: `RX=16`, `TX=17`, `EN=18`, `UART=2`.
|
||||
- Eigenes UDP-Protokoll `Infinity Sync v1` getrennt von WLED-Notifier und DDP implementieren.
|
||||
- Web-UI unter `/infinity` und JSON API unter `/json/infinity` bereitstellen.
|
||||
- DMX-Modus `DMX_MODE_INFINITY` mit 32 Kanaelen einbauen.
|
||||
|
||||
## Sync-Modell
|
||||
|
||||
Der Master sendet `ClockSync`, `SceneState` und `BeatTrigger` per UDP-Unicast. Nodes senden `NodeStatus` zurueck. Nodes rendern lokal gegen `master_time_us`, dadurch bestimmt nicht die Paketankunft den sichtbaren Frame.
|
||||
|
||||
SceneState enthaelt:
|
||||
|
||||
- Effekt-ID
|
||||
- Preset-ID
|
||||
- Brightness
|
||||
- Speed
|
||||
- Intensity
|
||||
- Palette
|
||||
- Primaer-/Sekundaer-/Tertiaerfarbe
|
||||
- Group-Mask
|
||||
- Direction
|
||||
- Seed
|
||||
- Phase
|
||||
- Transition
|
||||
- `apply_at_us`
|
||||
|
||||
## DMX/grandMA Personality v1
|
||||
|
||||
| Kanal | Funktion |
|
||||
| ---: | --- |
|
||||
| 1 | Dimmer |
|
||||
| 2 | Enable / Blackout |
|
||||
| 3 | Preset |
|
||||
| 4 | Effect |
|
||||
| 5 | Speed |
|
||||
| 6 | Intensity |
|
||||
| 7 | Palette |
|
||||
| 8 | Hue |
|
||||
| 9 | Saturation |
|
||||
| 10 | Value |
|
||||
| 11 | Direction / Flags |
|
||||
| 12 | Transition |
|
||||
| 13 | Group Mask |
|
||||
| 14 | Top Dimmer |
|
||||
| 15 | Middle Dimmer |
|
||||
| 16 | Bottom Dimmer |
|
||||
| 17 | Beat Trigger |
|
||||
| 18 | Sync Reset |
|
||||
| 19 | Custom 1 |
|
||||
| 20 | Custom 2 |
|
||||
| 21 | Custom 3 |
|
||||
| 22 | Seed |
|
||||
| 23 | Reserved |
|
||||
| 24 | Safety / Fade |
|
||||
| 25-32 | Reserved |
|
||||
|
||||
## Testplan
|
||||
|
||||
- Node-Target bauen.
|
||||
- Master-Target bauen.
|
||||
- Fresh-Config: drei Busse mit je 106 LEDs pruefen.
|
||||
- Segment-Test: Top, Middle, Bottom einzeln blinken lassen.
|
||||
- Sync-Test: zwei Nodes, danach sechs Nodes mit gleichem `apply_at_us`.
|
||||
- DMX-Test: physisches DMX steuert Master-State und Nodes folgen ohne DDP.
|
||||
- Reconnect-Test: Node rebootet und uebernimmt aktuellen SceneState.
|
||||
- Failsafe-Test: Master weg, DMX weg, Netzwerk weg, Paketverlust.
|
||||
- Show-Test: mindestens 8 Stunden Dauerbetrieb.
|
||||
|
||||
## Annahmen
|
||||
|
||||
- Ein siebter ESP32-S3 wird als Master verwendet.
|
||||
- Node-Reihenfolge bleibt `node-01` bis `node-06`.
|
||||
- Node-IPs bleiben `.11` bis `.16` im Netz `192.168.178.0/24`.
|
||||
- LED-Reihenfolge bleibt `top/GPIO4`, `middle/GPIO5`, `bottom/GPIO6`.
|
||||
- Lokale bestehende Aenderungen im WLED-MM-Repo werden nicht zurueckgesetzt.
|
||||
Reference in New Issue
Block a user