-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
CircuitPython version
Adafruit CircuitPython 9.1.0-beta.1-13-g7fb791023c-dirty on 2024-04-28; Pimoroni Badger 2040 with rp2040
(built from ZePython Fork, meaningful difference)
Code/REPL
import board
board.DISPLAY.refresh()
Behavior
sometimes
the busy line doesn't come back, ever. So the screen doesn't finish refreshing, so the system hangs.
Description
I was unable to track completely what is happening how and would love insights from the experts on why this works.
Essentially: Sometimes the busy-line doesn't unlock, so the display.refresh() hangs and therefore hangs the complete CircuitPython.
Additional information
I printline debuged Circuitpython on and found that flipping the switch of wait for busy in https://github.com/gdg-berlin-android/ZePython/blob/10bf2bafb474783c30970ffb7c2567357697b938/shared-module/epaperdisplay/EPaperDisplay.c#L210 does not seem to have any negative effects on the execution, but it doesn't halt the system, and more screen refreshes can happen.
I'm happy to understand more and why and how, therefore no PR for the change, because I'm lacking the complete picture on why this change works, what issues the busy line to never get triggered back again and what the implication of just ignoring it works. Help appreciated.