MP3 player for the Miyoo Mini Plus, Mini v4, and Mini Flip running OnionOS. Inspired by the classic iPod interface.
- iPod-inspired user interface with multiple themes
- Browse by Artists, Albums, and Songs
- Search/filter lists with on-screen A-Z keyboard
- Album art display with automatic fetching from MusicBrainz
- Shuffle and repeat modes
- Seek/fast-forward/rewind with accelerating speed
- Over-the-air updates
- Session persistence (queue, position, shuffle/repeat restored on launch)
- Native 640Γ480 resolution optimized for Miyoo Mini
- 17 customizable themes (Classic iPod, Dark Blue, Nord, Cyberpunk, and more)
- MP3, FLAC, and OGG/Vorbis playback
- Lyrics display with LRC timed sync and auto-scroll
- Download MiyooPod.zip
- Extract the MiyooPod.zip file
- Connect your Miyoo Mini Plus SD card to your computer
- Copy the
MiyooPodfolder to/Appon your SD card - Safely eject the SD card and insert it back into your Miyoo Mini Plus
- MiyooPod will appear in your Apps menu
MiyooPod reads music files from your SD card's Music folder:
/mnt/SDCARD/Media/Music/
- Connect your Miyoo Mini SD card to your computer
- Navigate to
/Media/Music/folder - Copy your MP3 files and folders into this directory
- Organize your music by artist/album folders for better library organization
- Launch MiyooPod - it will automatically scan and index your music library
MiyooPod supports MP3, FLAC, and OGG/Vorbis audio files.
Recommended Format: MP3 @ 256kbps
- Format: MP3 (MPEG-1 Audio Layer 3)
- Bitrate: 256kbps CBR (Constant Bitrate) or VBR V0
- Sample Rate: 44.1kHz
- Channels: Stereo
Note: The Miyoo Mini Plus audio output is not high quality enough to justify higher bitrate files. Playback might be choppy with higher bitrate files. FLAC files are supported but MP3 is recommended for best performance on the Miyoo Mini's limited hardware.
MiyooPod automatically extracts album art embedded in your MP3 files' ID3 tags.
For albums without embedded artwork, MiyooPod can automatically fetch album covers:
- Navigate to Settings from the main menu
- Select "Fetch Album Art"
- MiyooPod will scan your library and download missing album artwork
Note: Requires internet connection via WiFi. Artwork is stored in
/mnt/SDCARD/Media/Music/.miyoopod_artwork/
- Themes - Choose from 17 visual themes (Classic iPod, Dark, Dark Blue, Light, Nord, Solarized Dark, Matrix Green, Retro Amber, Purple Haze, Cyberpunk, Coffee, Ocean, Forest, Sunset, Neon, Midnight, Gruvbox, Candy)
- Lock Key - Customize which button locks/unlocks the screen (Y, X, or SELECT). The Miyoo Mini Plus doesn't support suspend mode natively, so the lock key prevents accidental presses during playback
- Fetch Album Art - Automatically download missing album artwork from MusicBrainz
- Check for Updates - Manually check for and install OTA updates
- Update Notifications - Toggle automatic update prompts on/off
- Clear App Data - Reset library cache, settings, and artwork
- Toggle Logs - Enable or disable debug logging
- Rescan Library - Force a complete rescan of your music library
- About - View app version and check for updates
Built using Go 1.22.2 with native C bindings (CGO) for graphics and audio.
- Platform: Miyoo Mini Plus, Mini v4, Mini Flip / OnionOS
- CPU: ARM Cortex-A7 (dual-core)
- Resolution: 640Γ480 native
- Cross-compilation: arm-linux-gnueabihf-gcc
- SDL2 - Graphics, input handling, window management
- SDL2_mixer - Audio playback with MP3 decoding (libmpg123)
- fogleman/gg - 2D graphics rendering
- dhowden/tag - ID3 tag parsing
- golang.org/x/image - Image processing and font rendering
- Dual-core utilization (UI and audio on separate cores)
- Pre-rendered digit sprites for time display
- Text measurement and album art caching
- Library metadata cached as JSON for fast startup
The library cache files may be corrupted. Connect your SD card to your computer and delete the hidden JSON files in the music folder:
/mnt/SDCARD/Media/Music/.miyoopod_library.json
/mnt/SDCARD/Media/Music/.miyoopod_state.json
MiyooPod will rescan your library on the next launch.
Open Settings β Clear App Data to wipe the artwork cache and library metadata. MiyooPod will rebuild everything on the next launch. You can then use Fetch Album Art again to re-download missing covers.
If the app is misbehaving, enable logging from Settings β Toggle Logs, then reproduce the issue and check the log file on your SD card:
/mnt/SDCARD/App/MiyooPod/miyoopod.log
Attach this file when reporting a bug on GitHub Issues.
If an update left the app in a broken state, manually reinstall the latest version:
- Download MiyooPod.zip
- Extract and copy the
MiyooPodfolder to/Appon your SD card, overwriting the existing files - Your music library and settings are stored separately and will not be affected
# Cross-compile for ARM
make goThe build process uses CGO to compile Go source with C bindings and bundles all required shared libraries.
- π΅ FLAC and OGG/Vorbis playback support (decoded via statically linked drflac and stb_vorbis in SDL2_mixer)
- π Lyrics support: embedded lyrics (ID3 USLT, Vorbis comments) displayed with word-wrap and scroll
- π€ LRC timed lyrics: synced highlighting of the current line with auto-scroll and manual scroll override
- β© Hold β/β to scroll lists continuously without repeated presses
- β SELECT + START to quit the app
- π Over-the-air updates with download progress, checksum verification, and automatic rollback on failure
- π Search: filter Artists, Albums, and Songs with an on-screen A-Z keyboard (press SELECT on any list)
- β© Seek/fast-forward/rewind: hold L or R on the Now Playing screen with accelerating speed
- πΎ Session persistence: queue, playback position, shuffle/repeat state, and current track restored across launches
- π Header marquee: now-playing track info scrolls in the header bar when browsing menus
- π‘οΈ Crash reporting: fatal panics and C-level signals are logged and reported automatically
- ποΈ Clear App Data option in Settings to reset library cache, settings, and artwork
- β‘ Faster startup: version check no longer blocks splash screen; album art uses fast RGBA pixel cache on disk
- π Non-blocking library scan with dedicated progress screen showing track count, current folder, and phase
- πΌοΈ Non-blocking album art fetch with progress bar, percentage, and cancel/retry support
- π Volume and brightness persisted across app launches
- πΌοΈ Background album art extraction from MP3 tags after startup
- π Toggle update notifications on/off from Settings
- π Manual "Check for Updates" option in Settings
- π Fixed race conditions where background goroutines corrupted the framebuffer causing panics
- π Fixed volume/brightness overlay screen flash caused by partial framebuffer updates
- π Fixed volume resetting on every launch
- π Fixed volume control using MI_AO ioctl (correct indirect buffer layout matching Onion/keymon)
- π Fixed volume icon SVG being cut off in the overlay
- π Added screen lock with power button
- π Added auto screen lock setting (1/3/5/10 min or disabled)
- π Added screen peek toggle setting (enable/disable screen wake on button press while locked)
- π Fixed brightness and volume being adjustable while screen is locked
- π Fixed now playing progress bar drawing over the lock overlay
- π§ Fixed PostHog logging initialization order
- π C logs from SDL initialization now properly captured
- π± Device model detection and reporting (Mini Plus, Mini v4, Mini Flip)
- π Display resolution metrics sent to analytics
- π Independent local logs and developer logs settings
- β¨ Added support for Miyoo Mini v4 (750Γ560 resolution)
- β¨ Added support for Miyoo Mini Flip (750Γ560 resolution)
- π§ Automatic resolution detection via framebuffer device
- π¨ UI scaling adapts to different screen sizes while maintaining aspect ratio
- π Disabled local logs by default (developer logs still enabled)
- π Initial release
- π΅ iPod-inspired user interface
- π¨ 11 customizable themes
- πΌοΈ Album art display and automatic fetching from MusicBrainz
- π Shuffle and repeat modes
- π± Optimized for Miyoo Mini Plus (640Γ480)
MiyooPod is open-source! Contributions are welcome.
- Report bugs: GitHub Issues
- Request features: New Issue
- Submit PRs: Pull Requests
Open Source
Created by Danilo Fragoso