Comms

A CRT Television showing a 'Space Disco' program. Next to it is a stack of tiny circuit boards, each with a glowing LED. Underneath the circuit boards are two metal boxes with cables coming out of them, labled 'RF 3-4' and 'RF 1-2'.

(The color distortion in the image is part of the videoexternal link, not a problem with the TV or the transmission.)

Virtual Cable TV Network

Created: 2021-04-11, Last Update: 2026-08-03

(Inspired by this project on redditexternal link.)

TVs in the lab are now connected to the KDTV cable network: six channels of exclusive programming, running 24/7!

Hardware

Each channel is running on a Raspberry Pi 3A+, most with 512GB SD cards. The A/V output from each Pi is run into one of three Channel Plus® video distribution boxes. One distribution box is daisy-chained to the other, and each is assigned to a different set of channels. The resulting signals can be tuned into by any TV with an analog tuner plugged into the last video distribution box. The current channel assignments are 14, 16, 20, 45, 47, and 50. Those channels were originally chosen because they had the least interference from the antenna. The antenna was connected to the input of the first box so that the real over-the-air channels could also be tuned in on TVs that have both analog and digital tuners. However, there was still some noise on all of the analog channels, and I wasn't watching the broadcast channels much. Also, the third distribution box I acquired lacks the input. So the antenna has been disconnected.

New in 2024: Over-The-Air (micro-) Broadcasts

A small CRT Television with antenna extended. It is showing a scene from Star Trek.

By running one of the amplified outputs from the last video distribution box into another amplifier, then an antenna, I have been able to transmit the KDTV channels about 10 feet. This should be a short enough distance not to worry the FCC, and I also only connect the antenna while I'm using the receiving set. All the channels come in except 20. They are all a bit noisy at best, and occasionally some modern appliance interferes. The receiving set here is a 9" from the late 80s. I used it to watch in the kitchen while paint was drying in my room.

Software

A Python script interprets a schedule in a custom language to generate a playlist that is sent to VLC. VLC also superimposes the channel name in the bottom right or left. The schedule is synchronized to the current day and time, with shows running at (almost) consistent times and some programming varying by day of week. Holiday specials are skipped until the appropriate month, and there are also some holiday-specific schedules. The Pi's are running Raspbian in read-only-mode. This allows them to recover from outages, provided the internet is still up for NTP time synchronization. To add new videos or update the schedule, the power is disconnected, and the SD card is moved to my main computer to transfer files. Once powered on again, the Python script determines every video that would have been played since the start date of the schedule up to the current moment and resumes playback there.

A grid showing the programming of TV channels for the next 90 minutes, with a section for previews at the top.

There is a different Python script running on channel 50: it simulates a 90s-style electronic program guide, or EPG. It runs the same scheduling code as the other channels, but does it fives times, one for each of the other channels. Instead of feeding the result to VLC, it displays the information on a scrolling grid.

The Python scripts are viewable hereexternal link, but they're not quite prepared for other people to use yet.

The Channels

The logos were all made by me.

14 - ToonTV

ToonTV logo

Cartoons all day! Showing anime Sunday nights, and Western adult cartoons on Wednesday nights, complete with original Adult Swim bumpers. Other nights show classic animated movies. Cartoon Network Groovies and other animated music videos fill time between shows, along with nostalgic toy, video game, and snack ads.

16 - MSTV 3000

MSTV 3000 logo

Every Mystery Science Theater 3000 episode shuffled through the day, with Rifftrax and Best of The Worst in the evening. MST3K and Rifftrax shorts, and vintage ads referenced on the show, fill time between episodes.

20 - KCM - Kyle's Classic Movies

KCM logo

My entire movie collection, on random rotation. DVD extras and Three Stooges shorts fill out the 3-hour slots.

27 - Mvt - Music Video Television

Mvt logo

Classic music videos around the clock! There are concerts, DJ sets, Trance VHS's, and some musical movies at 10pm. There are music related documentaries at midnight, and also some music related shorts in-between. (The video in the imageexternal link is one of the DJ sets.)

Current blocks:


1980's Music

1990's Music

2000's Music

Disco (mostly Italo)

Heavy Metal

Weird Music*

*Weird Al, The Residents, Devo, Dr. Demento classics, etc.

30 - CuriosiTV

CuriosiTV logo

Documentary, non-fiction, and educational programming. It also hosts a block of early CGI shorts.

45 - Rocket

Rocket Channel logo

A SciFi channel analog. Mainly 80s SciFi shows, and a few other live action shows I've collected. Lots of Star Trek. Twilight Zone marathons every 4th of July. Ads include vintage tech and 80s cheese.

© 2026 Kyle Delaney, except where otherwise noted | Site Map