summaryrefslogtreecommitdiff
path: root/quantum/split_common
AgeCommit message (Collapse)Author
2020-12-11Merge remote-tracking branch 'origin/master' into developQMK Bot
2020-12-11Normalise include statements in core code (#11153)Ryan
* Normalise include statements in core code * Missed one
2020-12-01[Split] Sync Timer feature (#10997)XScorpion2
A timer that is kept in sync between the halves of a split keyboard
2020-11-282020 November 28 Breaking Changes Update (#11053)James Young
* Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
2020-10-02Fix SPLIT_KEYBOARD compilation for ATMega*U2, which doesn't have VBUS/OTG ↵sol
control (#10460) Co-authored-by: s-ol <s-ol@users.noreply.github.com>
2020-07-04add SPLIT_HAND_MATRIX_GRID support (#8685)Takeshi ISHII
Co-authored-by: Danny <nooges@users.noreply.github.com>
2020-06-10Fixed slave-side keyboard half unresponsiveness (#9360)Adrian
* Fixed slave-side keyboard half unresponsiveness due to how LUFA handles USB_Disable() * changes to formatting Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
2020-06-03Move encoder_read to common location (#9003)Joel Challis
2020-05-22Fix build. (#9163)Nick Brassel
2020-05-21format code according to conventions [skip ci]QMK Bot
2020-05-21Slight speed increases for matrix scanning (#9150)Joel Challis
2020-05-21Use LUFA funcs for split_util (#8594)Joel Challis
2020-05-02Move encoder_read to common locationzvecr
2020-03-25Run clang-format manually to fix recently changed files (#8552)Joel Challis
2020-03-23Add Word Per Minute calculation feature (#8054)brickbots
* Add Word Per Minute calculation feature * Fix copyright info * Remove header from quantum.c, setup overloadable keycode inclusion for WPM, update docs * Simplify logic for keycode filtering * Adding link from summary to wpm_feature info * Update docs/feature_wpm.md Typo in function prototype example in docs Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Add WPM transport via i2c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-02-25Split - Avoid race condition during matrix_init_quantum (#8235)Joel Challis
* Avoid race condition during matrix_init_quantum * spelling is hard
2020-02-21Allow 30us matrix delay to be keyboard/user overridable (#8216)Joel Challis
* Allow 30us matrix delay to be configurable via define * Move wait logic to matrix_common * Move wait logic to matrix_common - fix wait includes
2020-02-12Align split_common/matrix.c with matrix.c (#8153)Joel Challis
2020-02-04Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)Joel Challis
* Update SPLIT_USB_TIMEOUT -500ms * Align keyboard level SPLIT_USB_TIMEOUT defaults * Align keyboard level SPLIT_USB_TIMEOUT_POLL * Review fixes
2020-01-24Update split serial code to use driver pattern (#7990)Joel Challis
* Move avr serial code to drivers * Update src+= serial.c to driver pattern
2020-01-19Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards (#7915)fauxpark
* Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards * Define diode direction for failing boards * Matching parentheses * Put onekey diode directions in top level config
2020-01-15Migrate more custom matrix 'lite' code to core (#7863)Joel Challis
* Migrate more custom matrix lite code to core * Align function names * fix up MATRIX_MASKED
2020-01-04Move some common matrix code to a common location (#7699)Joel Challis
* Move some common matrix code to a common location * Refactor some 'custom_matrix_helper' logic to use custom matrix lite * Fix build for kinesis/stapelberg - abuse of vpath was picking up matrix.c from core when custom matrix was enabled * Add validation for CUSTOM_MATRIX
2019-12-16Disable usb on slave half to resolve random 'lockup' (#7649)Joel Challis
2019-12-02Remove check for EH define (#7525)Danny
Its use in lets_split_eh was factored out in https://github.com/qmk/qmk_firmware/pull/6411
2019-11-03Remove duplicate pro_micro.h (#7246)fauxpark
2019-10-17SPLIT - Remove NO_USB_STARTUP_CHECK requirement for usb detection (#7053)Joel Challis
* Avoid NO_USB_STARTUP_CHECK - Disable USB as checks seem to enable it somehow * Update quantum/split_common/split_util.c Co-Authored-By: fauxpark <fauxpark@gmail.com> * Also remove NO_USB_STARTUP_CHECK from vitamins_included/rev1
2019-10-11ARM split - detect USB to select master/slave (#6424)Joel Challis
* Initial split refactor to allow usb master detection * Add split USB detect docs * Add SPLIT_USB_DETECT demo mode limitation * fix rebase issues * clang-format
2019-09-24ARM split - Add bootmagic/magic keycodes for setting handedness (#6545)Joel Challis
* Add docs on bootmagic/magic keycodes for setting handedness * Clang format fixes * Maintain backwards compatibility * Maintain backwards compatibility
2019-08-30clang-format changesskullY
2019-08-21AVR GPIO macro defines more readable (#5937)Takeshi ISHII
* 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.
2019-08-03[Split] Add config option for DIRECT_PINS_RIGHT (#6479)Garrett Singer
Adds support for different direct pin mappings on the halves of a split keyboard.
2019-07-23Fix MATRIX_X_PINS_RIGHT ARM compilation (#6395)Joel Challis
2019-07-20Merge pull request #6264 from zvecr/split_master_checkDanny
Allow board to override split keyboard master check
2019-07-16Remove the need to specify NUM_OF_ENCODERS for the Encoder feature (#6328)Drashna Jaelre
* Remove the need to set NUM_OF_ENCODERS Instead, calculate the size of the array, and use that instead * Add hack for split common support * Remove NUM_OF_ENCODERS from keyboard config Can be reverted, if needed
2019-07-05Small fix to allow board to override split keyboard master checkzvecr
2019-06-19Set default I2C clock speed to 100kHz for split_common (#6161)Danny
* Set default I2C clock rate for split_common boards to 100kHz Default from I2C driver is 400kHz. * Update documentation for setting I2C clock speed
2019-06-02Fix compilation error when I2C and encoder is enabled for split codeDanny Nguyen
2019-05-07[Split] fix split_common i2c backlight disabling (#3886)Rainer Clasen
slave backlight was always on - as get_backlight_level() doesn't indicate if the backlight is enabled or not. also updated the corosponding code for serial transport to stop peeking directly at 'internal' backlight_config structure.
2019-05-06[Keyboard] Sol keyboard conversion to split common (#5773)XScorpion2
* Split common conversion * Updated serial and encoder pins * Fixing default folder until r2 * Fixing oled driver on slave split common * Fixing keymap compile errors * Fixing oled inactivity timer on slave split common * Hoisted oled driver task, init, & activity to keyboard.c * Update keyboards/sol/config.h Co-Authored-By: XScorpion2 <rcalt2vt@gmail.com> * Remove TAPPING_FORCE_HOLD
2019-04-19Change split_common to use RGBLIGHT_SPLIT (#5509)Takeshi ISHII
* 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)
2019-04-03Added encoder support to split common code (#5477)XScorpion2
* Added slave encoder support to split common * Fixing handwired/xealous/rev1 compile error * Removed unnecessary ifdef
2019-03-23Add support for RGB LEDs wired directly to each half's controller (#5392)Danny
* Add support for wiring RGB LEDs for both halves directly to their respective controllers RGB LEDs for each half don't need to be chained together across the TRRS cable with this * Add split RGB LED support for serial * Update config/rules for bakingpy layout * Un-nest ifdefs for hand detection * Read RGB config state from memory instead of EEPROM for serial updates * Reuse existing LED pointer instead of creating new one
2019-03-20Fix i2c splits with >8 columns (#5454)James Churchill
2019-03-15rgblight split transfer non-eeprom config (#5396)Len Trigg
* Make rgblight_update_dword not update eeprom (we already have eeconfig_update_rgblight for that). Make split i2c keyboards transfer active rgblight config rather than eeprom saved version of rgblight config, enabling runtime changes that aren't persisted to eeprom. * prev_level and prev_rgb only store successfully transmitted values
2019-03-12Next set of split_common changes (#4974)James Churchill
* Update split_common to use standard i2c drivers * Eliminate RGB_DIRTY/BACKLIT_DIRTY * Fix avr i2c_master error handling * Fix i2c_slave addressing * Remove unneeded timeout on i2c_stop() * Fix RGB I2C transfers * Remove incorrect comment
2019-02-18Fix `quantum/split_common/matrix.c: select_col()/select_row()` (#5174)Takeshi ISHII
* 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()
2019-01-17Simplify split_common Code significantly (#4772)James Churchill
* Eliminate separate slave loop Both master and slave run the standard keyboard_task main loop now. * Refactor i2c/serial specific code Simplify some of the preprocessor mess by using common function names. * Fix missing #endif * Move direct pin mapping support from miniaxe to split_common For boards with more pins than sense--sorry, switches. * Reordering and reformatting only * Don't run matrix_scan_quantum on slave side * Clean up the offset/slaveOffset calculations * Cut undebounced matrix size in half * Refactor debouncing * Minor fixups * Split split_common transport and debounce code into their own files Can now be replaced with custom versions per keyboard using CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes * Refactor debounce for non-split keyboards too * Update handwired/xealous to build using new split_common * Fix debounce breaking basic test * Dodgy method to allow a split kb to only include one of i2c/serial SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only that driver code in the binary. SPLIT_TRANSPORT = custom (or anything else) will include neither, the keyboard must supply it's own code if SPLIT_TRANSPORT is not defined then the original behaviour (include both avr i2c and serial code) is maintained. This could be better but it would require explicitly updating all the existing split keyboards. * Enable LTO to get lets_split/sockets under the line * Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE * Remove avr-specific sei() from split matrix_setup Not needed now that slave doesn't have a separate main loop. Both sides (on avr) call sei() in lufa's main() after exiting keyboard_setup(). * Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT. * Add comments and fix formatting.
2019-01-03Add explicit eeprom include in split_commonJames Churchill
Fixes builds that set EE_HANDS.
2019-01-03Convert split_common to use generic GPIO apiJames Churchill