-
Notifications
You must be signed in to change notification settings - Fork 11
AttributeError: 'EPD' object has no attribute 'display' #2
Comments
It looks like the 3in7 display does not conform to the same standards as the other displays. I should have caught this when putting together the documentation. I'll see if there's a way to patch around this and fix this up without too much of a kludge. I have a few ideas. Would you be willing to run some tests for me once I have something that might work? |
Of course! |
@ZubaZ21 The tgz linked here can be executed with When prompted, enter your screen type to run a demo. If all goes well, you should four different versions of the same text displayed sequentially in different orientations. If it fails, share the debug output here and we can go from there. |
@ZubaZ21: Well, that's progress! It should have displayed the text in four different orientations, clearing the screen between each redraw. I suspect the 3in7 screen also has a weird clear function from the other screens. I suspect I can sort this out too. Can you share the debug output (all of it)? Thanks for testing this out. It's super helpful to get feedback. Sometimes folks leave trouble tickets and never follow up so the bug just remains open forever. |
Happy to help. For what it's worth, the demo provided by waveshare clears as expected. Ummm... is the debug write to a log? Or what's the best way to output? |
Yeah, you can just copy paste from the terminal output. There's probably several screens worth, but I'll take it all. You can make it easier to read by surrounding it with three back ticks (```) before and after. That will make it fixed width and easier for me to read.
In other news, the reason my code doesn't work properly is because the waveshare libraries are GARBAGE. The clear method has two unneeded arguments in it that are causing all the problems for your screen. I think I've found a quick fix that should improve things for all the screen types. I'll work on building another test bed around that and share it with you shortly. If you're on discord, we can continue here: |
Here's an updated version of the demo -- This version should handle the clearing properly. Once we get that ironed out, I can build paper_pi against the library and push out a version that will hopefully work for you. |
Latest build. No love (or rather, the same love); no clearing of things.
|
v0.3.0
|
|
@ZubaZ21 |
I didn't expect to hear from you so soon. Report:
Video: https://photos.app.goo.gl/RgtHw8mEEe9Wuovv8 Debug:
|
I had a flash of insight while I was eating lunch: my insight was different wrong. Back to reverse engineering the craptacular driver file. I'm beginning to think it might just be easier to rewrite the entire driver stack and start from scratch. The waveshare libraries are a maze of unused arguments, poorly named functions and duplicate chunks of code. This will be a fun project... |
@ZubaZ21 There's a lot of copy/pasta going on leading to redundant chunks of code in the drivers and stuff that's got fat-fingered once and has propagated through all the drivers. Or, the spec sheets are wrong. Equally possible that WaveShare maintainers don't read their own spec sheets, so that adds a whole fun level of It could be a very long road before I manage to get to the 3in7 rewritten. I hope this doesn't dash your hopes completely. |
I. AM. FURIOUS. ;)
Good luck. Have fun. Learn all the things.
Let me know how I can help.
…On Wed, Apr 14, 2021 at 3:56 PM Aaron Ciuffo ***@***.***> wrote:
@ZubaZ21 <https://github.com/ZubaZ21>
I've started building my own set of drivers based on the spec sheets. This
is helping me have a much better understanding of how the drivers work so I
can hopefully trouble shoot this problem.
There's a *lot* of copy/pasta going on leading to redundant chunks of
code in the drivers and stuff that's got fat-fingered once and has
propagated through all the drivers. Or, the spec sheets are wrong. Equally
possible that WaveShare maintainers don't read their own spec sheets, so
that adds a whole fun level of
It could be a *very* long road before I manage to get to the 3in7
rewritten. I hope this doesn't dash your hopes completely.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ATTPCDLQ2EKHORJ3OBYSDTTTIXXPLANCNFSM42V2T54Q>
.
|
@ZubaZ21 Can you give it another try? |
Did not clear on run nor between rotations. Did clear at end.
|
I'm gonna have to call uncle on this one. Without a 3in screen to test on, I'm just making guesses at this point. In a fit of frustration, I even looked around to buy one, but couldn't find one for sale! If you're interested in an upgrade, the 5in and 7in models are really nice and I've verified that they work with the EPD library that backend this project. |
Understood.
If you are ever interested, this is the one I picked up.
https://www.waveshare.com/product/displays/e-paper/3.7inch-e-paper-hat.htm
Maybe this is how I learn python and drivers. 😂
It was good to meet a fellow Aaron.
Aaron
www.todaysagoodday.com
…On Sun, Apr 18, 2021, 4:01 PM Aaron Ciuffo ***@***.***> wrote:
I'm gonna have to call uncle on this one. Without a 3in screen to test on,
I'm just making guesses at this point.
In a fit of frustration, I even looked around to buy one, but couldn't
find one for sale!
If you're interested in an upgrade, the 5in and 7in models are really nice
and I've verified that they work with the EPD library that backend this
project.
[image: 5in screen]
<https://user-images.githubusercontent.com/14262505/115159062-97a7f100-a091-11eb-8611-cbc6284faf01.jpg>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ATTPCDK4OO4H7NDI5LXB3ATTJM3DNANCNFSM42V2T54Q>
.
|
@ZubaZ21 If you want to give it a go and have a fiddle with the epdlib, this would be an interesting project. There's nothing too complex going on in the epd library. I can coach you through the important parts. The WaveShare demo code is documented reasonably well so you can get a feel for what's going on. It's a good place to start playing around too. |
See also: TomWhitwell/SlowMovie#68 :) |
Now you've got an even better reason to buy a different model... |
@ZubaZ21 I think it would be pretty easy to re-write the epd module if you wanted to dig into the spec sheet and reverse engineer the other panel modules. I started to do this, but with no 3.7 to test against, it was pretty hopeless to make meaningful progress. For now, I've tagged the 3in7 display as incompatible and narrowed down the problem to the
Let me know if you want some support in hacking out your own module for this. It would be an interesting learning experience :) |
…5627aec81bbc8 parent de8663f author txoof <aaron.ciuffo@gmail.com> 1628693183 +0200 committer txoof <aaron.ciuffo@gmail.com> 1628710931 +0200 # This is a combination of 7 commits. parent de8663f author txoof <aaron.ciuffo@gmail.com> 1628693183 +0200 committer txoof <aaron.ciuffo@gmail.com> 1628710886 +0200 # This is a combination of 3 commits. # This is the 1st commit message: fix failure modes in when running as daemon fix constants add enable to unit install fix path update documentation update build change type to smiple update build update build update build update build update tgz update tgz package adds version.txt file to install packages add force_update method # This is the commit message #2: force update of plugins before first display add version.txt to ignore new version # This is the commit message #3: update build # This is the commit message #4: fix constants # This is the commit message #5: add enable to unit install # This is the commit message #6: fix path # This is the commit message #7: update documentation # This is the commit message #9: change type to smiple
Raspberry Pi 3 Model B Rev 1.2
Buster
Waveshare 3in7
I am able to run the waveshare demo
I have disabled all plugins so the only thing changed is the display_type
[main]
waveshare display type
display_type = epd3in7
And yet, when I run the executable . . . failure:
$ ./paperpi
Traceback (most recent call last):
File "paperpi/paperpi.py", line 584, in
File "paperpi/paperpi.py", line 546, in main
File "paperpi/paperpi.py", line 293, in setup_display
File "epdlib/Screen.py", line 251, in epd
AttributeError: 'EPD' object has no attribute 'display'
[2366] Failed to execute script paperpi
[It's probably me. Sorry.]
The text was updated successfully, but these errors were encountered: