Bring Back '80s Nostalgia with This Realistic Broadcast TV Channel Simulator
Shane Mason's FieldStation42 is a recreation of how TV used to be — aerial antennas, live programming, and extremely tactile controls.
Where it all started
When Shane Mason was growing up in the late '70s and early '80s, he lived in areas of the US that only had access to a select few channels that were all delivered via an aerial antenna. This meant picking up channels from a different station might involve rotating a dial, watching the antenna spin, and then waiting for the TV to pass from fuzzy images through screens of static until it landed on a hopefully now-clearer screen. His latest project, named FieldStation42, is a throwback to this era of analog TV.
Building a catalog of shows
In order to recreate the feeling of a continuous stream of ever-changing content across stations, Mason first had to build out a content library. For this, he gathered many hours of shows and movies across a variety of genres and stored them on an SD card — all organized by the originating station. Each piece of content was also tagged with its genre according to the containing folder and a list of metadata held the starting timestamp along with the duration.
Videos are played via the MPV command line-based video player utility on a Raspberry Pi 5 due to its support for GPU accelerated decoding and ease of integration with a Python script. Best of all, MPV's support for filters allows for effects such as screen tearing and static to be applied when the channel is switched.
So many channels
Unlike the modern era where we have access to streaming libraries full of nearly unlimited content available in just a few clicks, programming was far more real-time several decades ago. Each station/channel had predetermined slots and a roster of shows that were event printed in the paper, so if you wanted to watch something specific, some planning may have been required ahead of time. In Mason's Python-based application, there is a schedule builder that takes into account the time of day, day of the year, and the length of the content to show something plausible. For example, soap operas will appear in the middle of the day whereas primetime shows and late-night comedy will be played in the evening.
TV shows are created with the intention of placing commercial breaks both within the show itself and in between them, which meant that Mason's scheduler would need to accommodate this functionality to keep with the "natural" flow of programming. Whenever it notices a show is ending before an hour or half-hour boundary, the application inserts a short commercial break.
Changing the channel
For the houses that needed a larger aerial antenna, motors were often connected so that they could orient towards the broadcasting station and receive a better signal. And after finding a control knob for one of these setups, Mason added a Raspberry Pi Pico to read the signal off internal contacts and detect when the dial is turned. When this happens, the attached OLED screen and RGB LED strip display the command being executed before it's sent to the awaiting Raspberry Pi 5.
For more information about how Mason built this ode to the past, you can watch his build log video here on YouTube or get the schematic and code here on GitHub.