kk logo

Ob beim Krippenspiel, einer Schulaufführung, einem kleinen Bandauftritt oder beim Kinderferienprogramm: Oft sind es nur wenige Scheinwerfer, aber stimmiges Licht hebt die gesamte Veranstaltung sofort auf ein anderes Niveau. Das Problem dabei ist meistens die Steuerung. Herkömmliche analoge DMX-Pulte sind in der Handhabung mühsam, und das Programmieren wird zum Geduldsspiel, wenn man es nicht jede Woche macht. Professionelle Softwarelösungen sind dagegen oft überladen, teuer und erfordern viel Einarbeitung.

Ziel dieses Projekts war ein minimalistisches, digitales Lichtpult: Direkte Fader zum Einstellen ohne Adressrechnerei, freie Beschriftung und Farbcodierung der Kanäle sowie das einfache Speichern und Überblenden von Lichtszenen.

Eigenbau DMX Pult mit Python und QtQuick programmieren 1

Technische Funktionsweise

Die Software basiert auf Python (PySide6) für das Backend und QML (QtQuick) für die grafische Benutzeroberfläche:

  • Signalverarbeitung und Datenhaltung: Das Python-Backend verwaltet alle 512 DMX-Kanäle in einem statischen Byte-Array. Beim Bankwechsel oder Faden werden nur Signale für die gerade sichtbaren 8 Fader an die Oberfläche gesendet, was die Prozessorlast minimal hält.
  • Protokoll und Timing: Ein QTimer sendet das DMX-Signal mit ca. 30 Hz über die serielle Schnittstelle. Das Paket besteht aus einem 518-Byte-Frame nach dem Standard-FTDI-Protokoll (Header, Startcode, 512 Datenbytes und Footer).
  • Hardware-Anbindung: Die Ausgabe ist aktuell auf das EUROLITE USB-DMX512 PRO Kabel-Interface ausgelegt, da dieses die feste Baudrate von 250.000 Baud und das geforderte Rahmenformat nativ unterstützt.
  • Szenen- und Workspace-Verwaltung: Beim Programmstart ist das System komplett leer (alle Werte auf 0). Szenen, Faderfarben, Beschriftungen und eigene Farbpaletten werden erst aktiv, wenn eine Workspace-Datei im JSON-Format geladen oder explizit gespeichert wird.

Die Benutzeroberfläche

1. Die Fader-Ansicht (Standardansicht)

Im regulären Betrieb siehst du acht Fader-Züge im analogen Pult-Design. Jeder Fader lässt sich durch Antippen auswählen, ohne dass der Wert versehentlich verstellt wird. Über die Bankauswahl oben (64 Bänke für insgesamt 512 Kanäle) navigierst du durch das DMX-Universum. Unter jedem Regler befindet sich ein schwarzes Textfeld für eine individuelle Beschriftung, und auf der rechten Seite kannst du dem Kanal eine Erkennungsfarbe zuweisen.

Eigenbau DMX Pult mit Python und QtQuick programmieren 2

3. Der Theatermodus

Für den Live-Einsatz dient der Theater-Tab. Rechts wählst du die gewünschte Ziel-Szene samt Namen aus. Links siehst du den aktuellen Live-Zustand. Über den Fader „AUTO FADE“ stellst du eine Übergangszeit in Sekunden ein und drückst auf „GO“ das Pult blendet die Scheinwerfer automatisch weich in das neue Bild über. Für Notfälle steht links unten ein sofortiger „BLACKOUT“-Schalter bereit.

Eigenbau DMX Pult mit Python und QtQuick programmieren 3

Ausblick und geplante Funktionen

  • COM-Port-Auswahl: Auswahl der seriellen Schnittstelle direkt in den Einstellungen der Oberfläche oder automatische Erkennung des USB-Interfaces.
  • Automatischer Szenenablauf (Chaser): Zeitgesteuertes, automatisiertes Durchlaufen von gespeicherten Szenen für Hintergrundbeleuchtung oder Partymodi.
  • Moving-Head-Integration: Vordefinierte Kurven und Bewegungsformen (Kreis, Acht, Welle), die Standard-Scheinwerfer einfach abfahren können, ohne Kanäle einzeln programmieren zu müssen.

Eigenbau DMX Pult mit Python und QtQuick programmieren 4

 

Installation und Inbetriebnahme

Download DMX Mischpult .zip

Bevor das Pult genutzt werden kann, sind einige wenige Vorbereitungen auf dem Rechner nötig:

  • Zusätzliche Software und Bibliotheken:
    Voraussetzung ist eine installierte Python-Umgebung (Version 3.10 oder neuer). Über die Eingabeaufforderung müssen zusätzlich die beiden benötigten Pakete mit folgendem Befehl installiert werden:
    pip install PySide6 pyserial
    PySide6 liefert die grafische Oberfläche samt QtQuick-Engine, während pyserial die Kommunikation mit dem USB-DMX-Interface übernimmt.
  • Warnhinweis beim Download:
    Da es sich bei dem Quellcode um reine Python-Skripte (.py) handelt, schlagen moderne Browser oder Virenscanner beim Herunterladen mitunter Alarm. Diese Dateien können geblockt oder als potenzielles Risiko eingestuft werden, da es sich um ausführbaren Code handelt. Die Warnung kann in diesem Fall bedenkenlos bestätigt und der Download zugelassen werden.
  • Start per Batch-Datei (.bat):
    Um das Pult nicht jedes Mal über das Terminal aufrufen zu müssen, empfiehlt sich eine einfache Batch-Datei (z. B. start_dmx.bat) im selben Ordner. Diese startet das Skript per Doppelklick und hält das Konsolenfenster im Hintergrund offen, sodass Verbindungsmeldungen oder Statusfehler sofort sichtbar bleiben. Ein einfacher Inhalt dafür sieht so aus:

    @echo off
    cd /d "%~dp0"
    python main.py
    pause
    

Ronnie

schwäbischer tüftler und bastler, kraftsportler, neurodivers, 45 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

1.2 ronnie berzins

logickiste

Blockly für Arduino: Grafische Programmierung als echtes C++ Werkzeug
für deine eigenen, kreativen Projekte und Ideen auf hohem Niveau.

https://www.logickiste.de/

blockly for arduino