shane-mason / FieldStation42

Broadcast TV simulator
Mozilla Public License 2.0
91 stars 7 forks source link

FieldStation42

Broadcast TV simulator intended to provide an authentic experience of watching OTA television with the following goals:

An older TV with an antenna rotator box in the backgroun

Features

Alpha software - installation is not simple

This is a brand new project and in active development - installation requires some background in the following:

Installation & Setup

For a complete, step-by-step guide to setting up and administering FieldStation42 software, check out the FieldStation42 Guide

Quickstart Setup

The quickstart above is only designed to provide an overview of the required step - use the FieldStation42 Guide for more detailed description of the steps.

How It Works

FieldStation42 has multiple components that work together to recreate that old-school TV nostalgia.

station_42.py

This script is used to perform 2 primary tasks: build the catalog from disk (only needs to happen when content changes) and building weekly schedules. If no catalog exists, it will create one otherwise, it will just create weekly schedules for all configured channels. If a catalog exists, but you want to overwrite it (like when the channel content has been updated) use the --rebuild_catalog command line switch. Run this weekly via a cron job to create new schedules.

ux.py

This script is used to view schedules for networks - it can act as a guide of sorts.

field_player.py

This is the main TV interface. On startup, it will read the weekly schedule and open the correct video file and skip to the correct position. It will re-perform this step each time the channel is changed for the new.

command_input.py

This is an optional component, use this to connect an external device (Raspberry Pico) to invoke a channel change. The following command will cause a channel change:

echo anything > runtime/channel.socket

aerial_listener.py

This is another optional component that is used with CircuitPython on a Raspberry Pico (or similar)

Connecting to Rasberry Pico (Optional)

If you don't want a remote button changer, like the antenna rotator box from the video, you don't need to follow this section. You can change the channel using the process above.

Using hotstart.sh

This file is for use on a running system that has been configured and testing, because it swallows output so you'll never know what's going wrong. This file is intended to be used to start the player running on system boot up.

Fritzing diagram for the system

Raspberry Pico Setup

This is only required if you are building the channel change detector component (not required).

The fritzing diagram shows how to connect the components together to enable channel changes.