-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Rework displayio display bus transaction handling during refresh #1620
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
Conversation
Ran a test on a feather_nerf52840 with a TFT featherwing --If I configure displayio then run the stmpe610 test using SPI, the stmpe610 test runs normally, but it causes the display to be deactivated -- that is I no longer see REPL output on the screen and even after a soft reboot, I can't get the REPL to show up on the screen again. If I run the slideshow - it does not show any images. No erros, but no images. If I hard reset, the slideshow (non-sd) runs normally. The slideshow from the SD card runs as above, no errors, but no images.
|
on a pyportal slideshowsd seems to run fine |
also as in #1612, with this PR I can still mount/access the SDCard with the displayio device active -- teh REPL is echoing all the activity running a script from the SDCard. |
as suggested by @dhalbert Tried adding a delay in the stmpe610 read_data loop. Added a .25 sec delay -- this works -- the display continues to echo the REPL throughout the test and after the program is stopped with a control-c. |
… display. Clarify code. Handle multiple displays better.
@jerryneedell I fixed some remaining problems, and tested on PyPortal and a TFT FeatherWing with Feather M4 reading from SD card. Seems to work now. Might work better with STMPE also. |
Feel free not to test tonight :) |
@tannewt Besides some general cleanup, this fix locks the SPI bus as necessary, but unlocks it between buffer writes, which gives the SD card code the access to read image data. |
Tested on feather_nrf52840 with TFT featherwing: The "sluggishness" is not new -- It has always been present when using displayio on the feather_nrf52840. Do you see the same on the feather_m4? - I have not tried it recently. tested on pyportal -- slideshow from SDCard worked normally This PR looks good to me -- I see it failed the German Metro M0 build on Travis as I found yesterday :-( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made some notes in comments. Worked well on Feather_nrf52840 w/TFT featherwing and Pyportal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reapproving after fix for metro_m0 build
Travis is confused: both builds have finished successfully, but it hasn't noticed. |
Success or failure of starting a display-bus transaction is now checked. For some routines, we busy-wait for the bus. For the background display refresh task, we just give up if the bus is not currently available.
Meant to fix #1612 and #1619.