Angry robot logo

Mumbling about computers

Revamping an old tv as a gift

Posted on under [ ]

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:

The tiny sticker says "It works"

With the lid off

The tuner

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!

Software-based channels

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..

Final version


I also made a fake parcel-tracking website that'd display the status of the package.


This guy made me think about this in the first place. Our approaches are quite different, as I wanted to have the TV be 'stand alone'.