This entry is a summary of what I built for my dad's 50th birthday, in 2017.
The plan was to get a vintage TV to play some shows from the 70s-80s, and operation should be seamless.
The sacrificial lamb, found in the flea market:
With the lid off
The attack plan:
Getting the raspberry pi to output video to the TV
Because the raspberry only outputs composite video, I needed a 'composite RF modulator' that'd convert the signal to a format that this TV can display.
These modulators output different channels at different frequencies.
These frequencies are what you 'tune' to by rotating the tuner's knob (learn more about tuners here). I left the tv tuner in a fixed channel, the same as what the modulator outputs.
Let there be video!
With the Pi's output being displayed on the TV the next step was to get back the
functionality of being able to rotate the knob to change channels.
I did this with software-based channels, controlled by a multi-polar rotary switch.
Switch connected to GPIO
Powering the pi and modulator inside the TV
The raspberry pi needs a 5v power source, and the RF modulator needed 9v.
I found a 12v rail and mounted an LM7809 and LM7805 to obtain the needed voltages inside the TV.
LM7809 and LM7805 placed using part of the TV as a heatsink
Initially, the idea was to have a large set of shows/chapters (and advertisements) per channel, and pick from them randomly.
I had just recently started to get familiar with
gstreamer and could not get
my player to continuously play seamlessly -- either changing pads or containers
or something else would always make it get stuck after a while.
I opted to go with a massive hack: each channel is a single 8-hours long video, with the advertisements baked in.
On poweroff, the timestamp of the nearest keyframe is saved and on power-on, playback resumes from there.
When a video reaches the end of playback, it will start again from the beginning.
The code can be found here, but be warned, it is very bad.
First time I got it working -- the black spots are an artifact my phone's recording..
I also made a fake parcel-tracking website that'd display the status of the package.