Hack an Analog TV Into a Geek TV

Salvage obsolete tech with Wi-Fi and a Raspberry Pi Zero

By Stephen CassLike vinyl and cassette tapes, cathode ray tubes are experiencing a comeback in some circles. Retrogamers want to experience old titles on the fuzzy displays they were designed for. And makers have been deconstructing them for all kinds of projects: In January of 2020, we featured a vector graphics clock based on a CRT originally made for an oscilloscope. But oscilloscope CRTs are relatively rare, while old analog television sets can literally be found littering sidewalks. So when I came across a cheap listing on eBay for a portable black-and-white television with a 5-inch-screen that looked in almost mint condition, I thought I’d take on the challenge of tackling this old technology.

Unlike with an oscilloscope CRT, you can’t easily control a television CRT’s electron beam directly. Instead, it’s best to feed in a video signal that the original circuitry can decode. So I decided to make a Geek TV: Instead of broadcast channels, it would display the latest updates and imagery from places like NASA and the European Organization for Nuclear Research (CERN), as well as some animations. And I wanted it to reflect the original TV’s self-contained simplicity: no extra cables or boxes dangling off it and certainly no keyboard, mouse, or extra switches for control.

My “new” TV is a Coby CX-TV1, which has an RCA composite video connector and runs off a DC power supply adapter, both of which suggested I would have good jumping off points in the internal circuitry for hacking.

Once I unscrewed the case and looked at the guts, I was even more encouraged. The internal circuitry is divided into two parts: a main printed circuit board built around a clone of an AN5151 chip, and a secondary PCB mounted at a right angle. The TV’s tuning knob turns the shaft of a variable capacitor on this secondary board.

I had always planned to use this side-mounted knob as my control for selecting “channels,” but initially I thought I would mount it to a rotary encoder to detect movement. But once I saw how the PCBs were arranged, I had one of my rare moments of inspiration. I disconnected the tuner board from the main PCB, and hooked up one of the leads of the variable capacitor to an Adafruit MPR121-based touch sensor.

This capacitive sensor is intended to provide a simple yes/no response to the question of “Is a finger touching a surface or not?” But by looking at raw sensor measurements, I could determine the variable capacitance, and thus the knob’s position. As a bonus, this meant I could leave undisturbed the cute mechanical mechanism that moves a red plastic strip up and down to indicate the channel the TV is tuned to.

I added brains to the TV with a Wi-FI-enabled Raspberry Pi Zero W that I had lurking at the bottom of a drawer. (If I was starting from scratch, I would probably use a Pi 3 or 4 compute module for faster processing, but I was happy to put the Pi Zero to good use.) Every Pi has the ability to generate composite video in NTSC or PAL format. In the Pi Zero’s case, an unpopulated socket provides the signal, so it was a few moments’ work to solder in a header. A little bit more soldering work let me run wires from the header to the back of the TV’s RCA connector. As my TV is black and white, I disabled the composite video’s colorburst signal in the Pi’s configuration file for a slightly sharper image.  [READ MORE]