Consumer Electronics · Audio
Jellyfish Music Toy
Built a playful embedded audio device where children press physical buttons to play songs, adjust volume, and trigger colorful LED effects without needing a screen or app.

Overview
Jellyfish is a child-friendly music toy with eight-button control, MP3 playback from SD card, song-synchronized RGB lighting, USB-C song updates, and deep-sleep battery behavior.
Highlights
- Eight-button, screen-free interaction
- Song-synced seven-color LED ring
- USB-C drag-and-drop MP3 updates
- Deep sleep with button wake-up
Challenges
- Allow song updates over USB without corrupting the SD card.
- Prevent simultaneous access when the PC and ESP32 both need the same storage.
- Make USB mode deliberate so a child cannot trigger it accidentally.
- Keep audio, buttons, LEDs, and power states reliable in a simple toy UX.
Solutions
- Gated USB mass-storage mode behind a two-second POWER hold.
- Used mount and unmount callbacks to hand SD card ownership safely between PC and firmware.
- Kept a persistent audio pipeline for responsive playback after wake.
- Implemented deep sleep so the toy consumes minimal power when idle.
Features
- Button-only play/pause, song select, and volume control
- MP3 storage on SD card
- USB-C update workflow
- Song-color mapping
- Deep-sleep idle mode
Key Results
- Created a simple no-app toy experience for children and parents.
- Reduced accidental USB-mode entry while keeping updates easy for adults.
- Delivered hardware and firmware as one integrated product.
Jellyfish is a child-friendly music toy with eight-button control, MP3 playback from SD card, song-synchronized RGB lighting, USB-C song updates, and deep-sleep battery behavior.
Gated USB mass-storage mode behind a two-second POWER hold.
Used mount and unmount callbacks to hand SD card ownership safely between PC and firmware.
Created a simple no-app toy experience for children and parents.
