Cartridge Based MP3 Player - CartridgeMP3
Introduction: Cartridge Based MP3 Player - CartridgeMP3
The CartridgeMP3 bridges the gap between physical and digital music. It plays back the highest quality digital audio through a user interface that has the simplistic charm of a CD or Cassette Tape player. It has a 3D printed body and features an Atmega 32u4 along with an MP3 decoder for audio playback. Audio is stored on a MicroSD card, and the track is selected through a unique 8 bit cartridge with a 12 pin interface. Volume adjustment is offered through a power switch, and programming and power are implemented through a USB-C port.
Why does one need this? Well, it has many practical uses. You could digitize your vinyl collection and play it back through the CartridgeMP3, or you could simply use it as a simple MP3 player, free of the distractions of your phone or iPod. I personally just use it as a bedside MP3 player. Happy making!
Supplies
I did my best to keep the project as low-cost and accessible as possible. Additionally, all the parts are from Adafruit.com, so that is the only store you need to buy from. No aliexpress!
TOOLS:
1. Soldering Iron
2. 3D Printer
3. Wire Strippers
4. Hot Glue Gun
5. Adjustable Wrench
MATERIALS:
1. Adafruit Feather 32u4 Basic Proto
2. Adafruit Music Maker FeatherWing
3. Adafruit Perma-Proto Quarter-sized Breadboard PCB
4. USB Type C Breakout Board* This specifically wasn't used in the project, but I recommend it if you do it yourself* see number 12
5. Panel Mount 10K Dual Log Potentiometer w/ On-Off Switch
6. 8x 10K ohm resistors
7. Mechanical Key Switch
8. 3 mm LED
9. 1003
Headphone Jack
10. Pin Header* You will need this female header as well as the male header included with the microcontroller
11. Wire* You will need these jumper wires as well as a lot of thin flexible wire from a hook-up kit
12. Sacrificial Micro USB cable or micro-b to USB C adapter* Or you can just use micro-b
Step 1: Get Printing!
Get Printing! You should start the prints right away so that it finishes once you finish the electronics. There are three parts for the player itself - the enclosure, the faceplate, and the pin holder. They were designed using Fusion 360 and printed on an Ender 3. Any filament will work.
SETTTINGS:
Layer Height: ≤.2 mm
Infill: 20%
I recommend printing in this order in order to prevent waiting:
1. Pin Holder
2. Front Plate
3. Enclosure
Step 2: Wiring
Use the attached wiring diagram as a guide.
Start by wiring together the pins for the MP3 decoder and microcontroller using the jumper cables. Then, you can test to see if both are working properly. Following this, you will want to wire the pull-up resistors for the cartridge interface. These will be wired on the perfboard. Solder the cartridge pins as well, coating the connections with hot glue once finished. Once you have finished wiring, you should mount all the components onto the faceplate, and solder their connections. This includes the pin 13 status LED, the potentiometer with the switch and both audio channel control, the reset button which ties to ground, the audio port, which takes the output of the potentiometer, and the cartridge pins. Take special care with the cartridge pins - these need to be hot glued directly in the middle of the pin holder, which gets carefully hot glued onto the slot in the face plate. Next, take the USB cable and isolate each of the small wires inside. Solder each one to the corresponding pad on the USB C connector, except for the 5V line, which goes through the switch.
Step 3: Coding
Next up is coding.
To start, you will need to get support for the 32u4 Feather in Arduino IDE. Follow these instructions here. Next, you'll want to install the Adafruit VS1053 so that we can get the MP3 decoder up and running right away. In Arduino IDE, Hover over "Sketch", then click "Include Library", then click "Manage Library". Search for "Adafruit VS1053" in the dialog box, and click install.
After you have it installed, you can copy and paste this code, or download the sketch.
Note the filenames for the MP3 tracks on the Micro SD card. They need to be 8 letters long with a . 996