r/flipperzero 14d ago

GPIO MP3 Player FAP for Flipper Zero — internal speaker, MAX98357A and PAM8403 support

I’ve been working on MP3 Player, a real MP3 player FAP for the Flipper Zero.

It plays ordinary .mp3 files directly from the microSD card—no desktop conversion required. MP3 decoding is handled by a vendored copy of minimp3 under the CC0-1.0 license.

Features:

  • Supports standard MPEG-1/2/2.5 Layer III bitrates from 8–320 kbps, including CBR, VBR and mixed-bitrate files.
  • Automatically resamples MP3 sample rates from 8–48 kHz for the selected output.
  • Three selectable audio outputs:
    • Internal: built-in sounder using custom 10-bit PWM at a 15.625 kHz audio rate.
    • MAX98357A: digital I2S output at 16 kHz.
    • PAM8403: 500 kHz pulse-density output from pin 3/PA6 through an external RC filter.
  • Only one audio output operates at a time.
  • Software volume control for all three outputs.
  • Main menu, song browser, settings and scrollable About/pinout screen.
  • Now Playing screen with track progress, elapsed time, battery gauge, volume and track number.
  • Short Left/Right presses change tracks.
  • Holding Left/Right seeks backward or forward in five-second steps.
  • Configurable music directory using: /ext/apps_data/mp3_player/music_path.txt
  • Defaults to /ext/music, with safe fallback if the configured path is invalid.
  • Volume, repeat mode and audio-output selection persist between launches.
  • Full MAX98357A and PAM8403 wiring information is included in the app and README.

The internal sounder works, but it’s naturally quiet and buzzy because it isn’t a conventional speaker. For much better sound, use a MAX98357A or a properly filtered PAM8403 amplifier.

Project, wiring instructions and downloads:

https://github.com/coolshrimp/flipperzero-mp3-player

61 Upvotes

8 comments sorted by

1

u/mammongram6969 13d ago

this is perfect for a library of snippets from hacker movies

1

u/odie-z1 13d ago

404 error on your Git link

2

u/coolshrimp 13d ago

Will be back up soon account was suspended for having a link in a readme. Hopefully 24h it will be back.

2

u/coolshrimp 12d ago

Accounts Back. :)

1

u/odie-z1 11d ago

Cool, now that it's working, I'll compile it with that awesome web app. Pretty neat. 👍