Waveshare 7.5" E-Paper HAT V2
Processing · Reading Notes Created Jan 4, 2025
Project: eink-training-display
hardwaree-inkraspberry-pi
Technical reference for the display used in the eink training display spec.
Specifications
| Spec | Value |
|---|---|
| Resolution | 800 × 480 px |
| Colors | Black/White + 4 grayscale levels |
| Dot Pitch | 0.205 × 0.204 mm |
| Interface | SPI (mode 0: CPHL=0, CPOL=0) |
| Voltage | 3.3V or 5V |
Refresh Performance
| Mode | Time | Use Case |
|---|---|---|
| Full refresh | 4s | Clear ghosting, daily reset |
| Partial refresh | 0.4s | Quick updates |
| Fast refresh | 1.5s | Balance speed/quality |
| Grayscale | 2.1s | Images with shading |
Power
- Refresh: 26.4mW typical
- Standby: <0.01µA (effectively zero)
The display draws almost nothing when not refreshing — the image persists with no power.
Critical Constraints
Partial refresh accumulates artifacts. After several partial refreshes, you must do a full refresh to clear ghosting. The mendhak dashboard does a full refresh at 2 AM daily.
Don’t leave powered on. When not refreshing, put the display in sleep mode. Continuous power without refresh can damage the display.
Minimum refresh interval: 180 seconds recommended. At least one full refresh per 24 hours.
Python Setup
# Dependencies
sudo apt install python3-pip python3-pil python3-numpy
sudo pip3 install RPi.GPIO spidev
# Clone driver
git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/RaspberryPi_JetsonNano/python/examples
python3 epd_7in5_V2_test.py
Display Driver Pattern
from waveshare_epd import epd7in5_V2
from PIL import Image, ImageDraw
epd = epd7in5_V2.EPD()
epd.init()
# Create image
image = Image.new('1', (800, 480), 255) # White background
draw = ImageDraw.Draw(image)
draw.text((10, 10), "Hello", fill=0)
# Display
epd.display(epd.getbuffer(image))
# Always sleep when done
epd.sleep()
Gotchas
- If you ran C demos with BCM2835, reboot before Python demos
- V2.1+ driver boards have level shifters for 3.3V/5V compatibility
- SPI must be enabled via
raspi-config