* Add target 'build-for-compare' to `build_keyboard.mk`
The `build-for-compare` target provides an easy way to check the md5 checksum of the generated binary.
You can easily see if there is any change in the generated binaries between the two versions, as in the example below.
```
$ git checkout 0.11.0
M build_keyboard.mk
M tmk_core/rules.mk
Note: checking out '0.11.0'.
HEAD is now at c66df1664 2020 November 28 Breaking Changes Update (#11053)
$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = 01f603dc46bcf9094d7e106831d8f5b1
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba
$ git checkout 0.11.1
M build_keyboard.mk
M tmk_core/rules.mk
Previous HEAD position was c66df1664 2020 November 28 Breaking Changes Update (#11053)
HEAD is now at cc08e3082 nix-shell: add milc dependency (#11086)
$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = d848383adfd7463b138c6da179cf1436
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba
```
* make builds reproducable by default
* update build_keyboard.mk: remove 'build-for-compare' target
* GNU make (3.81) on macOS 10.14(Mojave) does not have the 'undefine' directive.
* Adopted fauxpark's suggestion.
* Update tmk_core/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* update tmk_core/rules.mk
* fix tmk_core/rules.mk
Co-authored-by: Zach White <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* update keyboards/helix/rev2/keymaps/five_rows/rules.mk: oled selection, led animation selection
* add OLED_UPDATE_INTERVAL support into keyboards/helix/rev2/keymaps/five_rows/oled_display.c
Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks.
* Add 'HELIX=debug/no-debug' option into 'helix/rev2/keymaps/five_rows/rules.mk'
* [Keymap] fix and update helix/rev3_5rows:five_rows
* fix rgblight animation selection
* use `DEBUG_MATRIX_SCAN_RATE_ENABLE` insted of keyboard_post_init_user_scan.c
* Change the initial value of the ENCODER_ENABLE to 'no' in 'keymaps/five_rows/rules.mk'
* Add 'HELIX=debug/no-debug' option into 'rev3_5rows/keymaps/five_rows/rules.mk'
* Add '#define OLED_UPDATE_INTERVAL 100' 'rev3_5rows/keymaps/five_rows/config.h'
* add LED_ANIMATIONS_LEVEL macro into rev3_5rows/keymaps/five_rows/
* Change OLED_UPDATE_INTERVAL value in rev3_5rows/keymaps/five_rows/config.h
When `rgblight.c` includes `rgblight_breathe_table.h`, the search order should be as follows.
* `keyboards/KEYBOARD/keymaps/USER/rgblight_breathe_table.h`
* `users/USER/rgblight_breathe_table.h`
* `quantum/rgblight_breathe_table.h`
However, the current implementation was wrong, so I fixed it.
* Makes the OLED driver used by the helix:five_rows keymap switchable.
* use TOP/drivers/oled/oled_driver.c
`make HELIX=stdole helix:five_rows`
* use helix/local_drivers/ssd1306.c
`make HELIX=oled helix:five_rows`
* Separated the OLED related code from keymap.c and moved it to oled_display.c.
* scan rate without OLED
* make HELIX=verbose,dispoff,scan helix/rev2:five_rows
use Helix original code
text data bss dec hex filename
18880 58 235 19173 4ae5 .build/helix_rev2_five_rows.elf
matrix scan frequency: 1590
* make HELIX=verbose,dispoff,scan,sc helix/rev2:five_rows
use split_common code
text data bss dec hex filename
18554 40 231 18825 4989 .build/helix_rev2_five_rows.elf
matrix scan frequency: 1202
* scan rate with helix/local_drivers/ssd1306.c
* make HELIX=verbose,dispoff,scan,oled helix/rev2:five_rows
use Helix original code
text data bss dec hex filename
24048 196 342 24586 600a .build/helix_rev2_five_rows.elf
matrix scan frequency: 739
* make HELIX=verbose,dispoff,scan,sc,oled helix/rev2:five_rows
use split_common code
text data bss dec hex filename
23750 176 338 24264 5ec8 .build/helix_rev2_five_rows.elf
matrix scan frequency: 642
* scan rate with drivers/oled/oled_driver.c
* make HELIX=verbose,dispoff,scan,stdole helix/rev2:five_rows
use Helix original code
text data bss dec hex filename
24590 210 798 25598 63fe .build/helix_rev2_five_rows.elf
matrix scan frequency: 293
* make HELIX=verbose,dispoff,scan,sc,stdole helix/rev2:five_rows
use split_common code
text data bss dec hex filename
24290 190 794 25274 62ba .build/helix_rev2_five_rows.elf
matrix scan frequency: 277
* clean up helix/rev2/keymaps/five_rows/keymap.c
* update five_rows/oled_display.c
* update helix/rev2/keymaps/five_rows/keymap.c: remove LAYOUT_kc()
* Ported the keymap from helix/rev2:five_rows to helix/rev3_5rows:five_rows.
* update five_rows/oled_display.c
* add License comment
* fix link in docs/ja/feature_split_keyboard.md
* fix link in docs/ja/faq_build.md
* fix link in docs/ja/faq_general.md
* fix link in docs/ja/faq_keymap.md
* fix link in docs/ja/how_a_matrix_works.md
* fix link in docs/ja/reference_glossary.md
* dipsw test on helix/rev2/sc/back:five_rows
* add peek_matrix() to matrix_common.c
* add DIP_SWITCH_MATRIX_GRID support to quantum/dip_switch.c
* update docs/feature_dip_switch.md about DIP_SWITCH_MATRIX_GRID
* Test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"
This reverts commit 6d4304c74557597c9fb4d324f79c3ae4793ae874.
* The TAGs of the original document has been updated to facilitate future verification.
* docs/ja/driver_installation_zadig.md
* docs/ja/feature_audio.md
* docs/ja/feature_auto_shift.md
* docs/ja/feature_bluetooth.md
* docs/ja/hardware_avr.md
* docs/ja/hardware_drivers.md
* docs/ja/getting_started_make_guide.md
* The TAG of the original document has been updated to facilitate future verification.
* The TAG of the original document has been updated to facilitate future verification.
* update docs/ja/feature_tap_dance.md
* The TAG of the original document has been updated to facilitate future verification.
* The TAG of the original document has been updated to facilitate future verification.
* The TAG of the original document has been updated to facilitate future verification.
* Updated the Japanese translation of newbs_learn_more_resources.md
Updated the Japanese translation of newbs_learn_more_resources.md to 0.9.0.
* update docs/ja/newbs_learn_more_resources.md
* update ja/newbs_learn_more_resources.md
* Fixed the indentation of the sample code in docs/feature_pointing_device.md sample.
* Update docs/feature_pointing_device.md
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* dipsw test on helix/rev2/sc/back:five_rows
* bug fix quantum/dip_switch.c
* test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"
This reverts commit 4b13ebb996e1c4997e6deb1fa3b3227db5fa9661.
* dipsw test on helix/rev2/sc/back:five_rows
* update quantum/dip_switch.c
* test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"
This reverts commit bf99ace095528ad65c531229bcf5ece037dda595.
* added the description of the reading order of the rules.mk files.
* Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove unnecessary import of rgblight.h in tmk_core/protocol/*/*.c
* tmk_core/protocol/chibios/main.c
* tmk_core/protocol/lufa/lufa.c
see #8380 for tmk_core/protocol/vusb/main.c.
* Remove '#include "rgblight.h"' from tmk_core/protocol/vusb/main.c.
Since #7773 caused a build error for `mxss:default`, I made similar changes to 'keyboards/mxss/rgblight.h' as #7773 did to 'quantum/rgblight.h'.
**This commit does not change the build result.**
Testing script
```shell
# build on versions earlier than PR #7773
git checkout 0.8.24
echo master > /tmp/master_md5.txt
make mxss:default:clean
make mxss:default
md5 mxss_default.hex >> /tmp/master_md5.txt
# build on this commit
git checkout fix-keyboards-mxss-rgblight.h
echo fix-keyboards-mxss-rgblight.h > /tmp/branch_md5.txt
make mxss:default:clean
make mxss:default
md5 mxss_default.hex >> /tmp/branch_md5.txt
diff -u /tmp/master_md5.txt /tmp/branch_md5.txt
```
Test result:
```
--- /tmp/master_md5.txt 2020-03-12 05:51:39.000000000 +0900
+++ /tmp/branch_md5.txt 2020-03-12 05:51:49.000000000 +0900
@@ -1,2 +1,2 @@
-master
+fix-keyboards-mxss-rgblight.h
MD5 (mxss_default.hex) = 3034b2504d0c7fc6bd8bf1dffb6b8486
```
* Moved contents of rgblight_reconfig.h to rgblight_post_config.h.
In #3582, rgblight_reconfig.h had to be newly created. Now, the build system of qmk_firmware has a post_cofig feature, so that what was done in rgblight_reconfig.h can now be realized in rgblight_post_config.h.
**This commit does not change the build result.**
Testing script
```shell
# build on master
git checkout master
echo master > /tmp/master_md5.txt
# RGBLIGHT_ENABLE = no
make HELIX=verbose helix/rev2:default:clean
make HELIX=verbose helix/rev2:default
md5 helix_rev2_default.hex >> /tmp/master_md5.txt
# RGBLIGHT_ENABLE = yes, with animations
make HELIX=verbose helix/rev2/back:default:clean
make HELIX=verbose helix/rev2/back:default
md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt
# RGBLIGHT_ENABLE = yes, without animations
make HELIX=verbose,no_ani helix/rev2/back:default:clean
make HELIX=verbose,no_ani helix/rev2/back:default
md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt
# build on refactor_rgblight_reconfig.h
git checkout refactor_rgblight_reconfig.h
echo refactor_rgblight_reconfig.h > /tmp/branch_md5.txt
# RGBLIGHT_ENABLE = no
make HELIX=verbose helix/rev2:default:clean
make HELIX=verbose helix/rev2:default
md5 helix_rev2_default.hex >> /tmp/branch_md5.txt
# RGBLIGHT_ENABLE = yes, with animations
make HELIX=verbose helix/rev2/back:default:clean
make HELIX=verbose helix/rev2/back:default
md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt
# RGBLIGHT_ENABLE = yes, without animations
make HELIX=verbose,no_ani helix/rev2/back:default:clean
make HELIX=verbose,no_ani helix/rev2/back:default
md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt
diff -u /tmp/master_md5.txt /tmp/branch_md5.txt
```
Test result:
```
--- /tmp/master_md5.txt 2020-01-03 15:42:22.000000000 +0900
+++ /tmp/branch_md5.txt 2020-01-03 15:42:42.000000000 +0900
@@ -1,4 +1,4 @@
-master
+refactor_rgblight_reconfig.h
MD5 (helix_rev2_default.hex) = f360032edd522448366d471d8f4f8181
MD5 (helix_rev2_back_default.hex) = 0c663acc6cccc44476b3b969ad22a48f
MD5 (helix_rev2_back_default.hex) = e66b1195ff6d38e6e22c975b8ae42fd3
```
* Expressions that are too long are difficult to read, so wrap them.
* Edit the expression again
* remove `defined(RGBLIGHT_ANIMATIONS)` in `tmk_core/common/*/suspend.c`, `tmk_core/protocol/*/main.c`
move contents of rgblight_reconfig.h to rgblight.h.
The following changes were made to rgblight.h.
```diff
+#ifdef RGBLIGHT_USE_TIMER
void rgblight_task(void);
void rgblight_timer_init(void);
void rgblight_timer_enable(void);
void rgblight_timer_disable(void);
void rgblight_timer_toggle(void);
+#else
+#define rgblight_task()
+#define rgblight_timer_init()
+#define rgblight_timer_enable()
+#define rgblight_timer_disable()
+#define rgblight_timer_toggle()
+#endif
```
The following changes were made to tmk_core/common/avr/suspend.c, tmk_core/common/chibios/suspend.c, tmk_core/protocol/chibios/main.c, tmk_core/protocol/lufa/lufa.c, tmk_core/protocol/vusb/main.c.
```diff
-# ifdef RGBLIGHT_ANIMATIONS
rgblight_timer_enable();
-# endif
```
```diff
-#if defined(RGBLIGHT_ANIMATIONS) && defined(RGBLIGHT_ENABLE)
+#if defined(RGBLIGHT_ENABLE)
rgblight_task();
#endif
```
* remove 'defined(RGBLIGHT_ANIMATIONS)' in tmk_core/common/keyboard.c
Co-authored-by: Joel Challis <git@zvecr.com>
* Update japanese translation of newbs.md and related documents.
* document link id change
* add `ja/` in each link
`[xxx](yyy.md)` --> `[xxx](ja/yyy.md)`
* copy docs/ja/_summary.md from umi-umi's #7248 and fix it
* A little easier to read the definition of the GPIO control macro for AVR.
No change in build result.
* Changed to not use GNU statement expression extension.
No change in build result.
* Modified split_common/serial.c to use qmk_firmware standard GPIO control macro.
No change in build result.
* fix PE6 -> E6
* remove some space
* add some comment to config_common.h
* Changed split_common/serial.c to use a newer version of qmk_firmware standard GPIO control macro.
* add rgblight_set_effect_range()
* implement effect range
* Arrange the order of function list in rgblight.h .
* update docs/feature_rgblight.md
* fix RGBLIGHT_RAINBOW_SWIRL_RANGE default value
* add example code about Utility Functions
* add example code about direct operation functions
* When RGBLIGHT_SPLIT is defined, the following function has no meaning and is invalidated.
* rgblight_setrgb_master(r, g, b)
* rgblight_setrgb_slave(r, g, b)
* rgblight_sethsv_master(h, s, v)
* rgblight_sethsv_slave(h, s, v)
* add temporary test code for rgblight_set_effect_range
* fix rgblight_effect_knight() bug
* Test End. Revert "add temporary test code for rgblight_set_effect_range"
This reverts commit 5680cddd012d68b2db75a532862a7fef250f8973.
The insertion point for `$(patsubst %.c,%.clib,$(LIB_SRC))` must be after all normal `SRC += ..` . I modified it to be so.
Because LIB_SRC and SRC are assumed to be used in pairs. Similarly, QUANTUM_LIB_SRC and QUANTUM_SRC are assumed to be used in pairs.
* If RGBLIGHT_EFFECT_BREATHE_CENTER is undefined, use fixed breathe table instead of exp() and sin()
* Change rgblight breathing table size to be easily selectable.
add RGBLIGHT_BREATHE_TABLE_SIZE macro for customize breathing effect.
* 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 #5020
add new version(#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 80118a6bbd3d9fc4c7797fef0c34bc67aa73aa98.
[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 #5020"
This reverts commit d35069f68bda0c50370442a5c7aae60c2f4ce5c0.
* Test End, Revert "add temporary pdhelix(Patched Helix) code"
This reverts commit aebddfc1a879796afae297ef0723a4fe73af3660.
* temporarily cherry-pick from #5020 to see if it passes the travis-ci test.
add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h
* Passed the travis-ci test. Revert "temporarily cherry-pick from #5020 to see if it passes the travis-ci test."
This reverts commit 647c0a9755eb6a05f76d09b2d59bce67b85a841f.
* 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 #5020
* fix build fail keebio/iris/rev3:default
* fix build fail lets_split_eh/eh:default
* Revert "temporary cherry-pick from #5020"
This reverts commit be48ca1b4515366a097af8dd1cd7b28b7ee09947.
* temporary cherry-pick from #5020 (0.6.336)
* Revert "temporary cherry-pick from #5020 (0.6.336)"
This reverts commit 978d26a8b3cf0acc485838a7d76d6128b77c630c.
* temporary cherry-pick from #5020 (0.6.336)
* add temporary file that is rgblight.c call graph
* add rgblight_update_hook()
* update rgblight-call-graph.dot (temporary file)
* add more hook point
* add TODO comment
* temporary Revert "add TODO comment"
This reverts commit df6165aac9b3a31d1d3e31ce52aadc134b84eac2.
* temporary Revert "add more hook point"
This reverts commit 64592b06f3bcdaac47c59f922018a273bef76776.
* temporary Revert "add rgblight_update_hook()"
This reverts commit 432b74c912ed4333e6633e20a1bcda10c6a10eaf.
* add rgblight_update_hook()
* add more hook point
* add TODO comment
* implement rgblight_update_hook()
* remove rgblight_update_hook(), add RGBLIGHT_SPLIT_SET_CHANGE_XXXX
rgblight_update_hook() is too large.
change to simple flag setting.
* shrink rgblight_config_t
* implement rgblight_update_sync()
Note: The animation synchronization process has not been implemented yet.
* update quantum/rgblight-call-graph.dot (temporary file)
* rmove quantum/rgblight-call-graph.dot (temporary file)
* update rgblight.c
* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .
* fix build break rgblight_update_sync() when all animation off
* fix quantum/rgblight.c:rgblight_disable_XX() add RGBLIGHT_SPLIT_SET_CHANGE_MODE
* quantum/rgblight.c change code order: move rgblight_update_sync()
* add mode_base_table[] to quantum/rgblight.c
* quantum/rgblight.c use mode_base_table[] and rgblight_status.base_mode
* quantum/rgblkght.c animation timer integration
* quantum/rgblkght.c add animation sync for split keyboard
* fix mode_base_table[] and snake effect
* fix build break keyboards/mxss.
keyboards/mxss's local rgblight.c need old version rgblight.h
* rgblight.c: fix animation sync
* quantum/rgblight.c: fix snake effect sync
* quantum/rgblight.c: animation sync interverl 30 sec
* quantum/rgblight.c: fix rgblight_effect_rainbow_swirl() and rgblight_effect_knight()
* quantum/rgblight.c: add macro RGBLIGHT_SPLIT_ANIMATION
* cherry-pick from 'rgblight_modes.h sample implementation'
* fix RGBLIGHT_SPLIT_ANIMATION check position
* Update temporary code in Helix keyboard 'five_rows' keymap to test rgblight.c
* Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled.
* Changed to rgblight_sethsv_eeprom_helper() for easier reading.
* add fail-safe code to quantum/rgblight.c:rgblight_task(),rgblight_timer_enable()
* remove temporary code in Helix keyboard 'five_rows' keymap
* quantum/rgblight.c: add split-keyboard master side sync functions
add functions:
uint8_t rgblight_get_change_flags(void);
void rgblight_clear_change_flags(void);
void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo);
change function:
void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom);
* Change rgblight_update_sync() to use write_to_eeprom.
* remove TODO comment from quantum/rgblight.h
* Revert "fix build break keyboards/mxss."
This reverts commit 90b9a1aa7d8af226751500e49e3ea0214cc4e024.
(Separated this change into the newly opened PR #5461.)
* Revert "Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled."
This reverts commit b61004e63e82cf5334cee4def4ba10cffa88885f.
* update quantum/rgblight.c: Code size reduction when not using RGBLIGHT_SPLIT.
* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .
* add temporary pdhelix(Patched Helix) code
* Add temporary code to split_common/transport.c to test rgblight.c.
* Finish testing rgblight.c with helix keyboard.
Revert "Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c ."
This reverts commit 0bf81a4723a977adc0cb09b4272ee5c9b4f2bbbb.
* Finish testing rgblight.c with quantum/split_common code.
Revert "Add temporary code to split_common/transport.c to test rgblight.c."
This reverts commit 71db3e24eef40d4c455fb9fd1664e4487c9d927a.
* remove temporary pdhelix(Patched Helix) code
This reverts commit 5287e51a394741bcb6028c7cfc0dd0c984645f76.
* Added description of RGBLIGHT_SPLIT macro to docs/feature_rgblight.md.
* add RGBLIGHT_SPLIT_SET_CHANGE_HSVS to rgblight_init()
* Changed to restart animation only when changing mode.
When changing hue, sat and val, the animation is not restarted and continues.
* build size-check enhancement
Changed to display a warning when the free size of compilation result is less than 512 bytes.
* update message.mk
* add SIZE_MARGIN variable, change default margin 512 to 1024
for Example.
```
$ make SIZE_MARGIN=2048 crkbd:all
$ make crkbd:all ## mergin is 1024
```
* Update message.mk
change message to ‘approaching the maximum’
Co-Authored-By: mtei <2170248+mtei@users.noreply.github.com>
This PR is cherry-pick from 90b9a1aa7d8a in PR #5020.
@MxBlu copied quantum/rgblight.c to keyboards/mxss/rgblight.c on July 8, 2018. At that time, I think it would be better to copy quantum/rgblight.h at the same time.
Because if someone makes a change to `quantum/rgblight.[ch]` that is incompatible with the past, it may cause problems with the compilation of keyboards/mxss.
(Like when I changed the prototype of the `rgblight_effect_XXX()` functions of rgblight.c in PR #5020.)
* rgblight.c: add RGBLIGHT_LED_MAP support
* add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP
* Test end. Revert "add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP"
This reverts commit e7488d6f7338460b533d7d19a09deccb011000bf.
* update docs/feature_rgblight.md
* led_map[] move to PROGMEM
* add temporary pdhelix(Patched Helix) code
* add test code into quantum/split_common/matrix.c
* add test code into keyboards/handwired/pdhelix/
* Revert "add test code into keyboards/handwired/pdhelix/"
This reverts commit 9ed98f0797ddd962c99756689fc4ecb4cd067d3d.
* Revert "add test code into quantum/split_common/matrix.c"
This reverts commit 1876d3ed69f6c213153a9f6476192be839f16c1f.
* Revert "add temporary pdhelix(Patched Helix) code"
This reverts commit 41ac92b814e3f894eaf85bc3e5bb945895342fa8.
* fix quantum/split_common/matrix.c: select_col()/select_row()
I think `quantum.h` should contain only API declarations that `quantum.c` provides externally. `rgb.h` contains function weak definitions. This should not be in `quantum.h`.
* Add provisional Helix implementation to test the quantum/split_common.
* copy keyboards/helix/serial.[ch] to quantum/split_common/
* Make serial.c a pure driver.
Remove buffer name and buffer size from serial.c. They should be placed in the caller(matrix.c, split_utils.c).
* remove quantum/split_common/serial_backward_compatibility.h
* Changed array serial_master_buffer to structure serial_m2s_buffer.
* Changed array serial_slave_buffer to structure serial_s2m_buffer.
* Change keyboards/miniaxe/matrix.c
I also made changes to quantum/split_comon/matrix.c to keyboards/miniaxe/matrix.c.
Note: I contacted @ka2hiro, creator of miniaxe, and I got permission to change keyboards/miniaxe/matrix.c.
* update history comment in quantum/split_common/serial.c
* Revert "Add provisional Helix implementation to test the quantum/split_common."
This reverts commit 168c82ef82c88e79979d9796bab9cc819cc2f685.
* fix keyboards/miniaxe/matrix.c, quantum/split_common/matrix.c
avr-gcc 4.9.[23] report error.
avr-gcc 5.4.0, avr-gcc 7.3.0 pass.
It is funny.
* update comment quantum/split_common/serial.c
* Reserve RGBLIGHT_SPLIT macro in quantum/split_common
* add temporary compile test shell script
* Extended support of SKIP_VERSION to make invariant compile results during testing.
* build_keyboard.mk, tmk_core/rules.mk: add LIB_SRC, QUANTUM_LIB_SRC support
Support compiled object enclosed in library.
e.g.
```
LIB_SRC += xxxx.c
xxxx.c --> xxxx.o ---> xxxx.a
```
* remove 'ifdef/ifndef USE_I2C' from quantum/split_common/{i2c|serial}.c
* add SKIP_DEBUG_INFO into tmk_core/rules.mk
When SKIP_DEBUG_INFO=yes is specified, do not use the -g option at compile time.
* tmk_core/rules.mk: Library object need -fno-lto
* add SKIP_DEBUG_INFO=yes
* remove temporary compile test shell script
* add '#define SOFT_SERIAL_PIN D0' to keyboards/lets_split/rev?/config.h
* quantum/split_common/serial.c: Changed not to use USE_I2C.
The new simple API can be selected.
Previous version, can select two way.
* use old API (compatible with let's split serial.c)
* use new API (multi-type transaction)
This version, can select three way.
* use old API (compatible with let's split serial.c)
* use new API (single-type transaction)
* use new API (multi-type transaction)
There is no change in the code generated by this change.
* helix/serial.c add support PD1,PD3,PE6 and configuration simplify
* Add comment about ATmega32U4 I2C
* Add compile time check for ATmega32U4 I2C
* change TAB code to 8 SPACE code
* Helix serial.c PORTD,PD0 test. OK
OK PD0
- PD1
OK PD2
- PD3
- PE6
* Helix serial.c PORTD,PD1 test. OK
OK PD0
OK PD1
OK PD2
- PD3
- PE6
* Helix serial.c PORTD,PD3 test. OK
OK PD0
OK PD1
OK PD2
OK PD3
- PE6
* Helix serial.c PORTE,PD6 test. OK
OK PD0
OK PD1
OK PD2
OK PD3
OK PE6
* Helix serial.c: PD0,PD1,PD3,PE6 all test end
* Helix serial.c: rename SOFT_SERIAL_PORT to SOFT_SERIAL_PIN
* Helix serial.c add debug code
* Helix serial.c: add transaction ID range check
* Helix serial.c debug code update
* Helix serial.c debug code update
* Helix serial.c: Strict checking of the value of tid.
* adjust the delay of serial.c
* Helix serial.c: remove debug code
* remove EXTRAFLAGS += -DCONSOLE_ENABLE from five_rows/rules.mk
tmk_core/common.mk has
>ifeq ($(strip $(CONSOLE_ENABLE)), yes)
> TMK_COMMON_DEFS += -DCONSOLE_ENABLE
* Fix error handling in split_scomm.c
* add some comment to serial.c
* add some comment about SELECT_SOFT_SERIAL_SPEED
rgblight_effect_alternating (void) calls rgblight_sethsv_at () RGBLED_NUM times. As a result, rgblight_set () is called RGBLED_NUM + 1 times. This is wasteful processing.
* Helix: make rgblight modes selectable.
No change in build result.
* edit the comment of helix/rev2/keymaps/default/keymap.c
* Helix led_test keymap: reduced the size.
* add 'mavrdude' target into tmk_core/avr.mk
I made it a little convenient when writing the same binary to multiple Pro Micro.
* rename target name 'mavrdude' to 'avrdude-loop'
* modify docs/flashing.md about avrdude-loop
* mdify docs/flashing.md again
* modifi docs/flashing.md 3rd
* add temporary test code rgblight-macro-test1.[ch]
* rgblight.h : mode auto numberring and auto generate mode name symbol
No change in build result.
* rgblight.c use RGBLIGHT_MODE_xxx symbols
No change in build result.
* quantum.c use RGBLIGHT_MODE_xxx symbols
No change in build result.
* fix build break. when RGB_MATRIX_ENABLE defined
* add temporary test code rgblight-macro-test2.[ch]
* modify rgblight_mode_eeprom_helper() and rgblight_sethsv_eeprom_helper()
* modify rgblight_task()
* configurable each effect compile on/off in config.h
* update docs/feature_rgblight.md
* fix conflict. docs/feature_rgblight.md
* remove temporary test code rgblight-macro-test*.[ch]
* fix comment typo.
* remove old mode number from comment
* update docs/feature_rgblight.md about effect mode
* Revert "update docs/feature_rgblight.md about effect mode"
This reverts commit 43890663fcc9dda1899df7a37d382fc38b1a6d6d.
* some change docs/feature_rgblight.md
* fix typo
* docs/feature_rgblight.md update: revise mode number table