PI zero 2W - Witty pi 5 - inky 13.3 detected but no screen update

**Stack**

Raspberry Pi Zero 2 W (solderless hammer heads) → Witty Pi 5 → Inky Impression 13.3" (2025 Edition)

The Inky sits on the Witty Pi’s pass-through header. This is the intended

permanent configuration – it’s a battery-powered photo frame where the

Witty Pi wakes the Pi every few hours to redraw and then cuts power.

**Software**

- Raspberry Pi OS Lite 32-bit (Trixie, Python 3.13), freshly reflashed

- Installed via `git clone pimoroni/inky && ./install.sh`

- inky 2.4.0 in ~/.virtualenvs/pimoroni

- Mains USB supply throughout (not on battery yet)

**Symptom**

Board detected correctly, examples run to completion with no errors, panel

never changes. Not partial or faint – no visible change at all.

$ python stripes.py

Detected Spectra 6 13.3 1600 x 1200 (EL133UF1)

real  0m53.3s

user  0m11.6s

Repeatable. ~41s of that is spent waiting rather than computing, so it

looks like a full refresh cycle including busy-waits is completing.

**Verified working**

- /dev/spidev0.0 and /dev/spidev0.1 both present

- /sys/module/spidev/parameters/bufsiz = 65536

- vcgencmd get_throttled = 0x0 (no under-voltage at any point)

- raspi-config nonint get_spi and get_i2c both return 0 (enabled)

- buttons.py: A, B and D all register. C is silent, which I gather is

expected on the 13.3 (GPIO 25 vs 16). So the GPIO header is making

good contact well beyond just the I2C pins.

**Tried, no change**

- Lowering the driver SPI clock (see below) at 2 MHz, 1 MHz and 500 kHz

**Questions**

1. Is a clean ~53s cycle with zero visual change consistent with SPI

signal degradation through a pass-through header, or does that point

somewhere else? My understanding is that EEPROM detection happens on

the PCB, so “Detected EL133UF1” says nothing about the panel link.

2. Has anyone got a 13.3 working stacked on a Witty Pi 5 specifically?

The existing thread covers a Witty Pi 4 L3V7, where the fix involved

rerouting GPIO 17 – but the Witty Pi 5 is a HAT+ Mode 1 Power HAT

that communicates purely over I2C and uses no extra GPIO, so that

remedy shouldn’t apply here.

3. Anything else worth testing before I treat this as a hardware fault?

Do yourself a favor and don’t use solderless hammer headers. They are not reliable. That is my own experience and has also been shared a few times here in the forums.

You will spend your time hunting bugs that might not exist if you soldered your headers.

I tried now ommiting the Witty PI 5 inbetween so plugging PI zero 2 directly into the inky; Result is positive, examples were working, meaning updating the screen. Is it then still the hammer headers that might be causing the problem?

Sounds like a conflict between the Witty and the Inky is your current problem then, but bablokb’s point is still valid - I’m sure hammer headers work fine in many cases, but they’re also the root cause of a lot of bad connection issues…

ETA: In fact, it may still be down to the header - removing the Witty 5 from the stack will have wobbled the hammer header and potentially (temporarily) fixed a connectivity issue. Certainly, having a proper header on your Pi will remove a potential cause.

You should also be aware of signal degredation (as you already noted). Somewhere on the forums I posted a link to post somewhere else talking about changing the pin drive strengths. But since I don’t have this panel I don’t really know if this helps or not.

The idea of having a power-management system for the Pi together with an e-ink is certainly the correct way to go. I did this myself for the first generation of Inkys with a custom PCB very similar to the Witty. And I am using a Witty2 for a different setup since years without problems.

Are you open for other solutions? It is possible to drive the 13.3 with a Pimoroni Pico 2 Plus W. But this needs advanced programming skills if you want to roll your own program. Another option would be to buy a Pi5/1GB. The Pi5 can be tuned to fairly low power in off-state. Probably not as low as the Witty5 will give you, but a much simpler setup. And of course a Pi5 is usually overkill for an e-ink display. But it would be a good compromise.

I tried some more things now:

  • The display’s BUSY line (GPIO 17) reads high when the Inky is fitted and low when it is removed – so GPIO 17 does pass through, and the panel is powered and actively driving that line

  • But BUSY never asserts, so the panel never acknowledges any command

  • I confirmed the Witty Pi itself does not drive GPIO 17 (reads low with

    only the Witty Pi fitted)

Yes I am open to other solutions. My requirements were that it needs to fit into a fairly standard photo frame (like Ikea’s with 3cm of internal space) so that it looks like a regular photo frame, without any wires sticking out. I steered away from the Pi5 for the power consumption reason but also the footprint in the frame. I also wasn’t sure if the Pi5 could power on itself?

Or I could just run the Pi Zero 2W non-stop and be its slave to charge the powerbank constantly

No problem. The Pi5 has an internal RTC that can trigger a wake up. You have to set the next wake time with something like (as root):

date -d "+10 minutes" +'%s' > /sys/class/rtc/rtc0/wakealarm   # or
date -d "tomorrow 08:00" +'%s' > /sys/class/rtc/rtc0/wakealarm

and that’s it. Then shutdown the system and wait until it powers up again. You must have POWER_OFF_ON_HALT=1 in your EEPROM configuration (sudo rpi-eeprom-config --edit) to really save power.

With this setting, you are at 3-4mA. Still much compared to a MCU, but not bad for a Pi.

well that settles it. Now I’ll need another project to make use of the Pi zero 2 :D Thanks for all the help