This project takes the github.com/delhatch/PiPod project (which was derived from github.com/BramRausch/PiPod) and replaces the LCD screen with an e-Paper screen.
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
The goal of this project was switching from a 2.2" 320x240 LCD screen to a 2.13" 250x122 e-Paper screen (from Waveshare) in order to extend the battery run-time.
Using the project's standard 1200 mAh battery, the continuous play time is now 4 hours, 48 minutes. Since a USB power supply is rarely far away, this seems sufficient.
In addition to using an e-paper screen, I also added a headphone amplifier based on the TP6113 IC. Note: This amplifier is rated at 40 mW, which does not sound like a lot of power, but even with inefficient headphones this equates to 108 dBSPL (equivalent to a gas lawn mower at 1m), which is far too loud for sustained listening. Watch your volume setting!
This project is derived from github.com/delhatch/PiPod_Zero2W. This repository has changes to impliment the use of the e-Paper screen, along with other minor bug fixes.
I have changed the OS to the "lite" version: 2024-03-15-raspios-bookworm-arm64-lite.img.xz This change reduces power consumption by ~20 mA, which is a 9% savings, so reasonably significant.
Also moved from Pygame to Pillow for the screen graphics.
Then I got rid of Pygame completely, since I was only using it for the key stroke buffer, and the Python keypad library was already taking care of that. Eliminating Pygame reduced power consumption by 9.2% when idle, and by 5.2% when playing music.
28 June 2024: I built a unit with the Rev2 PCB (black PCB, see pics). It works great. The Rev3 (current) case files appear to be acceptable.
With the LCD screen, with the backlight on, during playback, the current draw is 266 mA.
With the LCD screen, with the backlight off, during playback, the current draw is 220 mA.
With the e-Paper screen, during playback, the current draw is 175 mA.
Having eliminated Pygame, the current draw is down to only 166 mA.
So the e-Paper screen is definitely a major improvement in battery life (playback time), and also useability because there is no anxiety about leaving an LCD backlight on.
Completion of these instructions takes about 40 minutes, not including the time transferring the music files.
The bare PC board and case parts can be ordered via this link at PCBWay. For the case parts (top, bottom and frame parts) I specified 3D printing in Nylon: PA-12 with 35% glass fill. For the navigation and side buttons, 3D printing in any cheap white plastic will do.
Instructions:
sudo raspi-config
sudo nano /boot/firmware/config.txt
and make the following changes:
sudo reboot
sudo apt install python3
sudo apt install build-essential python3-dev python3-smbus -y
sudo apt install git -y
sudo apt install python3-vlc -y
sudo apt install python3-alsaaudio -y
sudo apt install pulseaudio -y
sudo apt install python3-taglib -y
sudo apt install python3-spidev -y
sudo apt install python3-gpiozero -y
sudo apt install python3-pip -y
sudo apt install python3-pil -y
sudo apt install python3-numpy -y
sudo reboot
sudo raspi-config
amixer set Master 50%
speaker-test -c2
~/
) type: git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
cd Adafruit_Python_GPIO
sudo python3 setup.py install
cd ~/
sudo pip3 install --break-system-packages Adafruit-Blinka
cd ~/
git clone https://github.com/waveshare/e-Paper.git
sudo pip3 install --break-system-packages waveshare-epaper epd-library
sudo reboot
cd ~/
then type: git clone https://github.com/delhatch/PiPod_ePaper.git
cd PiPod_ePaper
mv launch.sh ~/.
cd ~/
chmod 777 launch.sh
mkdir .config/systemd
mkdir .config/systemd/user
cd PiPod_ePaper
mv pipod.service ~/.config/systemd/user/.
mv -f epd2in13_V4.py ~/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/.
mv -f epdconfig.py ~/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/.
mkdir ~/Music
sudo mount /dev/sda1 /mnt/usb
(You'll need to sudo mkdir the /mnt/usb directory)sudo umount /mnt/usb
then remove the USB stick.ifconfig
and note the IP address. Use the application WinSCP, and use the SFTP protocol, to copy media files from a Windows computer to the PiPod.cd ~/PiPod_ePaper/Software
python3 main.py
systemctl --user enable pipod.service
systemctl --user status pipod.service
to see if the service launched.sudo nano /boot/firmware/config.txt
dtoverlay=disable-wifi
dtoverlay=disable-bt
display_auto_detect=1
arm_boost=1
arm_freq=150
core_freq=150
over_voltage=-4
To charge the battery, slide the top power switch to the left. Connect a USB power supply to the USB jack at the bottom of the PiPod. Applying power will start charging the battery, and will also boot the PiPod.
To shutdown the PiPod, press the up arrow to get into the menu tree. Press the down arrow to "Shutdown". Press the middle button.
To operate from battery power, you MUST start with the ePiPod in the shutdown state. Do not run from USB power (power switch to the left) and then slide the power switch to the right (battery power). This causes a power glitch. Simply start with an ePiPod in the shutdown state, and slide the power switch to the right. Wait for it to boot.
While operating from battery power, you can plug (and unplug) the bottom USB jack into a power source to charge the battery.
To shutdown from battery power, find and press the "Shutdown" command as above. After 5 seconds (and with the bottom USB jack NOT connected to a power source), slide the top power switch to the left.