1. Beschreibung¶
CameraTally ist ein drahtloses Tally-System für mobile Videoproduktionen, Live-Events, Streaming-Setups und kleine bis mittlere Regien. Es zeigt Kameraleuten, Moderatoren oder Technikern an, welche Kamera gerade auf Programm liegt, welche Kamera im Preview vorbereitet ist und ob die Verbindung zum Sender zuverlässig funktioniert.
Das System besteht aus einem zentralen TX-Modul und mehreren RX-Modulen. Das TX-Modul sammelt Tally-Informationen aus digitalen Eingängen, vMix, ATEM, TSL 5.0 oder einer HTTP/Companion-API. Aus diesen Informationen erzeugt es eine sehr kleine binäre 16-Kamera-Matrix (9 Byte).
Diese Matrix wird über BLE Long Range/Coded PHY und/oder WiFi UDP Broadcast oder zusätzlich noch via Cloud-MQTT an alle Empfänger verteilt. Die RX-Module werten aus dem Matrix Paket dann nur die eigene Tally-Nummer aus. Für den Betrieb mit MQTT muss das Netzwerk Internetzugriff haben.
2. Geräte im System¶
2.1 TX-Modul\

Das TX-Modul ist die zentrale Einheit. Es entscheidet, welche Kameras rot, grün oder aus sind, und sendet die resultierende Matrix an alle Empfänger.
-
Das zentrale TX-Gerät ist ein Waveshare ESP32-S3-POE-ETH-8DI-8DO
-
Digital Inputs: Physische Eingänge am TX-Gerät. Aktuell treiben die vorhandenen Digital Inputs T1 bis T8 direkt; die 16er Matrix ist bereits vorbereitet und wird von vMix, ATEM und API vollständig genutzt. Dieser Mode wird bei Mischern verwendet, welche über einen High/Low D-Sub-Tally-Ausgang verfügen.
-
vMix: Netzwerk-Anbindung über die vMix TCP API. Das TX-Modul liest Program- und Preview-Zustände und ordnet sie über das T1-T16-Mapping den Tally-Ausgängen zu.
-
BM ATEM: Netzwerk-Anbindung über das Standard-ATEM-Protokoll für Program und Preview.
-
Companion/API: Netzwerk-Anbindung, leichte HTTP-GET-Schnittstelle. Bitfocus Companion, Browser, Stream Decks oder Skripte können Program-, Preview- und Sonderbefehle setzen.
-
TSL 5.0
-
Testmodi: All blink und Chase-Mode erlauben einen schnellen Funktionstest ohne externe Regie.
Das TX-Gerät verfügt über eine Statusanzeige, welcher den Mode und den aktiven Status anzeigt.
Zwei Hardware Schalter auf dem Gehäuse wählen zwischen:
-
Digital-Inputs oder Netzwerkmode. Digital IO1 am TX-Modul wählt weiterhin den Grundmodus beim Start: offen bedeutet Digital Mode, gegen GND bedeutet Network Mode.
-
Sendemodus BLE oder BLE-WiFi (einige Produktionsformate erlauben keine WiFi Accesspoints) GPIO48 wählt den lokalen Transport: offen/HIGH bedeutet BLE + WiFi UDP, gegen GND bedeutet BLE only.
MQTT ist davon unabhängig als zusätzlicher Internet-Transport zuschaltbar, wobei dafür WiFi aktiviert sein muss, aber nicht der Access Point. Mit MQTT ist der Empfang des Tally Signals Weltweit mit jedem browserbasierten Gerät, ohne Einschränkungen, möglich.

Remote Setup
Das TX WEB Setup verfügt über eine Remote Setup Funktion. Alle im Netzwerk befindlichen Geräte mit der gleichen ID bekommen so eine neue WiFi SSID und das zugehörige Passwort per BLE codiert -übertragen. Somit ist vor Ort das Tally System schnell ins WiFi eingebunden.
Bedient wird das TX-Modul entweder per eigenem Access Point, wenn es sich im Digital Modus befindet oder es ist im Netztwerk entwerder per DHCP oder Statisch eingebunden.

2.2 RX-Modul S3-1.9¶
Das RX-Modul befindet sich an einer Kamera, Anzeige, Moderatorenposition oder externen Tally-Leuchte. Im Webmenü wird die Tally-Nummer T1 bis T16 gewählt. Mehrere Empfänger dürfen dieselbe Tally-Nummer verwenden, zum Beispiel für Front-Tally, Back-Tally und ein Moderatorenpult.
Das Display kann Time, Off oder Camera anzeigen. Im Zeitmodus läuft bei Program-Tally eine Sekundenuhr. Beim Wegschalten bleibt die letzte Zeit stehen.


Der kurze Touch auf das Display des RX-Moduls von etwa 1,5 Sekunden wechselt zwischen den Anzeigemodi. Ist kein Kamera-Label gesetzt oder steht es auf 0, wird der Camera-Modus übersprungen. Ein Touch von etwa 10 Sekunden startet oder beendet das lokale Setup-WiFi des RX-Moduls. Das Setup des RX-Moduls ist dann über die SSID cameratally zu erreichen. Dort werden Betriebs Modi eingestellt. Es gibt einen ausführlicheren Teil im Manual der das beschreibt.


Die RX-Module können zusätzlich zur Tally Funktion noch kleine Infos anzeigen, z.B. Hinweise wie 1 Minute, 5 Minuten oder 10 Minuten, einen Countdown anzeigen, z.B. 10 Sekunden oder STOP,\
END-SPEECH, CONTINUE, oder einen lokalen Custom-Text, welcher im RX-Modul gespeichert werden kann. Bedient wird dieses durch eine Webseite im lokalen Netzwerk.


2.3 Supervisor-Modul¶
Das Supervisor-Modul ist eine reine Kontrollanzeige am TX-System. Es ist keiner Kamera zugeordnet und schaltet keine Tally-Ausgänge. Es zeigt die empfangene 16er Matrix als Kacheln T1 bis T16 an und dient damit als echte Kontrolle, ob das TX-Modul sendet und ob ein Empfänger die Daten dekodieren kann.

Der Supervisor bleibt bewusst einfach: Er benötigt keinen MQTT-Empfang, weil das TX-Modul mindestens immer BLE Long Range / Coded PHY sendet. Dadurch sieht man direkt am Sender weiterhin die lokalen Zustände, auch wenn WiFi oder Internet nicht verfügbar sind.
2.4 Web-Tally über MQTT¶
Zusätzlich zu den Hardware-Empfängern gibt es eine Tally-Webanzeige. Diese Seite liegt auf einem Webserver und verbindet sich über Cloud-MQTT WebSocket TLS mit dem Broker. Anwender wählen System-ID und Kamera im Browser; die Webseite zeigt dann dieselbe Tally-Information als grosse rote, grüne oder schwarze Anzeige. Es können beliebig viele Subscriber teilnehmen.
Die Webanzeige ersetzt kein lokales RX-Modul, ist aber eine praktische Ergänzung für Handys, Tablets, entfernte Zuschauer oder Kontrollplätze, die nur Internetzugang benötigen. Dies ist eine reine Subscriber Anwendung. Der Zugang ist via einen Cloudflare Worker abgesichert.
Die Latenz über das Internet ist ca. zwischen 200ms bis 500ms.

3. Transportwege¶
| Transport | Einsatz | Eigenschaften |
|---|---|---|
| BLE Long Range / Coded PHY | Grundkanal und Pflichtkanal | Wird vom TX immer gesendet. Robust, unabhängig von WLAN und Internet. Der Supervisor nutzt diesen Kanal weiterhin als sichere lokale Kontrolle. |
| WiFi UDP Broadcast | Lokales Produktionsnetz | Sendet dasselbe 9-Byte-Paket per UDP Broadcast auf Port 49333. RX-Geräte brauchen keine feste IP, müssen aber im selben lokalen Netz sein. |
| MQTT über HiveMQ | Internet / anderes Netzwerk / Web-Monitor | Optionaler Zusatztransport. Der TX publiziert dasselbe binäre Paket auf ein Topic pro System-ID. RX oder Browser können dieses Topic abonnieren, wenn sie Internetzugang und gültige Zugangsdaten haben. |
Der Standardbetrieb des TX ist BLE + WiFi UDP. MQTT kann zusätzlich eingeschaltet werden, wenn ein Internet-Broker verwendet werden soll. BLE bleibt trotzdem aktiv, damit der Supervisor und lokale BLE-Empfänger weiterhin funktionieren.
4. Setup-Konzept¶
Das lokale RX-Setup ist für Wartung und manuelle Einrichtung gedacht. Es wird per Button oder Touch ein lokaler Webserver im RX-Modul aktiviert. Das Modul ist dann mit jedem Handy, IPad, Laptop über die SSID cameratally ohne Passwort erreichbar. Das Modul hat z.B. vier zusätzliche ROT LED-Ausgänge und zwei zusätzliche Grün LED-Ausgänge, (können separat aktiviert oder deaktiviert werden), das Tally System gewählt werden, (es können 15 Tally Systeme nebeneinander betrieben werden), die Kameranummer gewählt werden, auf die es hören soll, Sendeleistung Betriebsmodi etc.
Dieser lokale Webserver kann über Exit beendet werden oder schaltet sich mit längerem Touch (10s) oder nach 5 Minuten selber ab. Im normalen Betrieb ist es ausgeschaltet.
Remote WiFi Setup erlaubt es, WLAN-Zugangsdaten am Produktionsort zentral gleichzeitig vom TX an alle erreichbaren RX-Module zu verteilen. Der TX sendet dann SSID, Passwort, gewünschten Client-Transport und System-ID über spezielle Setup-Pakete. Die Empfänger zeigen kurz den Empfang an, prüfen kurz die WLAN-Erreichbarkeit und speichern die Daten. Aus Sicherheitsgründen verwendet das TX Modul dafür ein spezielles Matrix Format.
5. Companion/API und Sonderfunktionen¶
Die Companion/API-Schnittstelle nimmt einfache HTTP-GET-Befehle entgegen. Befehle sind Live-Befehle und werden nicht als Startkonfiguration gespeichert. Sie eignen sich für Program/Preview-Tally und für Moderator-Cues.
| Beispiel | Wirkung |
|---|---|
| /api/tally?pgm=1 | T1 auf Program setzen. |
| /api/tally?prv=2 | T2 auf Preview setzen. |
| /api/tally?off=all | Alle API-Tally-Zustände ausschalten. |
| /api/cue?camera=3&type=countdown&value=10 | 10-Sekunden-Countdown an T3 senden. |
| /api/cue?camera=all&type=minute&value=5 | 5-Minuten-Hinweis an alle kompatiblen RX anzeigen. |
| /api/cue?camera=4&type=text&value=end | Text-Cue END SPEECH an T4 senden. |
Text-Cues wie STOP, END SPEECH, CONTINUE und Custom Text werden nur als Code übertragen. Der eigentliche Custom Text liegt lokal im RX-Modul.
6. Mehrere Systeme nebeneinander¶
Mehrere CameraTally-Systeme können parallel laufen, wenn jedes System eine eigene System-ID von 1 bis 15 verwendet. RX, Supervisor und Web-Monitor werten nur Pakete mit der passenden System-ID aus. Der UDP-Port darf gleichbleiben, weil die Trennung im Paket selbst erfolgt. Auch MQTT nutzt die System-ID im Topic.
| System | System-ID | Topic / Verhalten |
|---|---|---|
| System A | 1 | cameratally/system/1/matrix; RX mit ID 1 akzeptieren diese Pakete. |
| System B | 2 | cameratally/system/2/matrix; RX mit ID 1 ignorieren diese Pakete. |
7. Zusammenfassung¶
CameraTally verbindet einfache Bedienung mit einer sehr kompakten und robusten Übertragung. Das TX-Modul sammelt Tally-Informationen aus Digital Inputs, vMix, ATEM, TSL 5.0 oder Companion/API und erzeugt daraus eine 16-Kamera-Matrix. RX-Module wählen ihre Tally-Nummer T1 bis T16 und zeigen Program, Preview oder Off an.
BLE Long Range / Coded PHY bleibt der sichere lokale Grundkanal und wird vom TX immer gesendet. WiFi UDP ergänzt den lokalen Betrieb im Produktionsnetz. MQTT erweitert das System auf Internet- oder Fremdnetz-Szenarien und ermöglicht zusätzlich eine einfache Browseranzeige auf Handys oder Tablets.