Hyperion: Hype for my TV

Hyperion: Hype for my TV

I love lights! I love them so much that I wanted to add some more to my brand new TV. Why? My eyes often had a hard time focusing and adjusting to the high brightness of the display and the dim room light was distracting. So surely I will be able to find a cheap and easy solution for it?

A quick search on Digitec reveals that lights are pretty expensive. For example, this 3.8m LED strip is almost 90 CHF and requires me to mount a camera on top of my TV?

Govee DreamView T1 TV-Light Strips, 55"-65"

If I wanted to use solutions like these to fill out my room and the back of my TV, the total cost would be >120CHF.

Even worse; almost all of these products use proprietary hardware and software. They often require a Cloud account and presumably send data to the manufacturer (surely in a safe manner 😄?).

So I started searching for alternative options and possibly any open source project that would do the same.

Hyperion Project

So after searching on Google & Reddit, I came across Hyperion. It is an Open Source project that supports a wide variety of lights - including one of my favorite LED controllers (that is also open source!): WLED. With WLED, I can control almost any popular addressable LED strip and can tailor them much better to the room size. Hyperion takes a screen capture and transforms it into commands for the lights so they react to what's happening on the screen.

There isn't much documentation about Hyperion, but luckily I was able to find most of the information I needed from the mostly German speaking forum. Hyperion can use multiple different sources for the image - mainly USB Capture, Screen capture (of the same device) and remote protocols (that stream the image bitmap over network). Since I'm using a Chromecast on my TV, I first thought about streaming the image from it using an app - in fact, there is an official Android App that is compatible with Android TV (aka. Chromecast).

So I set up Hyperion inside a Docker Container, installed the Android app on my TV and configured my lights. It works flawlessly out of the box when I'm in the Chromecast Start Menu, but as soon as I try to play and videos (eg. Youtube, Twitch, ...) the lights start to flicker furiously. It turns out that streaming DRM protected content is not possible and will cause your lights to go wild. So I had to come up with Plan B...

Overengineering my ambientlights

Remember that Hyperion also supports USB Input? So after much struggle with DRM and playback issues, I decided to build a DIY alternative.

So the most often used workaround in the Hyperion Forum is using a splitter, which clones the signal to a second output device - in this case a USB capture card. Using this, it is possible to stream 4K content with DRM while copying the output signal to a second device that "records" it. Once I settled for this solution, I went onto AliExpress and bought another of these cheap USB capture cards:

These only support low resolutions and low framerates - but this doesn't matter as we should be able to interpret the primary colors from the image also with a much lower resolution like 720@15fps. One nice feature of HDMI matrix splitter is, that they often come with a few DIP switches called "EDID". This enables you to force a specific resolution, framerate & protocols (eg. audio), so TV doesn't switch to the lower end device specifications (in this case the USB capture card). The matrix that I bought (for 36$) on AliExpress is no longer available:

kebidu 4x2 Matrix Switch Splitter with SPDIF and L/R 3.5mm HDR HDMI-compatible Switch 4x2 Support HDCP 2.2 ARC 3D 4K@60Hzkebidu 4x2 Matrix Switch Splitter with SPDIF and L/R 3.5mm HDR HDMI-compatible Switch 4x2 Support HDCP 2.2 ARC 3D 4K@60Hz

Using this, I can connect up to 4 input devices (eg. my Chromecast) and connect the TV at output 1 and the USB capture card at output 2. The complete setup on a logic level looks like this:

Diagram of the components and their connections

In practice, the main part of the setup looks like this:

HDMI Matrix glued to the top and Orange Pi 5 glued to the side

Using the Home Assistant Hyperion integration, I can even control whether Hyperion should be controling my lights from the USB capture or not:

Conclusion

I'm very happy how this turned out. The lights make watching Anime or Movies much more entertaining and it works with any DRM protected content. The Hyperion developers have created a great product and I absolutely love the result.

0:00
/0:03

The total cost for the project is close to commercial solutions, but does offer more flexibility. Hyperion simply offers more customization than most systems out there and I have the option to add more lights later on if I want to.