This project was inspired by BramRausch's Hackaday.io "PiPod" project.
This "ePiPod" project replaces the 2.2" 320x240 LCD screen with a 2.13" 250x122 e-Paper screen, along with other changes to reduce power consumption.
Features
Display
E-paper screen for constant visibility of status, with minimal current drain on the battery.
Audio
The board includes a high-quality 24-bit I2S DAC.
It also includes a headphone amplifier to drive low-impedence headphones, and a 3.5mm headphone jack.
The software configures and enables VLC's 10-band Audio Equalizer. (The user can enable/disable the EQ via the "Settings" menu.)
User Interface Buttons
There are 5 front-panel buttons for navigation, and 2 side buttons for volume control. There is also a slide switch on top to disconnect the battery power.
User Interface Features
Select a Song, or Artist, or Album, or Genre to start playing. You can choose to play all songs, in alphabetical or random sequence.
Top playback screen shows Title, Artist, Album, Genre, and Track number. The top screen refreshes/updates with NO e-paper screen flickers.
While a song is playing, you can choose to "Play more Songs by this Artist" or "Play the Album this song is on" or "Play more of this Genre of music."
Battery Charging and Protection
The project uses a TP4056 for single-cell LiPo charging, and an FS312F for under- and over-voltage protection.
Python
All software is in Python, and 100% open source. Even the Waveshare e-paper display driver software is in Python, and also completely open source.
Because of this, I found it easy to add specific features that I have wanted in an MP3 player, such as when you come upon a song you like and you want to hear more songs by that artist. So I added a menu item "Play More by this Artist." When you click this, songs that match the Artist are simply inserted directly into the playlist, and will come up next.
So I have finally gotten all parts, assembled and installed everything (following the instructions on github). I ended up with the player software unable to start.
The e-Paper screen just flickers every 5 sec.
There is a permission denied problem at this point:
/usr/local/lib/python3.11/dist-packages/Adafruit_PureIO-1.1.11-py3.11.egg/Adafruit_PureIO/__pycache__
Which is fitting, since the path is owned by root and has only read and execute permissions for the user "pi" who is launching the python main script.
My guess is the source is that all python install commands are executed by root (via the sudo command), which throws warnings about that while installing.
(I am considering to start the installation anew and install all the python git-hub stuff as user pi)
Some other glitches on the way:
(some might have the root cause in a newer os image. 2024-07-04-raspios-bookworm-armhf-lite.img)
1) It might be good advice directly after the first boot to do an "apt update && apt upgrade" before installing anything.
2) in /boot/firmware/config.txt the "dtoverlay=hifiberry-dac" should not be at the end of the fle, but before the section that starts with "[cm4]". Otherwise it will not be available in the audio device section.
3) at least for my headset the left/right channels are switched (during audio test)