-
-
Notifications
You must be signed in to change notification settings - Fork 38.9k
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
[Bug] Split with I2C protocol + Oled does not compile #21570
Comments
This is expected behaviour. The slave MCU cannot simultaneously be slave to the master MCU, and master to its OLED. You can only use the serial transport if you want OLEDs. |
I was able to use oled before while using the i2c protocol with versions before .21.0 you can use an oled with a split that utlizes the i2c protocol however I don't think you can use 2 separate oleds. your slave MCU can not control the oled but your master can for one of the halves (or both did not try that yet). The issue was implicit declaration of function 'is_keyboard_master' inside the updated oled_driver.c .drivers/oled/oled_driver.c |
I do see |
Yea, I added the
so we don't use the header file with the SPI. Also did a pull request for the edited file. :D it is working on my side and current device is functioning. |
I came here with the exact same issue and just wanted to confirm to that this is indeed a bug/regression, because now you basically can't use an oled and have the two halves use i2c for the matrix, which is common in my experience. I think you two (@fauxpark and @t0kies) definitely got to the bottom of it as I was able to get my keyboards' firmware to compile by adding Looking forward to the PR being merged. Thank you both! |
Fixed in #21571 |
Describe the Bug
It seems like you can not compile a split keyboard using the I2C protocol when you add an Oled feature.
I was able to replicate this issue with multiple split keyboards that utilize the I2C by just enabling the Oled feature in the info.json or rules.mk.
Compiling: drivers/oled/oled_driver.c drivers/oled/oled_driver.c: In function 'oled_init': drivers/oled/oled_driver.c:292:10: error: implicit declaration of function 'is_keyboard_master' [-Werror=implicit-function-declaration] 292 | if (!is_keyboard_master()) { | ^~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors [ERRORS]
Keyboard Used
No response
Link to product page (if applicable)
No response
Operating System
Fedora Linux 38
qmk doctor Output
Is AutoHotKey / Karabiner installed
Other keyboard-related software installed
none
Additional Context
This issue is specific to version 0.21 and above
The text was updated successfully, but these errors were encountered: