CRT Broadcast TV System

For this project I turned a 1990s Sylvania CRT television into a working faux cable box driven by a Raspberry Pi. Every channel runs on its own continuous broadcast timeline, so changing the channel drops you in wherever that station would be in real time, just like real TV, complete with a burst of static and a channel-number banner on each switch. I wrote the full software stack in Python, including an mpv-based playback engine that computes each channel’s position from a fixed broadcast epoch, an infrared handler that learns the buttons on a vintage universal remote, and a retro 90s-style on-screen guide channel generated from the real program timelines. Content is managed through a browser-based control panel served over the Pi’s own Wi-Fi network, where channels can be built by uploading your own video files or pulling in YouTube videos by link, and a built-in randomization system can shuffle each channel’s lineup so the programming stays fresh. The Pi feeds the TV over composite video and can read a USB HDMI capture device so an external console automatically takes over the screen. Getting the television's own front-panel buttons to keep working was the hardest part of the build. Every button, channel, volume, and menu alike, shares a single resistor-ladder line on the TV's controller, where each one pulls that same wire to a slightly different voltage, and that line idles well above the Raspberry Pi's 3.3V input limit. To read it safely I built a small resistor and diode circuit that steps the signal down to a Pi-friendly level while drawing almost no current, which mattered because an early voltage divider loaded the line enough that the TV thought a button was stuck and stopped responding to its own remote. Because every button lands on that one wire, the Pi can only sense that a button was pressed and not which one, so I tell a quick channel tap from a held volume press by timing, and I tapped the TV's built-in infrared sensor as the primary input so a remote can drive full channel and menu control. To finish it cleanly I designed and 3D-printed a custom bracket to mount the Pi inside the original chassis and integrated Ethernet, USB, and power into the back panel, so the set looks and behaves like a real television.