The tally lights are status lights for the cameras that tell the camera operators when their camera is live. In this configuration, red meanns the camera is live blue means the camera is being previewed. This is intended to work with our 24 neopixel strip (with 8 pixels per camera). If the strip is yellow, it means there is a connection issue.
git clone git@github.com:gafirst/TallyLights.git
sudo apt-get install python3-pyaudio
sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel
sudo pip3 install --force-reinstall adafruit-blinka
sudo pip3 install board
Yes, we are deliberately calling pip
as root. This is because root access is required to access the RPi peripherals, so the script will run as root, and it needs to access these modules.
The neopixel strip must be plugged into the control Pi and an external 5V converter. The strip needs to connect to the Pi's GND pin (pin #6) and GPIO18 (pin #12). The diagram below shows what this looks like:
Running the script is simple; however, you must use sudo permissions in order to allow the Pi to control the GPIO.
sudo python3 tally-lights.py
The script connects to vMix via a TCP socket. vMix sends a message any time the output/preview gets updated. The script parses this for the camera statuses and displays it on the appropriate strip.