-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
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
Don't reinit i2c LCDs #27194
Don't reinit i2c LCDs #27194
Conversation
c852f2e
to
9a1d7ed
Compare
# Conflicts: # Marlin/src/inc/Conditionals_post.h
9a1d7ed
to
815d6f9
Compare
Before
before.mp4After
after.mp4 |
The current conditions based on certain displays being immune is obviously unwieldy. Eventually we could more directly compare the MOSI pin for the LCD to the MOSI pin for the SD card and only reinit when they match. Also there is a pending LCD pins refactor, and there each LCD model will be able to set appropriate flags for its particular quirks. |
100% but still better than what I did checking the U8GPARAM. I thought those lcds could also work in SPI mode.
Looking forward to it. I have multiple hacks to get software i2c working with different busses at good speed |
I just found #if ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106)
#define HAS_U8GLIB_I2C_OLED 1
#define HAS_WIRED_LCD 1
#define DOGLCD
#endif |
1f9fc66 accidentally reverted these changes, was that accidental? |
Description
LCDs are restarted when the SD CARD is inserted or released. From what I can gather, this is because SPI LCDs share pins with the the sd card, which introduces noise in the lines and the LCD draws gibberish.
This cannot be the case for i2c displays, and it adds a visibly long delay when:
This PR disables unnecessary LCD reinits for i2c displays.
I'm not sure if the way I detect i2c displays is the best one, I couldn't find anything more explicit
Requirements
I2C LCD and SDCARD
Benefits
Snappier UI
Configurations
Related Issues