-
-
Notifications
You must be signed in to change notification settings - Fork 39.4k
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
Change split_common to use RGBLIGHT_SPLIT #5509
Conversation
Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results.
add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h
Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk. quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined. quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C.
…ure of rgblight.c
…eature of rgblight.c
This reverts commit 80118a6. [x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3) [x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default
This reverts commit d35069f.
This reverts commit aebddfc.
…ransaction IDs. No change in build result.
@mtei It looks like some of the split keyboards are failing to build in travis. If this is otherwise ready for testing I can give this a whirl this weekend on my redox. |
Yeah, I think that this PR depends on #5020 to be merged first. So without that, this one may fail. |
Just to clarify, the issue still occurs, with the corrected code. |
Okay, it looks like this may be a hardware issue with one of my boards. I can't reproduce it on another split keyboard, both iris keyboards, actually. Even swapping usb cables and TRRS cables. So ... yay. But that means that this should be good to go! |
@@ -280,6 +280,23 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","") | |||
CONFIG_H += $(KEYBOARD_PATH_1)/config.h | |||
endif | |||
|
|||
POST_CONFIG_H := |
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.
Is this required to work properly?
Eg, can the post_config stuff be moved so this isn't needed?
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.
This is necessary.
It is necessary to prevent unnecessary dependencies between header files between modules in lower layers.
For example, quantum/split_common/transport.c needs to define SERIAL_USE_MULTI_TRANSACTION of serial when using RGBLIGHT_SPLIT.
It is not good to solve this with serial.h and rgblight.h.
I was wrong. The issue is when switching to mode 1 (solid color). Any time you change to it, the slave half does NOT switch. |
* add I2C_slave_buffer_t to quantum/split_common/transport.c Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results. * add temporary pdhelix(Patched Helix) code * temporary cherry-pick from qmk#5020 add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * add post_config.h support to build_keyboard.mk * add quantum/rgblight_post_config.h, quantum/split_common/post_config.h Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk. quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined. quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C. * Change split_common's transport.c I2C to use the synchronization feature of rgblight.c * Change split_common's transport.c serial to use the synchronization feature of rgblight.c * test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix * Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix" This reverts commit 80118a6. [x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3) [x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default * Test End, Revert "temporary cherry-pick from qmk#5020" This reverts commit d35069f. * Test End, Revert "add temporary pdhelix(Patched Helix) code" This reverts commit aebddfc. * temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test. add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * Passed the travis-ci test. Revert "temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test." This reverts commit 647c0a9. * update docs/config_options.md * update split_common/transport.c, improves maintainability of serial transaction IDs. No change in build result. * temporary cherry-pick from qmk#5020 * fix build fail keebio/iris/rev3:default * fix build fail lets_split_eh/eh:default * Revert "temporary cherry-pick from qmk#5020" This reverts commit be48ca1. * temporary cherry-pick from qmk#5020 (0.6.336) * Revert "temporary cherry-pick from qmk#5020 (0.6.336)" This reverts commit 978d26a. * temporary cherry-pick from qmk#5020 (0.6.336)
I am sorry. I'm debugging now. |
Well, I saw it earlier, but couldn't reliably reproduce. Unfortunately, now I can, for whatever reason. And I wanted to make you aware of the issue, so it could get fixed. Other than this issue, it work perfectly. |
Switching to mode 1 is reliable for me on my redox, (at least when switching via RGB_MOD, both regular and shifted). Are you changing mode programmatically, or via a key that goes straight to the mode, or does it do it for you via RGB_MOD as well? |
@Lenbok I'm using The base layer is solid, not animated... and triggers this. If I change the base layer to be animated instead of solid, there is no issue. You can see my code here: https://github.com/qmk/qmk_firmware/blob/master/users/drashna/rgb_stuff.c#L278-L337 |
Even with the patch, I can reproduce the issue still. And I can reliably reproduce it on 2 out of three Iris boards (the 3rd has backlight enabled, and doesn't cause the issue), and on both my orthodox rev1 and rev3. It seems to be worse when the layers change rapidly. |
* add I2C_slave_buffer_t to quantum/split_common/transport.c Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results. * add temporary pdhelix(Patched Helix) code * temporary cherry-pick from qmk#5020 add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * add post_config.h support to build_keyboard.mk * add quantum/rgblight_post_config.h, quantum/split_common/post_config.h Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk. quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined. quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C. * Change split_common's transport.c I2C to use the synchronization feature of rgblight.c * Change split_common's transport.c serial to use the synchronization feature of rgblight.c * test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix * Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix" This reverts commit 80118a6. [x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3) [x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default * Test End, Revert "temporary cherry-pick from qmk#5020" This reverts commit d35069f. * Test End, Revert "add temporary pdhelix(Patched Helix) code" This reverts commit aebddfc. * temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test. add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * Passed the travis-ci test. Revert "temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test." This reverts commit 647c0a9. * update docs/config_options.md * update split_common/transport.c, improves maintainability of serial transaction IDs. No change in build result. * temporary cherry-pick from qmk#5020 * fix build fail keebio/iris/rev3:default * fix build fail lets_split_eh/eh:default * Revert "temporary cherry-pick from qmk#5020" This reverts commit be48ca1. * temporary cherry-pick from qmk#5020 (0.6.336) * Revert "temporary cherry-pick from qmk#5020 (0.6.336)" This reverts commit 978d26a. * temporary cherry-pick from qmk#5020 (0.6.336)
* add I2C_slave_buffer_t to quantum/split_common/transport.c Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results. * add temporary pdhelix(Patched Helix) code * temporary cherry-pick from qmk#5020 add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * add post_config.h support to build_keyboard.mk * add quantum/rgblight_post_config.h, quantum/split_common/post_config.h Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk. quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined. quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C. * Change split_common's transport.c I2C to use the synchronization feature of rgblight.c * Change split_common's transport.c serial to use the synchronization feature of rgblight.c * test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix * Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix" This reverts commit 80118a6. [x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3) [x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default * Test End, Revert "temporary cherry-pick from qmk#5020" This reverts commit d35069f. * Test End, Revert "add temporary pdhelix(Patched Helix) code" This reverts commit aebddfc. * temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test. add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * Passed the travis-ci test. Revert "temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test." This reverts commit 647c0a9. * update docs/config_options.md * update split_common/transport.c, improves maintainability of serial transaction IDs. No change in build result. * temporary cherry-pick from qmk#5020 * fix build fail keebio/iris/rev3:default * fix build fail lets_split_eh/eh:default * Revert "temporary cherry-pick from qmk#5020" This reverts commit be48ca1. * temporary cherry-pick from qmk#5020 (0.6.336) * Revert "temporary cherry-pick from qmk#5020 (0.6.336)" This reverts commit 978d26a. * temporary cherry-pick from qmk#5020 (0.6.336)
* add I2C_slave_buffer_t to quantum/split_common/transport.c Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results. * add temporary pdhelix(Patched Helix) code * temporary cherry-pick from qmk#5020 add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * add post_config.h support to build_keyboard.mk * add quantum/rgblight_post_config.h, quantum/split_common/post_config.h Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk. quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined. quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C. * Change split_common's transport.c I2C to use the synchronization feature of rgblight.c * Change split_common's transport.c serial to use the synchronization feature of rgblight.c * test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix * Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix" This reverts commit 80118a6. [x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3) [x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default * Test End, Revert "temporary cherry-pick from qmk#5020" This reverts commit d35069f. * Test End, Revert "add temporary pdhelix(Patched Helix) code" This reverts commit aebddfc. * temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test. add new version(qmk#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * Passed the travis-ci test. Revert "temporarily cherry-pick from qmk#5020 to see if it passes the travis-ci test." This reverts commit 647c0a9. * update docs/config_options.md * update split_common/transport.c, improves maintainability of serial transaction IDs. No change in build result. * temporary cherry-pick from qmk#5020 * fix build fail keebio/iris/rev3:default * fix build fail lets_split_eh/eh:default * Revert "temporary cherry-pick from qmk#5020" This reverts commit be48ca1. * temporary cherry-pick from qmk#5020 (0.6.336) * Revert "temporary cherry-pick from qmk#5020 (0.6.336)" This reverts commit 978d26a. * temporary cherry-pick from qmk#5020 (0.6.336)
This PR needs to merge #5020 first.
If you want to test the behavior of this PR, please temporarily cherry pick 647c0a9.
Description
Change split_common to synchronize rgblight using RGBLIGHT_SPLIT.
Enabling rgblight implicitly also enables RGBLIGHT_SPLIT.
(see quantum quantum/split_common/post_config.h)
Enabling rgblight does not enable RGBLIGHT_SPLIT.
If necessary, define RGBLIGHT_SPLIT in config.h of the keyboard.
(see quantum quantum/split_common/post_config.h)
Types of Changes
Checklist