"Smart" Retro TV

by irvmol in Circuits > Raspberry Pi

223 Views, 7 Favorites, 0 Comments

"Smart" Retro TV

PXL_20250618_030201274.jpg

Modern IPTV streaming for a small retro CRT TV. In this project, I’ll show you how I used a Raspberry Pi, some Docker containers, and a couple other components to stream live channels and Plex content from the 1980s–90s era directly to a CRT TV that I picked up from the thrift store — complete with remote control, EPG, and nostalgic "channel surfing" feel.

Supplies

PXL_20250620_020414208.MP~2.jpg
PXL_20250620_021127158.MP.jpg

Raspberry Pi 3 or 4 (with RPi OS installed)

microSD card (16GB+ recommended)

Power supply for Pi

HDMI to RF modulator (to connect Pi to coaxial-only TV)

Coaxial cable + optional PAL to F adapter

USB keyboard/mouse (for setup)

Retro analog TV with antenna/coax input

Network access (Ethernet or Wi-Fi)

Another Linux/PC machine for management (optional)

Optional Services I used:

  1. Plex Media Server (for 1980s-90s content)
  2. dizqueTV (to create virtual live channels)
  3. TVHeadend (IPTV backend)
  4. Kodi (Pi client — optional)
  5. Docker & Docker Compose stack

Prepare the Raspberry Pi

FWR346VMCKVJ0VE.jpg

Flash Raspberry Pi OS using Raspberry Pi Imager

Boot the Pi and run:

sudo apt update && sudo apt install docker docker-compose
sudo usermod -aG docker $USER


Enable SSH and set a static IP if needed

Optionally install kodi if you want a frontend:

sudo apt install kodi


Connect the Pi — SSH and Analog TV Hookup

diagramRetroTV1.png

Before we dive into the Docker setup, you’ll want to get the Raspberry Pi accessible and connected to your retro TV.

Hardware Hookup (Analog TV)

  1. Plug the HDMI cable from your Raspberry Pi into the HDMI-to-RF converter.
  2. Connect a coaxial cable from the converter to the TV’s antenna input.
  3. If your TV uses a screw-on connector and your coax won’t fit, use a PAL-to-F adapter.
  4. Power on your TV and set it to Channel 3 or 4 (whichever your converter is set to).


Connect via SSH

Now access your Pi from another computer so you can control it remotely:

On your main PC, open a terminal and run:

ssh pi@<raspberry-pi-ip>


By the end of this step, your Pi is headless and online, your TV is connected and ready, and you're all set to deploy the IPTV system.

Docker

Here is an example docker-compose file. Feel free to tweak this according to your needs, I also use Portainer to monitor my services easier.

services:
tvheadend:
image: ghcr.io/linuxserver/tvheadend
container_name: tvheadend
ports:
- 9981:9981
- 9982:9982
environment:
- PUID=1000
- PGID=1000
- TZ=America/Denver
- TVH_ENABLE_FIRST_USER=true
volumes:
- ./config:/config
- ./recordings:/recordings
restart: unless-stopped

portainer:
image: portainer/portainer-ce
container_name: portainer
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
restart: unless-stopped

dizquetv:
image: vexorian/dizquetv
container_name: dizquetv
ports:
- 8000:8000 # Web UI
- 8004:8004 # M3U IPTV output
volumes:
- ./config/dizquetv:/home/node/app/.dizquetv
restart: unless-stopped

volumes:
portainer_data:


Then start:

docker compose up -d

Build and Link Your Custom Retro Channel

  1. In dizqueTV (http://<your-server-ip>:8000):
  2. Go to Channels → Add Channel, name it (e.g., 80s Hits), assign a number.
  3. Add content from Plex using Auto-Filler or drag-and-drop.
  4. Copy the M3U URL from the M3U tab (e.g., http://<server-ip>:8000/m3u).
  5. In Tvheadend (http://<your-server-ip>:9981):
  6. Go to Configuration → IPTV Inputs → Muxes, click Add.
  7. Paste your dizqueTV M3U URL, set a scan timeout (~15s), and save.
  8. After scanning completes, visit Services, select the new stream, and click Map Services to Channels.
  9. In Kodi (on your Raspberry Pi):
  10. Open Settings → Add-ons → Install from Repository → PVR Clients.
  11. Install Tvheadend HTSP Client.
  12. Configure it:
  13. IP address: your Tvheadend server IP
  14. Port: 9982
  15. Username/password: if set
  16. Enable the add-on and restart Kodi.

✅ Now Kodi will auto-load your Tvheadend channels — including your custom dizqueTV one — every time it boots.

Summary

PXL_20250618_030128050.jpg
diagramretroTV2.png

This project turns a Raspberry Pi into a retro-style IPTV streamer that broadcasts 1980s–1990s TV shows from your Plex server to an old analog TV using RF coax. Here's the flow:

  1. Docker Stack on your main media server runs:
  2. Plex: hosts 80s–90s content.
  3. dizqueTV: creates virtual live TV channels from Plex.
  4. Tvheadend: broadcasts those channels over HTSP.
  5. Kodi on Raspberry Pi receives the stream via HTSP and plays it.
  6. HDMI to RF Converter sends the Kodi video signal into the TV's antenna input, mimicking a real live TV channel.

The result: a seamless live-TV feel on a CRT using modern tech.