-
Notifications
You must be signed in to change notification settings - Fork 15
Compatibility with Waveshare 7.3-inch ACeP 7-Color E-Paper Display #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi, I have this on my local setup, but Waveshare's libraries aren't always the best to work with, so I haven't contributed it yet. I've been debating writing my own implementation for this to make it easier to work with. Afaik, Waveshare don't publish any packages, so you have to manually download the code, and then copy the files you need (and each screen gets a different file) to where you want to use it. |
Some very quick guidelines on this; Clone Waveshare's e-paper display modules; Create a directory for the waveshare modules and copy the following files; mkdir -p PaperPiAI/src/waveshare_epd && cd PaperPiAI/src/waveshare_epd
cp e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.py .
cp e-Paper/RaspberryPi_JetsonNano/python/lib/epd7in3f.py . # replace this with the file for your display if not the 7 colour one Create the extra files needed for Python (assuming inside the touch __init__.py
touch ../__init__.py Then, modify your def display_waveshare(image, saturation=1.0):
from waveshare_epd import epd7in3f # swap this if you have a different display type
epd = epd7in3f.EPD()
if image.shape[0] > image.shape[1]:
image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
epd.init()
epd.display(epd.getbuffer(Image.fromarray(image)))
epd.sleep() call this instead of Iirc from when I set this up, you also need to allow global python packages because it depends on python-gpiozero, so you'll need to rebuild your venv using You'll also need to install the dependencies, from their documentation; sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install spidev |
Thanks for this information @Delph, I've been considering making a larger version with a Waveshare display. I presume you have to do your own colour dithering when using the Waveshare libraries? |
Waveshare's libraries handle dithering via PIL's I too have been considering doing a larger version using a bigger panel, so having a simpler way to support Waveshare's displays would be ideal. I'm also setting up a version for a friend (using the 7in3e display, instead of 7in3f) so I had been considering doing a generic module for driving the displays and adding support for the user to specify which display type from a command line argument. @QC20 Did you get anywhere with my instructions? |
@Delph - Haven't had a chance to test the changes yet as I just started a new job which has been pretty all-consuming. Planning to try it out and get back to you next week. Really appreciateyou taking the time to help me come up with possible solution for my problem. Things have been hectic lately but looking forward to jumping back into this soon. Thanks for being patient! I will say, though, @dylski & @Delph, that developing a more generic module to support Waveshare (and potentially Good Display in the future) would be a fantastic addition. I imagine far more people have these types of displays lying around compared to Inky’s. In that sense, this project could serve as a great starting point for a variety of projects involving ML-generated images and e-paper displays. |
@Delph, I tried implementing the instructions you posted earlier, but unfortunately, it did not work. I haven't had time to look into why this is the case. Do you have any suggestions on how to proceed from here? Would you be able to create a new repository with these changes in place? |
It's still my intention to do a Waveshare driver in this repository, instead of setting up another, I just haven't had much time of late to do anything. What didn't work in my instructions? I perhaps missed a bit or forgot something. |
Another month has gone by... This is still on my list to do (hopefully soon). Currently my frame isn't on the network as I rebuilt my home network and I haven't needed to put the display on the WiFi again yet. |
Same. I have not been working on this project for some time now. However, I have certainly not forgot about it. Have you by any chance had time to test out the guidelines you mentioned earlier in this thread by yourself? |
The guidelines I wrote based on what I did to get it working on my Pi with the same display. |
@Delph I was able to get this working with your instructions on a 7.3 "F" Waveshare display. Thank you! |
Would you be able to upload your working version? :-) |
I'm away from my lab for a while but I'll do it when I get back. It was working flawlessly with a Pi 3B+ but when I swapped the same card into a Pi Zero 2W it will work for a few days and then freeze up, so I need to track that down. Might just be a thermal issue. |
@LegitimateSalvage If by "freeze up" you mean you can no longer SSH in, that'll be the WiFi power saving mode which is unfortunately on by default, I created an issue over on the OnnxStream repository about this and the author pointed me towards the solution. @QC20 Unfortunately, we likely can't just upload our working versions because of licensing. My display is also currently offline, since I redid my network setup and I haven't fixed it yet. I'll put in some time soon to get a proper solution for this I promise. 😅 |
@Delph I was able to get this working using the 7.3 inch Waveshare 'E' display and a Raspberry Pi 4 using your instructions. For anyone struggling I recommend trying running Waveshare's example code found in the wiki section of the products to make sure the display is working, this helped me work through some hardware issues preventing the display from working in the first place. |
Hi,
First, thank you for maintaining this project—it’s a great resource for working with e-paper displays!
I have a 7.3-inch ACeP 7-Color E-Paper E-Ink Display Module from Waveshare that I would like to use with this code. However, I noticed that the current implementation appears to rely specifically on the Inky library, which seems tailored to Inky's own e-paper displays.
It seems like there might be others in the community who, like me, are using Waveshare displays instead of Inky models.
Has anyone successfully adapted this project to work with Waveshare's 7.3-inch ACeP display, or have insights into how this could be achieved? If not, are there any recommendations or starting points for integrating support for this display?
Thank you in advance for any advice or help!
The text was updated successfully, but these errors were encountered: