Internet of Karaoke Machines

How I Got A Retro-Futuristic Thrift Store Find to Run Docker

Brett Neese
Jul 26, 2018 · 5 min read

Overt the past few months, for a video installation I’m working on, I’ve been on the hunt for something strange considering it’s 2018: a tiny CRT, ideally greyscale. I hunted thrift stores, dumpsters, eBay, at one point even taking a bunch of buses several hours to check out a film industry rummage sale in Echo Park. No dice.

One day, however, I found myself poking around at Goodwill when I spotted a portable karaoke machine from 2005 sitting among the various discarded electronics in the back of the store. For the particular project I’m working on, it’s perfect. And it was only $13. (Even better: when I got home, I noticed it had a free DVD of Paul Blart: Mall Cop in the CD tray.)

Image for post
Image for post

There was one small problem, though: it’s a karaoke machine, and it definitely does not have any “video-in” ports on the outside. So I grabbed a handful of small computery things I had lying around and drug it to CRASH Space, a hackerspace I’m a new member of in Los Angeles, hoping I might be able to liberate the display somehow.

Much to my surprise, it was incredibly easy to disassemble. Popping the top to get access to the monitor “section” was a simple matter of unscrewing 5 Philips screws, and all the internal wiring was in the form of convenient ribbon cables with header connectors, much like a computer.

Image for post
Image for post

I poked around the board with a meter — wearing rubber gloves, of course, considering the CRT is potentially highly energized, even when powered off, and I would prefer not to die — trying to figure out how the display was being driven. I Googled random part names trying to find a schematic, anything, but couldn’t find any information on the insides.

As I took another look at the board, I suddenly found what I was looking for — much to my surprise, I somehow had missed that the board was literally labeled with a header pin labeled “video in.” This machine was begging to be hacked.

Out of pure curiosity, I quickly pulled out a soldering iron and soldered two pins to the composite video headers on a Raspberry Pi Zero so I could run jumper wire between the “video out” on the Zero and the “video in” on the karaoke machine.

Image for post
Image for post
How nice of them!

I plugged the whole thing in, and, much to my astonishment, the display sprung to life with the Raspberry Pi’s boot sequence. It even worked the first time!

Image for post
Image for post
Success. (The SD card apparently had RetroPi on it, but still, it worked!)

Since then, I’ve replaced the Zero with a Raspberry Pi 3, because the Zero was a bit under-powered for my taste, and there’s plenty of room in the chassis. Since the big Pi doesn’t have composite headers, my first stab at this involved soldering wires to the bottom of the Pi, but they broke in transit incredibly easily. As the Pi carries video over the third ring of the 3.5mm jack, I found a TRS connector with screw block terminals, which has worked perfectly.

Image for post
Image for post

I ended up hot-gluing the Pi to the chassis rather than have it awkwardly float around. My first try at this involved me gluing the Pi directly to the chassis… which I definitely wouldn’t recommend (RIP 8GB SD Card). I found a cheap Raspberry Pi case on Amazon and just glued the bottom half to the chassis, and that’s working much better. I then glued the jumper wire going into the board into the header slot so it wouldn’t fall out (thanks to Steve for showing me that trick.)

Image for post
Image for post

I also Dremeled out a small hole in the back for the wires (thanks to Barb, who makes things, for giving me hand with the Dremel.)

Image for post
Image for post

On the software end, it’s running Resin/Resin OS, which is a really cool Docker orchestration service for IoT devices. This makes it very easy for me manage and push software to the Pi, especially given my goal for it is to be semi-autonomous — I don’t want to have to worry about attaching a keyboard and mouse to it.

Currently, it’s running a Screenly OSE Docker image, an open source digital signage solution, so I can push videos and websites to it at will. I would dive into how I got Screenly running on the Pi, but all I did was follow this excellent tutorial. I’m working on giving it cellular data through a USB modem, so it’s always online, even when it’s not connected to my wifi network, and that’ll make it even more autonomous.

What I plan to do with this will be revealed with time, but for right now I’m pretty happy staring at the strange retro-futuristic object in my kitchen looping Meshes of the Afternoon on a tiny black and white CRT while I weigh the absurd realization that I connected a karaoke machine to the Internet and it may indeed be one of the strangest machines running Docker in the world.

Image for post
Image for post

PS: I want to do more of this kind of work, potentially professionally. Hit me up at brett@neese.rocks if you’re interested in collaborating, especially if you need someone good at DevOps/AWS.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store