# A cassette shell that plays MP3s in your deck or pocket

An ESP32-C3 and a DFPlayer Mini fit inside a 3D-printed cassette body that still slides into a real tape deck, with the tape-head switch and transport buttons wired in.

- Category: Hardware (build)
- Device: [Cassette](https://afterware.xyz/d/cassette)
- Made by: [C Forde](https://www.hackster.io/xpienet) on Hackster.io
- Original: https://www.hackster.io/xpienet/mp3-player-cassette-v2-b9c458
- On Afterware: https://afterware.xyz/p/a-cassette-shell-that-plays-mp3s-in-your-deck-or-pocket

## Can I build this?

- Difficulty: Advanced
- AI-buildability: 3/5 (MicroPython for button handling, DFPlayer control and battery reading is easy for AI, but the flex PCB, tight soldering and fitting everything inside a cassette shell are hands-on work.)
- Time: A few weeks
- Cost: $40–80
- Parts: ESP32-C3 Super Mini, DFPlayer Mini, 3.7V LiPo battery, Flex PCB, Charger/Booster module
- Tools: 3D printer, soldering iron, drill, needle file

Estimates based on the original write-up. How the AI-buildability score works: https://afterware.xyz/ai-buildability

## Build sheet

- Microcontroller: ESP32-C3 Super Mini
- Audio: DFPlayer Mini
- Language: MicroPython
- Body: 3D-printed PLA cassette

## Starter prompt

```
Based on "A cassette shell that plays MP3s in your deck or pocket" on Afterware: https://afterware.xyz/p/a-cassette-shell-that-plays-mp3s-in-your-deck-or-pocket

Write MicroPython for an ESP32-C3 Super Mini that drives a DFPlayer Mini over UART at 9600 baud. Map five buttons on GPIO 10, 9, 8, 4 and 3 (play/stop, rewind, fast-forward, volume up, volume down) with internal pullups, and use a sixth input on GPIO 0 as a tape-head switch that starts playback. Add a 0.96in I2C OLED that shows the track number and a battery percentage read from a resistor divider on GPIO 2.
```

## Story

Some people still listen to cassettes, and that's how this one started. The maker found older cassette-MP3 ideas online but figured the parts were hard to source, so they built their own. It's a V2 of an earlier MP3 Player Cassette, and it fits into a cassette player or works as a portable player with headphones.

The cassette body is 3D printed rather than modified from a donor tape. It's printed in four flat pieces, two per side, so nothing needs supports, and the USB, SD card and headphone cutouts are built in. Inside, a 2-layer flex PCB carries an ESP32-C3 Super Mini running MicroPython and a DFPlayer Mini. Pins are turned down from 1mm terminal stock so the charger board and microcontroller can be pin-mounted to the flex.

The V2 changes are the ones that make it buildable: a PCB to cut wiring, a fully cut-out body so you don't hack a cassette by hand, and smaller tape wheels that fit now that the wiring is tighter. The battery is a 3.7V LiPo read through a resistor divider, and the play, rewind, fast-forward and volume buttons all run through the ESP32's GPIO.

## Resources

- [Build page](https://www.hackster.io/xpienet/mp3-player-cassette-v2-b9c458)
- [Cassette body front STL](https://hacksterio.s3.amazonaws.com/uploads/attachments/2014805/casssette_front5b_V2tv0mmpeA.stl)
- [PCB files (zip)](https://hacksterio.s3.amazonaws.com/uploads/attachments/2014827/ctape_board2_auTVnEykYG.zip)
- [Instructables version](https://www.instructables.com/MP3-Player-Cassette)

Tags: cassette, 3d-printed, micropython, esp32-c3, dfplayer, flex pcb, mp3 player

AI assistants can search all Afterware builds through the MCP server at https://afterware.xyz/mcp (setup: https://afterware.xyz/agents).
