elad661 / rpi_epd2in7

A python library for interfacing with the Waveshare 2.7inch e-Paper HAT display from the Raspberry Pi.
MIT License
59 stars 23 forks source link

Fix display getting stuck in BUSY state #4

Closed chrisjtwomey closed 2 years ago

chrisjtwomey commented 3 years ago

These issues cover a possible scenario where the ePaper display can get stuck in BUSY state:

I have the Waveshare 2.7in HAT version and can consistently reproduce with your library: reproduce.log reproduce_2.log.txt reproduce_3.log.txt

The workaround is described here https://github.com/waveshare/e-Paper/issues/30#issuecomment-640254220

Adding the workaround ensures the display exits its BUSY state. Here is the log, I stopped the log after 32 draws: with_fix.log

This isn't to fix the root of the problem but I propose to add these changes so this library can be used by others in long-running tasks where the display is refreshed frequently.

elad661 commented 2 years ago

Hi, sorry for the long delay, I was busy with work and only got to your PR now.

it makes sense to me. according to the waveshare's own documentation, 0x71 is a "get status" command. Looks like it's already defined as a global, GET_STATUS. Seems harmless enough. Though the documentation does mention that you shouldn't send commands while it's stuck on busy, the GET_STATUS command result also has an output of the busy state (as well as some other parameters) , so I think it should be fine.

Thanks for the PR, I'll merge it.