The POWERSTALLY is a Tally Light/”ON AIR”/”RECORDING” sign for OBS Studio (fully Plug-and-Play).
During the COVID-19 (Corona) pandemic of 2020 and the associated lockdown, social life largely came to a halt and “social distancing” makes it impossible to hold meetings or events. Creative alternatives are being sought, many activities are moving online. So live video streaming or recording podcast/radio interviews remotely, is more popular than ever.
What is a tally light and why do you need it?
A tally light is a small signal-lamp on cameras or monitors and communicate, for the benefit of those in front of the camera as well as the camera operator, that the camera is live on air and the signal is being used for the main program at that moment.
Putting your old Raspberry Pi to use… or a new one!
The Raspberry Pi is a very cool tiny computer, that has many use cases. If you have an old Raspberry Pi laying around, don't let your old buddy sit forgotten and unused. The older Raspberry Pi models are also powerful enough for this awesome (DIY) project.
OBS Studio Setup
Go to https://obsproject.com/forum/resources/obs-websocket-remote-control-obs-studio-from-websockets.466/ and click on the right side “Go to download”. Scroll to the bottom and download the appropriate package (depending on your operating system).
Install the package (OBS Studio must closed).
Open OBS Studio. Go to Tools and then to “Websockets Server Settings”:
Change the password to 123456 (or a unique password. copy the password in the Python script below)
Make sure the port is 4444
In your scenes, rename all the scenes that you want to illuminate the tally light so that it includes a “+”. That character is the tally light’s signal to turn on. If you want to use a different character or use multiple tally lights with unique characters, just be sure to edit the python code accordingly.
Raspberry Pi Setup
Burn the latest version of Raspbian Buster Lite to a (micro)SD card. I use the Raspberry Pi Imager for macOS to do this.
To enable the SSH access, open the terminal, go to the boot drive on the (micro)SD card and create a empty file called ssh. Don't edit it!
> touch /Volumes/boot/ssh
My Raspberry Pi 1b has no inbuilt wireless card. So I upgraded it with the Edimax EW-7811Un. This little wireless nano USB adapter work out of the box. The only thing you should need to do is create the file with the correct setup.
Create another file called wpa_supplicant.conf and open it with a text editor.> sudo nano /Volumes/boot/wpa_supplicant.conf
Save the following text (note that country=ca is for the USA, use country=de for Germany, etc.) and safe the file (CTRL-X):
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=US network={ ssid="2.4gb-network-name" psk="2.4gb-network-password" } network={ ssid="5gb-network-name" psk="5gb-network-password" }
Insert the (micro)SD card into the Raspberry Pi and power it up.
Connect to it via SSH:
> ssh [email protected]
And change your password… yes, it’s important! ;-)
Update the system:
> sudo apt-get update > sudo apt-get upgrade
Install Python 3, pip, pythonping and multiping:
> sudo apt-get install python3 python3-pip > sudo pip3 install pythonping multiping
Install the following Python 3 modules for the OBS websocket client:
> sudo pip3 install websocket-client obs-websocket-py RPi.GPIO
Create an text file to store the last IP address from OBS Websocket:
> sudo nano /home/pi/obsaddress.log
Now you can enter the OBS Studio PC’s IP address into the text file. It will speed up the search for the first time, but isn’t necessary.
Change obsaddress.log ownership and permissions with:
> sudo chown pi /home/pi/obsaddress.log > chmod 777 /home/pi/obsaddress.log
Create the Python script:
> sudo nano /home/pi/powerstally.py
Copy the code from my repository (https://github.com/andrewbpowers/POWERSTALLY).
Edit the trigger_char variable if you don’t want to use the “+” character as a trigger.
Make sure the password matches what was set in OBS Studio Plugin obs-websocket. And safe the file (CTRL-X).Set the code to execute on boot:
> sudo raspi-config
Got to “Boot Options” -> “Desktop/CLI” -> “Console Autologin” -> “OK” and finish. But don’t reboot yet!
Edit the boot script:
> sudo nano /etc/profile
and add this new line at the very end of the file and safe it (CTRL-X):
sudo python3 /home/pi/powerstally.py
The cheap Edimax WiFi dongle worked pretty fine with the Raspberry Pi. But one problem I found is, that the WiFi connection would drop after a certain amount of inactivity. Time to disabling the WiFi power management permanently.
> sudo nano /etc/modprobe.d/8192cu.conf
Enter this text and safe the file (CTRL-X).
> options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
But this works only with WiFi chipsets from Realtek (in this case a RTL8192CU).
How to check that wireless adapter was recognized and what driver is currently using?
Easy! Type in following command:> lsmod
Reboot the Raspberry Pi
> sudo reboot
Hardware Setup
The status light
Building the circuit for the status LED, is very simple and easy. I use a 2v/20mA yellow LED and a 150 ohms resistor. Note the polarity of the LED. The long lead should be connected with the resistor to pin GPIO4 (pin 7) and the short lead should be connected to ground (GND) on the Raspberry Pi as shown on the diagram below. The status LED is optional, right, but I would recommend it - a very good way to know that the system is booted, connected and active.The Tally Light/“ON AIR”/”RECORDING” sign
To control high voltage/high current with the Raspberry P, I suggest you to pick up a relay module for this purpos, like the Waveshare RPi Relay Board. It will make your job much easier. Relay boards can be high or low active. So please check the specifications of the relay board and modify the powerstally.py python script it if necessary.
CAUTION: Working with 110v/230v AC mains can be very dangerous! Please be extremely careful and take help from an expert.
My DIY “RECORDING” sign
I have been looking for a vintage “ON AIR”/”RECORDING” sign for a very long time. Unfortunately I didn't find one that I liked. Someday I decided to build my own pretty cool old school sign. The POWERTALLY was the perfect opportunity to get started and merge these two projects.
I cut some strips of Multiplex and built a simple wooden box (400mm/15.75” wide, 150mm/5.91” deep and 140mm/5.11” high). I stain it later and make a nice steel frame with a brushed look for the front too.
I add two notches for the power cable. One into the backside and one into the housing bottom. Two small hooks mounted additionally on the back. So wall mount and stand, both possible and allows more flexibility.
I mount the Raspberry Pi, the power supply unit and the relay board on the backside of the case. Give an easy access to all components, as well as to the (micro)SD card, USB-ports and ethernet port of the Raspberry Pi.
I use white spray paint on the backside of the Plexiglass. For the front I use a desktop cutting machines to make self-adhesive letters and stick it on. Next I hit it with red spray paint. After the dry time I carefully peeling the letters and making sure not to peel off the paint as well. I install the yellow signal LED on the left side of the case and right next to it, a vintage style toggle switch. This makes it possible to light up the “RECORDING” sign as an normal lamp too. Pretty convenient!
All in all, I have fun with this project and I’m really happy with the result. The “RECORDING” sign is so nice, that can go pretty much any room.
If you are looking for a unique and retro “ON AIR”/”RECORDING” sign to put in an studio, loft, entertainment center or man-cave, etc., I highly recommend making a cool DIY letter sign too.
Okay, so here are the parts and tools that I used for this project:
Parts:
Raspberry Pi (amazon.com / amazon.co.uk / amazon.de)
microSD card with adapter (amazon.com / amazon.co.uk / amazon.de)
Edimax EW-7811Un WLAN Adapter (amazon.com / amazon.co.uk / amazon.de)
Waveshare RPi Relay Board (amazon.com / amazon.co.uk / amazon.de)
MEAN WELL Power supply unit (amazon.com / amazon.co.uk / amazon.de)
Yellow signal LED (amazon.com / amazon.co.uk / amazon.de)
Resistor, 150 Ohm (amazon.com / amazon.co.uk / amazon.de)
Jumper wires (amazon.com / amazon.co.uk / amazon.de)
Vintage style toggle switch (amazon.com / amazon.co.uk / amazon.de)
Vintage style colored braided fabric cable (amazon.com / amazon.co.uk / amazon.de)
Splicing Wire Connectors (amazon.com / amazon.co.uk / amazon.de)
Stranded Wires (amazon.com / amazon.co.uk / amazon.de)
Triangle ring picture hangers (amazon.com / amazon.co.uk / amazon.de)
Spray paint, matte white (amazon.com / amazon.co.uk / amazon.de)
Spray paint, matte red (amazon.com / amazon.co.uk / amazon.de)
Water based wood stain (amazon.com / amazon.co.uk / amazon.de)
Paint brushes (amazon.com / amazon.co.uk / amazon.de)
Wood glue (amazon.com / amazon.co.uk / amazon.de)
French polish/Shellac (amazon.com / amazon.co.uk / amazon.de)
Candelabra LED light bulbs, E12 (amazon.com / amazon.co.uk / amazon.de)
Lamp holder, E12 (amazon.com / amazon.co.uk / amazon.de)
Rubber feet (amazon.com / amazon.co.uk / amazon.de)
Stainless steel bolts and nuts (amazon.com / amazon.co.uk / amazon.de)
Stainless steel angles
Tools:
Bosch circular saw (amazon.com / amazon.co.uk / amazon.de)
Bosch drill/driver (amazon.com / amazon.co.uk / amazon.de)
Bosch metal drill bit, diameter 6mm (amazon.com / amazon.co.uk / amazon.de)
Bosch metal drill bit, diameter 3mm (amazon.com / amazon.co.uk / amazon.de)
Retractable utility knife (amazon.com / amazon.co.uk / amazon.de)
Wera screwdriver (amazon.com / amazon.co.uk / amazon.de)
Knipex diagonal side cutter (amazon.com / amazon.co.uk / amazon.de)
Wire stripper (amazon.com / amazon.co.uk / amazon.de)
Silhouette cutting machine (amazon.com / amazon.co.uk / amazon.de)
Hot glue gun (amazon.com / amazon.co.uk / amazon.de)
Sandpaper for wood (amazon.com / amazon.co.uk / amazon.de)
Happy building! :-)
Please do not hesitate to contact me or leave a comment for further questions.
If you like my work or the free stuff and want to say thank you, please use this opportunity now and
THANK YOU, very much! 🙏🏻