Broadcast TV simulator intended to provide an authentic experience of watching OTA television with the following goals:
This is a brand new project and in active development - installation requires some background in the following:
For a complete, step-by-step guide to setting up and administering FieldStation42 software, check out the FieldStation42 Guide
confs/examples
into confs/
python3 station_42.py
on the command line
--rebuild_catalog
option if content has changedfield_player.py
on the command linefs42/hot_start.sh
on the command lineThe quickstart above is only designed to provide an overview of the required step - use the FieldStation42 Guide for more detailed description of the steps.
FieldStation42 has multiple components that work together to recreate that old-school TV nostalgia.
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.
This script is used to view schedules for networks - it can act as a guide of sorts.
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.
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
This is another optional component that is used with CircuitPython on a Raspberry Pico (or similar)
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.
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.
This is only required if you are building the channel change detector component (not required).
aerial_listener.py
to code.py
on the device so that it starts at boot.The fritzing diagram shows how to connect the components together to enable channel changes.