Open galshd opened 5 months ago
Same here. Using a Raspberry Pi Zero worked fine, but with my new Pi 5 I have this issue, so sad. Using https://www.waveshare.com/wiki/9.7inch_e-Paper_HAT (Works fine with demo sample of Waveshare)
Same issue with a Pi 4 (again, works fine with demo code)
Please let me know if you have any luck figuring out what is going on---unfortunately since I cannot reproduce the issue I don't have a good way of debugging what is happening. I am certainly open to pull requests if you figure out a fix!
Having the same issue. Here's what I know:
I am testing on a RPI 4B / 8GB, running the latest 64-bit Lite OS, and python 3.12.4.
I'm at a loss, but commenting in the hopes someone solves it.
Dove deeper -- no solution but leaving notes in case anyone else runs across this.
The example file in the waveshare repo works when compiled. I've double-checked everything I can find to align implementations between this repo and that one. I confirmed that all constants for pins and message values are the same.
There are a couple of differences between the two. The waveshare version:
I've aligned my local copy of this repro with the waveshare implementations... and still no luck.
While the example file in IT8951-ePaper does work when compiled with the default BCM driver, it DOES NOT work when compiled to use GPIOD (make -j4 LIB=GPIOD). The program starts but it does not successfully control the display at all.
Similarly, manually accessing the SPI ports using pigpiod / pigs also fails the same way: no errors, but all read bytes are returned as zero.
So I'm pretty confident that this issue is not in this IT8951 library at all, but something at the GPIOD level.
@brookstalley did you have any luck? I'm having what appears to be the same issue. Waveshare examples work when using GPIOD but I end up with a 'communication with device failed' error as well.
Dove deeper -- no solution but leaving notes in case anyone else runs across this.
The example file in the waveshare repo works when compiled. I've double-checked everything I can find to align implementations between this repo and that one. I confirmed that all constants for pins and message values are the same.
There are a couple of differences between the two. The waveshare version:
- Implements reset with high for 200ms, low for 10ms, high for 200ms
- Sets CS low at beginning of write() command and high after write
- Waits for HRDY / ready between sending preamble and payload
I've aligned my local copy of this repro with the waveshare implementations... and still no luck.
Do you happen to have these changes available that you can push? I also noticed a few differences in the startup sequence. It looks like gpiod works for me but not for you so maybe your changes will work on my side?
I'm using the 7.5inch display, https://www.waveshare.com/wiki/7.5inch_HD_e-Paper_HAT. I've browsed through similar issues (e.g. https://github.com/GregDMeyer/IT8951/issues/18) and tried the following:
However I'm still getting "communication with device failed" when running
in
IT8951/test/integration
For what it's worth, the C WaveShare code from https://www.waveshare.com/wiki/7.5inch_HD_e-Paper_HAT works fine.
Is there something I might be missing here? I've also read that using the Waveshare code might leave the display in a weird state - is there any way I can completely reset the display? Not sure why rebooting does not work here.
Appreciate any pointers :) thank you!