KaboomBox - an RFID 8-Track Player
by CameronCoward in Circuits > Audio
4986 Views, 42 Favorites, 0 Comments
KaboomBox - an RFID 8-Track Player
Vinyl records provide nice, warm analog sound. CDs have nearly lossless storage for high-quality music. Even cassette tapes have a certain nostalgic appeal and cool factor. But 8-track cartridges are almost useless, because they don't offer any real benefits over the alternatives.
8-track players, on the other hand, can be very special.
The best of the bunch is the Panasonic RQ-830S 8-track player, often called the "dynamite" or "TNT" due to the enclosure and next-track switch looking like an old school plunger detonator for explosives.
I purchased a Panasonic RQ-830S, made in the '70s, that wasn't functional. It was missing the battery cover and power supply, and wouldn't turn on.
Then I turned it into the most awesome RFID music player this side of the new millennium.
An RFID music player is a fancy MP3 player that uses RFID (Radio Frequency Identification) tags instead of buttons to select music. In this case, there is an RFID sticker under the label of each 8-track cartridge. When the user inserts a cartridge, the device reads the RFID tag and triggers an associated folder of MP3 music on an SD card. That music then plays through a DFPlayer Mini MP3 player.
Supplies
- Raspberry Pi Pico
- DFRobot DFPlayer Mini MP3 Player
- HiLetgo 0.95" SSD1331 65K OLED
- HiLetgo PN532 RFID Reader
Software:
- Autodesk Fusion 360
- Arduino IDE
- Adobe Illustrator or any image editor (for labels)
Tools:
- 3D printer
- Soldering iron
The Idea
My project, which I've dubbed "KaboomBox" because I can't pass up fun wordplay, works like most RFID music players. It reads an RFID tag and begins playing a folder of music linked to that specific tag.
But I think the KaboomBox is interesting for a few reasons:
- The awesome Panasonic design
- 8-tracks (hipster vintage cred)
- The tidy packaging and small details
To expand on that last point: everything looks original. While none of the original hardware is inside (except the speaker), all of the new electronic components fit seamlessly. The LCD screen peeks out through the window that originally showed the track number. The plunger switch on top skips tracks. The volume knob is in the original location and works. The SD card slot and USB-C charging ports reside in the slots originally used for the power cables.
I'm really proud of this one. It works perfectly, looks great, and is a lot of fun to use.
The Hardware
The "brain" is a Raspberry Pi Pico microcontroller development board.
That looks for RFID tags using a HiLetgo PN532 RFID reader. When it sees a tag, it tells a DFRobot DFPlayer Mini MP3 player to start playing songs in the corresponding folder on the micro SD card. An extension makes that SD card accessible on the exterior of the device.
The Pico also controls the LCD screen behind the window. At launch, it shows the Kaboom Box logo. Then it shows a waiting icon. When it detects an RFID tag, it display a music note icon with that playlist's title in the middle. A circle of green dots around the outside indicate the volume level.
A potentiometer attached to the volume knob tells the Pico the volume to set. The Pico then gives the command to the DFPlayer to set the volume.
The plunger on top pushes down on the original mechanism, which has a really nice tactile feel. At the end of its travel, it hits the lever of a microswitch. The Pico registers that and tells the DFPlayer to move to the next song.
Power comes from a battery pack with two 18650 lithium battery cells. That goes through a charging/distribution board to the rest of the circuit via a lamp-style power switch mounted on the top of the device. A USB-C extension makes the charging port accessible from the outside.
Custom Parts
This project required a handful of custom 3D-printed parts, which I designed in Autodesk Fusion 360.
These parts were the most difficult part of the project. It is always more of a challenge to design parts that fit existing devices when the entire device is your own creation. I wish I had some secret approach to this, but I don't. I tried 3D scanning the enclosure, but couldn't get good scans.
So I took the tried and true approach: measurements with digital calipers and trial-and-error through several iterations of the printed parts.
The most obvious is the battery cover, which was necessary since the original was missing. I very carefully designed that to match the curves of the device. I then printed it on a Phrozen Sonic Mighty 8K resin 3D printer to get the best quality and strength. Finally I spray-painted it with a color chosen to match as closely as possible.
Other 3D-printed parts include:
- SD card port
- USB-C port
- Volume knob
- LCD and RFID reader mount
- Mount for the ElectroCookie prototyping PCB
The Code
I performed all of the programming within the Arduino IDE, which let me take advantage of several handy libraries for the display, DFPlayer Mini, and RFID reader.
My code is very thoroughly commented, so you should look at that if you want to understand all of the details. Most of that is straightforward and similar to what you'd see for any RFID music player. But there were some quirks with the display that I want to talk about.
The display is a full-color OLED that I really like and I wanted to take advantage of the color. But microcontrollers have limited memory and struggle to display color images. Most high-resolution color displays handle their own storage and processing for that reason, but this did not. So I had to use a few tricks.
For example, the boot logo is actually three different images and they're all monochrome. I simply displayed them one at a time, each set to a different color.
In a similar way, the the display shown when playing music is made up of a few different elements. The music note icon is a monochrome image, but the playlist name shown over that is just text. The green dots for volume are drawn using the Adafruit GFX library. Black dots are drawn over those to "erase" them when necessary. That isn't as efficient as I would have liked, but it achieved the necessary effect.
The Tapes
This was probably the most fun part of the entire project.
To start, I just bought a handful of old 8-track cartridges. They're very cheap and easy to find on eBay.
I then spent a surprising amount of time figuring out the optimal location for the RFID tags. If they aren't just right, they don't get read reliably.
The final step was to design my own labels. I'm no graphic designer, but I had fun with this part. I took care to create the artwork files at the proper size to avoid any issues with scaling.
I then took those files to a Fedex print office and had them print the artwork onto sticker paper. Because they were sized properly, I just peeled them and slapped them onto the tapes, covering the RFID tags.
The Music
The DFPlayer Mini does have some rules regarding the number of files, how folders are structured, and so on.
But generally speaking, each folder can hold a hundred songs and there can be a hundred folders. 10,000 songs is plenty, so I can keep making new tapes. That's why the SD card is external: so I can easily add new music.
The only downside is that I didn't program any function to add new RFID tags. So I have to connect to and reflash the Pico to add the new tag IDs if I want to make additional tapes.
Enjoy!
I hope you liked this project. If you did and want to see more stuff like this, consider subscribing to my YouTube channel!