Close
0%
0%

ePiPod

MP3 player with an e-paper screen, based on the Pi Zero 2 W

Similar projects worth following
This is a portable music player based on a Raspberry Pi Zero 2 W that uses an e-paper screen.

This is a remix of the Hackaday.io PiPod project by bram at: https://hackaday.io/project/26157-pipod

It was inspired by a comment on the original PiPod project: "It would be cool to see one with an e-paper screen." Challenge accepted!

The ePiPod uses a $6.99 epaper display from Waveshare (#12672).

Because this e-paper screen uses an SPI interface (like the original LCD screen), the change mostly involved implementing the e-paper power supply (SMPS) from Waveshare's reference design, along with using the Waveshare driver library, and then using the python pillow graphics library to draw to the screen.

The resulting PCB is available from PCBWay at: https://www.pcbway.com/project/shareproject/ePaper_PiPod_MP3_music_player_a6adf3e1.html

The software, and instructions, are available at the github repository: https://github.com/delhatch/PiPod_ePaper

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.

epipod_plus_pi_no_frame.step

PC board with the Pi Zero 2 W board, but excludes the internal frame part.

step - 20.41 MB - 09/25/2024 at 20:20

Download

epipod_plus_pi_w_frame.step

PC board with the Pi Zero 2 W board, and includes the internal frame part.

step - 20.88 MB - 09/25/2024 at 20:20

Download

epipod_plus_pi_no_frame.stl

PC board with the Pi Zero 2 W board, but excludes the internal frame part.

Standard Tesselated Geometry - 17.36 MB - 09/23/2024 at 20:45

Download

epipod_plus_pi_w_frame.stl

PC board with the Pi Zero 2 W board, and includes the internal frame part.

Standard Tesselated Geometry - 17.62 MB - 09/22/2024 at 03:00

Download

gerbers_epipod_v4.zip

Complete set of gerber files, ready to send to a fabricator.

x-zip-compressed - 58.28 kB - 07/04/2024 at 17:38

Download

View all 10 files

  • Longer battery life

    drhatch06/22/2024 at 22:13 0 comments



    In order to extend the battery life of the original PiPod project, a few changes were made:

    1) Changed the LCD screen to an e-paper screen.

    The LCD backlight was consuming a lot of power (~40 mA), and the e-paper screen does not require illumination in ambient lighting conditions. So you can see the screen without stressing about draining the batteries.

    2) Replaced the Pygame graphics engine with the Python PIL (pillow) graphics library.

    3) Replaced the Pygame event que with the Python "keypad" and "digitalio" libraries.

    These two changes eliminated the power-hungry Pygame task that was always running in the background -- it reduced the power consumption by 9.5% while idle, and by 5.3% while playing music, which is significant.

    4) Changed the OS from "raspios-bookworm-arm64" to "raspios-bookworm-arm64-lite".

    The "lite" version of the OS does not have a graphical user screen, so it boots faster and also eliminates a lot of unnecessary tasks/processes running in the background.

    5) Reduced the ARM core and ARM bus clock rate down to 150 MHz.

    With so little software running, there is no need to clock the CPU at the default clock rate of 1 GHz. Reducing it to 150 MHz saves about 20 mA. (Note: There is no measurable power consumption reduction seen when disabling unused ARM CPU cores.)

    How Long Does the Battery Last?

    In my experience, the original PiPod had a battery life of about 2 hours using a 1200 mAh battery.

    Compare this to the ePiPod, which, when playing music non-stop, at normal listening volume (with the same 1200 mAh battery), now has a battery life of nearly 5 hours.

  • Status: 22 June 24

    drhatch06/22/2024 at 21:41 0 comments

    Log #1

    Here is where the project stands today (22 June 24):

    I have assembled the PC board, and it works as expected. This version was built from the gerbers (and BoM) that are attached to this Hackaday project.

    I have iterated the case files a couple of times. The most recent version I fabricated was mostly acceptable, but could be improved with some minor modifications. I made those modifications, and the .STL files are attached to this project.

    I am currently fabricating the case files according to the attached files, but I have not received them yet.  (I expect them to be very good, if not perfect.)  I will update the project once I use them to assemble a unit.

    UPDATE: The Rev3 (current) case files are acceptable.

    SOFTWARE:

    The software is stable, and works well.

    All source files are posted on github at: https://github.com/delhatch/PiPod_ePaper

View all 2 project logs

Enjoy this project?

Share

Discussions

mclien wrote 10/23/2024 at 16:11 point

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)

  Are you sure? yes | no

mclien wrote 10/23/2024 at 20:16 point

I guess, I know one of the problems. I used a Pi Zero (not a Zero 2 W), which can't run the arm64 version, but the armhf version. No idea if I can make that work somehow.

  Are you sure? yes | no

mclien wrote 10/24/2024 at 20:39 point

OK, same result with the zero 2w. and the arm64 version of bookworm

  Are you sure? yes | no

drhatch wrote 09/25/2024 at 20:30 point

.STEP files added.

  Are you sure? yes | no

mclien wrote 10/23/2024 at 16:12 point

Very nice! Thanks. Will look into that.

  Are you sure? yes | no

mclien wrote 09/18/2024 at 14:02 point

Hello. I'd like to make a new case from layered lasercut wood. Can you perhaps provide .stl files from the PCB?

  Are you sure? yes | no

drhatch wrote 09/23/2024 at 20:48 point

I have added the files to hackaday.io and also the github repository.

  Are you sure? yes | no

mclien wrote 09/25/2024 at 13:31 point

Thanks a lot. Me, being a bit dump noticing that my CAD won't read that (of course). Hope not stretching this too much: are there perhaps .step files, too?

  Are you sure? yes | no

mclien wrote 09/09/2024 at 16:39 point

Hi there. I just tried to order it at pcbways. I got this question:

"CPH3457-TL-H is out of stock, could you please provide an alternative part number"

As I read the data sheet CPH3457-TL-W is the same part. Are there other alternatives you can recommend?

Thanks mclien

  Are you sure? yes | no

mclien wrote 09/09/2024 at 17:35 point

"Look first, ask then" Sorry, alt. part number is in the BOM

IRLML6346TRPBF

Sorry for that

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates