Before feeds, your town had a channel.
You might know the one if you watched MTV when it first came on cable. A flat blue screen, chunky white text, the time and the temperature in the corner. The Lions Club pancake breakfast. A birthday wish for someone named STEVE. Little League signups at the rec center. Headlines crawling along the bottom while a Muzak version of a song you almost recognized played underneath. No thumbnails, no engagement bar, nobody trying to hold your attention. It just sat there being a channel, and you sat there watching it, waiting for the weather to come back around. Our Sears CRT had the blue bars burnt in.
At some point, the Cable Bulletin Board Channel disappeared from all of our lives. Nobody is talking about it.
Recently, I have been spending evenings learning about retro gaming and reading posts on Reddit saying that you have to game on a CRT for the proper impact. This led me to Facebook Marketplace. After a few weeks at looking at photos of TVs this got me remembering the big honker in our living room… then, I uncovered a repressed memory. I had to have it back in my life. So I built it.
Meet CABLE 82
CABLE 82 is a tiny web app that turns any screen into your own 1982 community bulletin board channel. Ideally that screen is an old 4:3 CRT fed by a Raspberry Pi, sitting in the corner of a room, being ambient.
It scrolls the date and time, your community messages, fun facts, dad jokes, live weather, and headlines from whatever RSS feeds you point it at. There is a crawl along the bottom, a red LATEST flag, and a little station bug in the corner, because of course there is.
You make it yours in a control room in the browser, or by editing one plain config file. It is free and open source and it runs on a Raspberry Pi.
The rest of this post is how to get it going on a Raspberry Pi and a CRT.
Step 1: Get it on the air
SSH into the Pi, or just open a terminal on it, and run:
git clone https://github.com/nothans/cable-82
cd cable-82
node server.js
Open http://localhost:1982 in a browser on the Pi. You’re on the air.
Out of the box it already looks right: the blue screens, the clock, a couple of example bake-sale messages, and real headlines pulled from a few default feeds.
Step 2: Make it your channel
Everything about the channel lives in one place. Open the control room at http://localhost:1982/config and you get the whole thing on one screen: the name, your community messages, which RSS feeds to pull, your town’s weather, the colors, the page lineup. Change something, hit Save, and the channel updates itself within about twenty seconds. Nobody has to touch the TV.
If you would rather edit a file, it all lives in config.json, and you can hand-edit that just as happily. Put your own town in the weather. Drop in the feeds you actually read. Write the messages your household needs to see, which in my house is mostly reminders that trash day is tomorrow.
Step 3: Run it on boot
You do not want to SSH in and start a server every time the power blips. Make it a service so the Pi just comes up broadcasting.
Create /etc/systemd/system/cable82.service:
[Unit]
Description=CABLE 82
After=network-online.target
[Service]
ExecStart=/usr/bin/node /home/pi/cable-82/server.js
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Then turn it on:
sudo systemctl enable --now cable82
Now the channel is always running in the background, whether anything is looking at it or not.
Step 4: Point a browser at it, full screen
Have the Pi launch Chromium in kiosk mode, pointed at the channel:
chromium-browser --kiosk --noerrdialogs --disable-infobars \
--disable-lcd-text \
--autoplay-policy=no-user-gesture-required \
http://localhost:1982
Two of those flags earn their keep. --disable-lcd-text turns off subpixel font smoothing, which otherwise tints the chunky white text a faint pink on some screens. --autoplay-policy=no-user-gesture-required lets the background music start on its own at boot, so nobody has to click anything to get the beautiful-music bed going.
While you are in there, turn off screen blanking so the picture never sleeps: sudo raspi-config > Display Options > Screen Blanking > No.
Step 5: Get it onto a real CRT
This is the whole point, so let’s do it right.
The easiest and most reliable hookup works on any Pi and any TV with a coax (antenna) input. Run HDMI from the Pi into an HDMI-to-coax RF modulator, then run coax from the modulator into the TV, and tune the TV to channel 3 or 4. Your Pi is now a broadcast channel and the TV is receiving it over the air the way God and 1982 intended.
If you have an older Pi with the yellow composite jack and a TV with an RCA input, you can skip the modulator and go straight out composite instead. Add this to /boot/firmware/config.txt:
enable_tvout=1
sdtv_mode=0 # NTSC (use 2 for PAL)
sdtv_aspect=1 # 4:3
Either way, if the TV crops the edges of the picture, bump up the overscan margin in the control room until nothing important gets cut off. There are no fake scanline filters in CABLE 82, on purpose. The CRT is the filter.
Step 6: Give it a soundtrack
The real channels were never silent. Drop a few audio files into the music/ folder and CABLE 82 plays them as a continuous background bed behind the pages, looping the set, shuffling if you like. Two tracks ship with it to get you started. Aim for the sound the old channels actually used: beautiful music, easy listening, and eventually the famous smooth jazz. I generated mine, but any lounge-y instrumental works.
A channel of your own
A Pi, an old TV, a coax cable, and a folder of files, and now there is a corner of your house that runs its own quiet little channel: your messages, your weather, your headlines, your dad jokes, scrolling by all day.
It’s not useful, exactly. It’s better than useful.
CABLE 82 is open source and lives at github.com/nothans/cable-82. Clone it, point it at your feeds, and put an old TV back to work.

