Build network controlled tally lights for live cameras, intended for control by OBS but extensible enough to use for whatever you like.

Similar projects worth following
A network controlled tally light to indicate which cameras or video sources are live or being previewed. Rather than having the lights hit a web gateway hosted by OBS (or a similar production suite), this reaches out directly to the tally lights and controls them over HTTP. This does not use the OBS websocket plugin and there is no need to open up any firewall holes to your OBS production box - instead the script pushes out commands directly to your lights.

TallyOBS is built for the Raspberry Pi or the ESP32-S2 and a variety of LED breakout boards, including the Pimoroni Blinkt! as well as the the NeoPixel platform.

TallyPi, the Raspberry Pi version of the lights, also supports hardware buttons/switches to shutdown the Pi and wake it back up.

There is also an enclosure supplied that can be 3D printed. It's primitive, but it works as a light diffuser and includes a mount for a camera flash bracket.

A web service is provided to expose LED breakout boards through an HTTP interface. This controls color and brightness, and will monitor the on/off switch (if available) to shut down the light in an orderly fashion.

An HTTP interface is provided that allows for color control and brightness to be specified remotely. As an example:

Would set all LEDs to be purple at 30% brightness.

The status of the LED panel is available as:

If you would like to tweak an individual light, an HTML dashboard for controlling colors and brightness is available at:

Details on installing the software, as well as protecting your Pi for repeated use, is available within the GitHub repo.

An OBS script to control the lights over this HTTP interface is available with the TallyOBS plugin project.

View all 6 components

  • Now Supports CircuitPython!

    DeckerEgo03/30/2022 at 01:49 0 comments

    This humble tally light project has now broken into three! Now that we support both CircuitPython and the ESP32-S2 as well as the Raspberry Pi platform, the project now has three parts:

    1. TallyOBS, the OBS script which can talk to both the ESP32-S2 and the Raspberry Pi remote lights
    2. TallyPi, the Raspberry Pi version of the remote-controlled LED tally lights
    3. TallyCircuitPy, the ESP32-S2 version powered by CircuitPython

    The TallyOBS project can power either type of tally light, but the tally lights themselves can be operated independently. Since both types of lights have the same API, both platforms can be used if you want!

    Also you don't need OBS to use the lights - they respond using the HTML dashboard, curl, or any method you like to send HTTP commands. If you have the hardware on hand, you can easily build out either platform quickly!

  • NeoPixel & Blinkt! pHat Support

    DeckerEgo07/07/2021 at 02:42 0 comments

    TallyPi has just moved to Python 3, and with it gained support for two new LED platforms: NeoPixel and Blinkt! pHat.

    The NeoPixel platform should be widely available and well-known. In particular I have validated the 5x10 PixelLeaf RGB Matrix for use with TallyPi, using the Adafruit Blinka libraries. The LEDs are incredibly bright, even without level shifting.

    Pimoroni's Blinkt! pHat doesn't have nearly as many LEDs as the PixelLeaf or the now discontinued Unicorn pHat, however installation is incredibly simple. No soldering required, and the LEDs are bright enough for most indoor conditions.

    An improved HTML dashboard, much faster Python OBS script, and documentation fixes are also about to be released with version 0.5.

  • Python Supported (Again)

    DeckerEgo06/28/2021 at 02:44 0 comments

    Now that Python support for MacOS has returned in OBS 27, Python is now re-established as the default script type for TallyPi. The Lua script will continue to be supported - so both are viable options.

    Bear in mind the Lua script actually just turns around and calls curl... so it's not a portable option. The Python script is self-contained and uses the default Python HTTP libraries.

  • Adding HTML Dashboard Support

    DeckerEgo05/09/2021 at 23:01 0 comments

    Having HTTP-controlled lights are great, but finding a headless Raspberry Pi on your network can be a pain if your gateway doesn't support proxied DNS resolution based on DHCP hostnames. Even if you grant your Pi a name like "tallypi01," it may not resolve that as a hostname on your network.

    To help roll with that, TallyPi's HTTP server now supports Cross-Origin Resource Sharing, so you can execute JavaScript within your browser of choice to quickly crawl your subnet and find each light's current status. And example ships within scripts/dashboard.html - demonstrating how an HTML page served locally can find lights on your network.

View all 4 project logs

View all 4 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates