MiyooPod is an MP3 player for the Miyoo Mini handheld console running OnionOS. Inspired by the classic iPod interface.
Key Features:
Main Menu
Now Playing
Albums List
Artists
This is the first release of MiyooPod. While functional, it may contain bugs and rough edges. Your feedback is crucial to improving the app.
Install MiyooPod on your Miyoo Mini Plus running OnionOS:
MiyooPod folder to /App on your SD cardMiyooPod reads music files from your SD card's Music folder:
/mnt/SDCARD/Media/Music/
/Media/Music/ folderOfficially Supported Format: MP3 @ 256kbps
For the best balance of audio quality and file size on your Miyoo Mini, we recommend encoding your music as:
💡 The Miyoo Mini Plus audio output is not high quality enough to justify higher bitrate files. Playback might be choppy with higher bitrate files.
MiyooPod supports album artwork in two ways:
MiyooPod automatically extracts album art embedded in your MP3 files' ID3 tags. Most music files downloaded from iTunes, Amazon, or properly tagged using tools like MusicBrainz Picard will already have embedded artwork.
For albums without embedded artwork, MiyooPod can automatically fetch album covers from MusicBrainz:
Note: This requires an internet connection via WiFi. Artwork is stored in
/mnt/SDCARD/Media/Music/.miyoopod_artwork/
Choose from 11 visual themes. Each theme customizes colors for backgrounds, selections, headers, progress bars, and all UI elements.
Available themes: Classic iPod, Dark, Dark Blue, Light, Nord, Solarized Dark, Matrix Green, Retro Amber, Purple Haze, Cyberpunk, and Coffee.
Customize which button locks/unlocks the screen. Choose from Y, X, or SELECT buttons. The Miyoo Mini Plus does not support suspend mode natively by pressing the power button, so the lock key allows you to lock the screen and prevent accidental presses during playback.
Automatically download missing album artwork from MusicBrainz. The app will scan your library and fetch high-quality cover art for albums without embedded images.
Enable or disable debug logging. Useful for troubleshooting issues or when reporting bugs. Logs are written to the Music folder for easy access.
Force a complete rescan of your music library. Use this after adding new songs or when the library becomes out of sync.
View app version, author information, and access support resources. Includes version checking to notify you of available updates.
Your preferences are automatically saved to:
/mnt/SDCARD/Media/Music/.miyoopod_settings.json
MiyooPod is built using Go (Golang) 1.22.2 with native C bindings (CGO) for low-level graphics and audio operations. The application is cross-compiled for ARM architecture and optimized for embedded Linux systems.
runtime.GOMAXPROCS(2)
runtime.LockOSThread() for stable CGO/SDL calls
Core graphics, input handling, and window management. Provides low-level access to the Miyoo Mini's display and controls.
Bundled libraries: libSDL2.so, libSDL2_EGL.so, libSDL2_GLESv2.so, libSDL2_json-c.so, libSDL2_z.so
Audio playback with MP3 decoding support via libmpg123. Handles music streaming, volume control, and playback state management.
Bundled libraries: libSDL2_mixer.so, libmpg123.so.0
2D graphics context for Go. Used for rendering text, shapes, and UI elements with anti-aliasing and smooth compositing at native 640×480 resolution.
ID3 tag parsing for MP3 files. Extracts metadata including title, artist, album, track numbers, disc numbers, year, genre, and embedded album artwork from ID3v2/ID3v1 tags.
Extended image processing and font rendering. Handles PNG/JPEG decoding and TrueType font rasterization for the UI.
QR code generation for sharing repository and donation links directly from the About screen.
Cross-compilation is handled via a Makefile that uses the ARM GNU toolchain. The build process compiles Go source files with CGO enabled and packages all required shared libraries.
# Cross-compile for ARM with CGO
CC=arm-linux-gnueabihf-gcc \
CGO_ENABLED=1 \
GOARCH=arm \
GOOS=linux \
go build -o App/MiyooPod/MiyooPod src/*.go
The build system automatically bundles required shared libraries into the App/MiyooPod/libs directory:
Music library metadata is serialized to JSON and stored at:
/mnt/SDCARD/Media/Music/.miyoopod_library.json
User preferences (theme, lock key, log settings) are stored at:
/mnt/SDCARD/Media/Music/.miyoopod_settings.json
Downloaded album art is cached in:
/mnt/SDCARD/Media/Music/.miyoopod_artwork/
MiyooPod is open-source and free to use. Here's how you can help make it even better:
MiyooPod is open-source! Developers are welcome to contribute improvements, bug fixes, and new features via pull requests.