Skip to content
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

1.54 DEBUG:root:e-Paper busy #30

Closed
ozcam opened this issue Aug 11, 2019 · 23 comments
Closed

1.54 DEBUG:root:e-Paper busy #30

ozcam opened this issue Aug 11, 2019 · 23 comments

Comments

@ozcam
Copy link

ozcam commented Aug 11, 2019

When running this file - epd_1in54c_test.py on a raspberry pi 3+
Doubled checked all the wiring

The ink display screen does not change all I get is the debug readout in my ssh terminal

INFO:root:epd1in54c Demo
INFO:root:init and Clear
DEBUG:root:e-Paper busy
DEBUG:root:e-Paper busy release
DEBUG:root:e-Paper busy
DEBUG:root:e-Paper busy release
INFO:root:1.Drawing on the image...
DEBUG:root:Horizontal
Any help or suggestions

@waveshare
Copy link
Collaborator

Are you sure the e-paper is not damaged?

@adi17082
Copy link

I have the same problem but I know for sure that my screen not is damaged

@ragmondo
Copy link

ragmondo commented May 25, 2020

Same here. How do they close the issue without offering a solution ? Brand new eink display purchased from amazon ... double checked the wiring and also the power to the pi. Removed any extraneous peripherals. Still doesn't work. Buyer beware.

Also note that there are two different wiring configurations - one in the readme and one on the website. They are completely different (apart from the GND / 3.3V lines)

@kevinetore
Copy link

@adrianlol2017 @ragmondo I'm getting the same issue, did you guys find a solution?

@jpoles1
Copy link

jpoles1 commented Jun 7, 2020

I am having the same issue. My PiZero 2.13 in epaper HAT was working, I made some edits to my python code (changing what text was displayed, nothing major), it got stuck on busy, I reverted to the old code, still stuck. Can't get it back working again.

Tried: restarting, powering pi zero down and back up again, rerunning previously functional example code. Nothing has worked.

@jpoles1
Copy link

jpoles1 commented Jun 7, 2020

I think it must just be an issue related to failure to receive the ready signal to end the busy state. I've circumvented it by simply adding a timeout to override the busy lock if it gets stuck for too long, which seems to work most of the time (modifying epd2in13bc.py for my device, but guessing it'll work for others):

def ReadBusy(self):
logging.debug("e-Paper busy")
self.send_command(0x71);
iter = 0;
while(epdconfig.digital_read(self.busy_pin) == 0 and iter < 100):
self.send_command(0x71);
epdconfig.delay_ms(100)
iter+=1
logging.debug("e-Paper busy release")

@deguilardi
Copy link

same here. this won't work and it looks like waveshare just don't believe the issue

@jpoles1
Copy link

jpoles1 commented Jun 23, 2020

@deguilardi , did you try making my modification? It's not perfect by any means, but I've had it working on a functioning device for the past couple weeks.

I agree though, I wish @waveshare would acknowledge that this is still causing problems and re-open the issue.

@the-dino-enthusiast
Copy link

@waveshare I'm getting the same exact issue for my 7in5V2 display.

Calling ReadBusy()

    def ReadBusy(self):
        logging.debug("e-Paper busy")
        self.send_command(0x71)
        busy = epdconfig.digital_read(self.busy_pin)
        while(busy == 0):
            self.send_command(0x71)
            busy = epdconfig.digital_read(self.busy_pin)
        epdconfig.delay_ms(200)

This never ends. Rebooting raspberry pi zero does nothing.

I can't Clear() my screen since this check never passes and I'm afraid of burn-in due to this.

@waveshare - Can you please help us out here?

@the-dino-enthusiast
Copy link

@jpoles1 - Did you end up finding a solve? I added this artificial timeout, but all it does is protect me against the infinite loop. I can't even run Clear() command anymore and I have a old image on the e-ink for a few days now. :(

@jpoles1
Copy link

jpoles1 commented Aug 7, 2020

@the-dino-enthusiast unfortunately no definitive solution, but I've got it working just fine with my workaround. You can see my full codebase for my project with this display here:
https://github.com/jpoles1/2.13in-epaper-weather

@hakarune
Copy link

@the-dino-enthusiast unfortunately no definitive solution, but I've got it working just fine with my workaround. You can see my full codebase for my project with this display here:
https://github.com/jpoles1/2.13in-epaper-weather

Yours works, but none of the @waveshare ones do. What does yours do different so I can implement it on what I'm setting up?

@jpoles1
Copy link

jpoles1 commented Sep 15, 2020

I think it must just be an issue related to failure to receive the ready signal to end the busy state. I've circumvented it by simply adding a timeout to override the busy lock if it gets stuck for too long, which seems to work most of the time (modifying epd2in13bc.py for my device, but guessing it'll work for others):

def ReadBusy(self):
logging.debug("e-Paper busy")
self.send_command(0x71);
iter = 0;
while(epdconfig.digital_read(self.busy_pin) == 0 and iter < 100):
self.send_command(0x71);
epdconfig.delay_ms(100)
iter+=1
logging.debug("e-Paper busy release")

@hakarune I'm not sure exactly what you mean by your question, but ^this is the major change that I made to get things working properly in my repo.

@hakarune
Copy link

I think it must just be an issue related to failure to receive the ready signal to end the busy state. I've circumvented it by simply adding a timeout to override the busy lock if it gets stuck for too long, which seems to work most of the time (modifying epd2in13bc.py for my device, but guessing it'll work for others):
def ReadBusy(self):
logging.debug("e-Paper busy")
self.send_command(0x71);
iter = 0;
while(epdconfig.digital_read(self.busy_pin) == 0 and iter < 100):
self.send_command(0x71);
epdconfig.delay_ms(100)
iter+=1
logging.debug("e-Paper busy release")

@hakarune I'm not sure exactly what you mean by your question, but ^this is the major change that I made to get things working properly in my repo.

This helped me get it mostly setup, thank you. Now the only issue I am having is trying to draw bmp/jpg/png on the display. I have tried a bunch of methods but everything fails horribly on this board.

@hakarune
Copy link

I think it must just be an issue related to failure to receive the ready signal to end the busy state. I've circumvented it by simply adding a timeout to override the busy lock if it gets stuck for too long, which seems to work most of the time (modifying epd2in13bc.py for my device, but guessing it'll work for others):
def ReadBusy(self):
logging.debug("e-Paper busy")
self.send_command(0x71);
iter = 0;
while(epdconfig.digital_read(self.busy_pin) == 0 and iter < 100):
self.send_command(0x71);
epdconfig.delay_ms(100)
iter+=1
logging.debug("e-Paper busy release")

@hakarune I'm not sure exactly what you mean by your question, but ^this is the major change that I made to get things working properly in my repo.

This helped me get it mostly setup, thank you. Now the only issue I am having is trying to draw bmp/jpg/png on the display. I have tried a bunch of methods but everything fails horribly on this board.

Finally got it all 100%. Thanks again

@jpoles1
Copy link

jpoles1 commented Sep 19, 2020

@hakarune, glad to hear it! I would encourage you to share your working code, so the next unfortunate person to have to stumble upon this issue will have some more info to work off of!

AlanCunningham added a commit to AlanCunningham/waveshare-eink-face-detector that referenced this issue Oct 9, 2020
This replaces the official epd7in5_V2.py code and fixes an issue
where the e-ink display wouldn't update due to being stuck in a "busy"
state.
See waveshareteam/e-Paper#30
@Avdiel
Copy link

Avdiel commented Apr 8, 2021

Solved for me by one of the answers above. Simply ran another test.
For the 7.5 in, these tests works for me:
epd_7in5b_HD_test.py
epd_7in5_HD_test.py

The V2 tests got stuck in "busy".

@hubmartin
Copy link

hubmartin commented Sep 23, 2021

Hi, I did some analysis and only on RPI Zero and only sometimes I got firmware stuck in busy.
However this solved it. Two issues are the Python is sometimes slow on Zero. Second issue is when the hat is connected by 40 pin connector you send 5V to the RPI gpio.
https://www.martinhubacek.cz/blog/waveshare-epaper-hat-issues/

@philippludwig
Copy link

Are you sure the e-paper is not damaged?

@waveshare I have the same issue with a brand new e-Paper display. Does this mean I got a faulty unit?

@dviner
Copy link

dviner commented Jan 3, 2023

I have this same issue with brand new 7.5 in V2. Running the sample code results in the "e-Paper busy" message, and it never progresses. Nothing appear on the screen either. I'm using a Raspberry Pi 3B+ running Bullseye.

I have tried attaching via the HAT and also directly via the wires. I've triple checked that the pins are accurate according to the waveshare wiki.

@waveshare , any updates?

@dhvandermeer
Copy link

Same here. After accidentally ripping my connector of the 7.5 inch V2 black/white screen, I bought a new one, but this time with a new connector type. The old version had this connector and worked flawlessly, as can be seen here in my instructable.
waveshare (1)

Then I received a new screen with a new connector (other mark on the connector) plugged it in and nothing!! It stucked at busy. So I returned the screen and bought a new one from another store, but same problem. One thing that partially worked was the fix below, but it makes the refresh very, very slow and most frustrating: at the end of the refresh the screen completely fades out making it unreadable. I ended up buying the black/red screen: also same 'busy' problem, but the fix below worked for the black/red screen most times.
I used a raspberry pi 2+, 3 and also 3 different HAT's and using the wires... no difference; it just stucks on busy, very frustrating. Since the fix below does something I really think there is something wrong with the library and the newer versions of the V2 screen.

@waveshare I'm getting the same exact issue for my 7in5V2 display.

Calling ReadBusy()

    def ReadBusy(self):
        logging.debug("e-Paper busy")
        self.send_command(0x71)
        busy = epdconfig.digital_read(self.busy_pin)
        while(busy == 0):
            self.send_command(0x71)
            busy = epdconfig.digital_read(self.busy_pin)
        epdconfig.delay_ms(200)

This never ends. Rebooting raspberry pi zero does nothing.

I can't Clear() my screen since this check never passes and I'm afraid of burn-in due to this.

@waveshare - Can you please help us out here?

@dviner
Copy link

dviner commented Jan 4, 2023

I looked through all the library code for python, and some of the code for C. It seems that the readBusy function is a bit diverse in how it operates.

In some cases, it sleeps between loops, but not all cases.
The amount of time it sleeps varies from size to size.

In some cases, it sends a command in the loop, but not all.
The command is 0x71.

In some cases, the busy signal is 0, but in others it's 1.

I made a spreadsheet outlining all the differences in this function. https://docs.google.com/spreadsheets/d/11S7DDWuIJ85-4fvlvpt37gkGPyAdy1uu0lcAeK4npTg/edit#gid=0 is that sheet.

My guess is that there's a clear intention to sleep between each loop. The duration of the sleep doesn't seem important since it varies from 5 ms to 200 ms.

I'm honestly not sure what to think about the fact that the return value of the busy pin is sometimes 0 and sometime 1. That feels really odd to me.

It also seems odd that only some boards have the 0x71 command sent to the board in between reading the busy pin.

@epenguins
Copy link

I have had the same issue with the epd_7in5b_V2_test.py example for several weeks.

Compiling and running the C example followed by a reboot fixed the issue for me, now the epd_7in5b_V2_test.py example works. I have an RPi 3B+ on Raspbian Bullseye.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests