summaryrefslogtreecommitdiffstats
path: root/quantum/split_common
Commit message (Collapse)AuthorAgeFilesLines
* Extensible split data sync (#11930)Nick Brassel2021-06-187-420/+1062
| | | | | | | | | | | | | | | | | | | | | | | | * Extensible split data sync capability through transactions. - Split common transport has been split up between the transport layer and data layer. - Split "transactions" model used, with convergence between I2C and serial data definitions. - Slave matrix "generation count" is used to determine if the full slave matrix needs to be retrieved. - Encoders get the same "generation count" treatment. - All other blocks of data are synchronised when a change is detected. - All transmissions have a globally-configurable deadline before a transmission is forced (`FORCED_SYNC_THROTTLE_MS`, default 100ms). - Added atomicity for all core-synced data, preventing partial updates - Added retries to AVR i2c_master's i2c_start, to minimise the number of failed transactions when interrupts are disabled on the slave due to atomicity checks. - Some keyboards have had slight modifications made in order to ensure that they still build due to firmware size restrictions. * Fixup LED_MATRIX compile. * Parameterise ERROR_DISCONNECT_COUNT.
* Use single memcmp to determine if matrix changed. (#13064)Nick Brassel2021-06-091-39/+30
| | | | | | | * Use memcmp to determine if matrix changed. * Firmware size issues. * Add documentation for the lack of need of MATRIX_ROW_PINS/MATRIX_COL_PINS, when overriding low-level matrix functions.
* Add weak refs on reading rows/cols. (#13062)Nick Brassel2021-06-011-9/+9
|
* run: qmk cformat --core-onlyJames Young2021-05-291-17/+17
|
* matrix: wait for row signal to go HIGH for every row (#12945)Michael Stapelberg2021-05-201-6/+2
| | | | | | | | | | | | | | | | I noticed this discrepancy (last row of the matrix treated differently than the others) when optimizing the input latency of my keyboard controller, see also https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/ Before this commit, when tuning the delays I noticed ghost key presses when pressing the F2 key, which is on the last row of the keyboard matrix: the dead_grave key, which is on the first row of the keyboard matrix, would be incorrectly detected as pressed. After this commit, all keyboard matrix rows are interpreted correctly. I suspect that my setup is more susceptible to this nuance than others because I use GPIO_INPUT_PIN_DELAY=0 and hence don’t have another delay that might mask the problem.
* Fix spelling mistake regarding LED Matrix in split_common. (#12888)Joakim Tufvegren2021-05-141-1/+1
|
* [CI] Format code according to conventions (#12772)github-actions[bot]2021-05-021-1/+1
| | | Co-authored-by: QMK Bot <hello@qmk.fm>
* Fixing transport's led/rgb matrix suspend state logic (#12770)XScorpion22021-05-011-8/+10
|
* [CI] Format code according to conventions (#12650)github-actions[bot]2021-04-221-15/+15
| | | Co-authored-by: QMK Bot <hello@qmk.fm>
* LED Matrix: Split (#12633)Ryan2021-04-221-0/+29
|
* Adding keyboard level weak function for slave matrix scan (#12317)XScorpion22021-03-251-1/+2
|
* Format code according to conventions (#12088)github-actions[bot]2021-03-031-9/+9
| | | Co-authored-by: QMK Bot <hello@qmk.fm>
* Split RGB Matrix (#11055)XScorpion22021-03-031-0/+35
| | | | | * Split RGB Matrix * Suspend State sync for rgb matrix
* Refactor of USB code within split_common (#11890)Joel Challis2021-02-281-46/+24
| | | | | | | | | | | * Initial refactor of usb code within split_common * Add headers * Correct disable condition * Format * Align func name
* Format code according to conventions (#11928)github-actions[bot]2021-02-161-18/+18
| | | Co-authored-by: QMK Bot <hello@qmk.fm>
* Split transport mirror (#11046)XScorpion22021-02-163-13/+32
| | | | | | | * Split transport mirror support * Updated RGB Matrix to respond to electrical events instead of key events * split matrix slave fix
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-02-071-1/+1
|\
| * Migrate some tmk_core files to quantum (#11791)Joel Challis2021-02-071-1/+1
| | | | | | | | | | * Migrate some tmk_core files to quantum * Fix build errors
* | `qmk cformat`Nick Brassel2021-01-172-14/+14
| |
* | Keep track of last matrix activity. (#11552)Nick Brassel2021-01-181-8/+22
| | | | | | | | | | Co-authored-by: Dasky <daskygit@users.noreply.github.com> Co-authored-by: Dasky <daskygit@users.noreply.github.com>
* | Revert "Keep track of last matrix activity (#10730)"Nick Brassel2021-01-151-20/+9
| | | | | | | | This reverts commit 79d1db332477963555416d9fff82ecac4399bd52.
* | fix matrix_io_delay() timing in quantum/matrix.c (#9603)Takeshi ISHII2021-01-131-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix matrix_io_delay() timing in quantum/matrix.c * Updated comments explaining the need for matrix_io_delay() in quantum/matrix.c * fix matrix_io_delay() timing in quantum/split_common/matrix.c * Update quantum/matrix.c Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/split_common/matrix.c Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/matrix.c Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/split_common/matrix.c Co-authored-by: Ryan <fauxpark@gmail.com> * add waitOutputPinValid() and wait_cpuclock() into quantum/quantum.h and tmk_core/common/wait.h * add matrix_output_select_delay() and matrix_output_unselect_delay() * fix quantum/matrix_common.c, tmk_core/common/matrix.h * fix tmk_core/common/wait.h * fix quantum/quantum.h, tmk_core/common/wait.h * waitOutputPinValid() rename to waitInputPinDelay() in quantum/quantum.h. * waitOutputPinValid() rename to waitInputPinDelay() in quantum/matrix_common.c * update tmk_core/common/wait.h * update comment in quantum/matrix.c, quantum/split_common/matrix.c * update quantum/quantum.h: Make more margin in the GPIO_INPUT_PIN_DELAY default value. Co-authored-by: Ryan <fauxpark@gmail.com>
* | Keep track of last matrix activity (#10730)Nick Brassel2021-01-121-9/+20
| | | | | | | | | | | | | | * Allow recording of the last matrix activity time, to simplify implementation of display timeouts and the like. * Add requested changes from code review. * Simplify split matrix last changed.
* | Fix duplicate I2C_KEYMAP_START define (#11237)Ryan2020-12-171-2/+1
| |
* | Merge remote-tracking branch 'upstream/master' into developfauxpark2020-12-182-19/+9
|\|
| * Run cformat and dos2unix manually (#11235)Ryan2020-12-172-19/+9
| |
* | Add modifier state to the split keyboard transport (#10400)Casey Webster2020-12-171-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add modifier state to the split transport This adds modifier state to the i2c and serial transport for split keyboards. The purpose of this is to allow e.g. displaying modifier state on the slave side of a split keyboard on an oled. This adds one byte to the data transferred between halves. This also fixes a missing ifdef guard for BLACKLIGHT_ENABLE. Break modifiers into real/weak/oneshot Fix incorrect slave serial mod setting Fix typo in serial weal mod setter Fix build errors for the I2C code that I introduced Code cleanup and formatting per project preferences Correctly get oneshot mods Fix missing braces Remove unneeded ifdef guard Make the added state transport optional Add documentation for the new define to enable this feature Fix stray grave mark * Fix error introduced in conflict resolution
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-112-2/+2
|\|
| * Normalise include statements in core code (#11153)Ryan2020-12-112-2/+2
| | | | | | | | | | * Normalise include statements in core code * Missed one
* | [Split] Sync Timer feature (#10997)XScorpion22020-12-011-1/+25
|/ | | A timer that is kept in sync between the halves of a split keyboard
* 2020 November 28 Breaking Changes Update (#11053)James Young2020-11-281-10/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Fix SPLIT_KEYBOARD compilation for ATMega*U2, which doesn't have VBUS/OTG ↵sol2020-10-021-1/+1
| | | | | control (#10460) Co-authored-by: s-ol <s-ol@users.noreply.github.com>
* add SPLIT_HAND_MATRIX_GRID support (#8685)Takeshi ISHII2020-07-041-0/+24
| | | Co-authored-by: Danny <nooges@users.noreply.github.com>
* Fixed slave-side keyboard half unresponsiveness (#9360)Adrian2020-06-101-1/+4
| | | | | | | | | | * 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>
* Move encoder_read to common location (#9003)Joel Challis2020-06-031-7/+1
|\
| * Move encoder_read to common locationzvecr2020-05-021-7/+1
| |
* | Fix build. (#9163)Nick Brassel2020-05-221-1/+1
| |
* | format code according to conventions [skip ci]QMK Bot2020-05-211-2/+2
| |
* | Slight speed increases for matrix scanning (#9150)Joel Challis2020-05-211-16/+25
| |
* | Use LUFA funcs for split_util (#8594)Joel Challis2020-05-211-21/+44
|/
* Run clang-format manually to fix recently changed files (#8552)Joel Challis2020-03-251-2/+2
|
* Add Word Per Minute calculation feature (#8054)brickbots2020-03-231-0/+27
| | | | | | | | | | | | | | | | | | | | | * 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>
* Split - Avoid race condition during matrix_init_quantum (#8235)Joel Challis2020-02-253-17/+19
| | | | | | * Avoid race condition during matrix_init_quantum * spelling is hard
* Allow 30us matrix delay to be keyboard/user overridable (#8216)Joel Challis2020-02-211-3/+2
| | | | | | | | * Allow 30us matrix delay to be configurable via define * Move wait logic to matrix_common * Move wait logic to matrix_common - fix wait includes
* Align split_common/matrix.c with matrix.c (#8153)Joel Challis2020-02-121-8/+11
|
* Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)Joel Challis2020-02-041-4/+8
| | | | | | | | | | * Update SPLIT_USB_TIMEOUT -500ms * Align keyboard level SPLIT_USB_TIMEOUT defaults * Align keyboard level SPLIT_USB_TIMEOUT_POLL * Review fixes
* Update split serial code to use driver pattern (#7990)Joel Challis2020-01-242-570/+0
| | | | | | * Move avr serial code to drivers * Update src+= serial.c to driver pattern
* Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards (#7915)fauxpark2020-01-191-2/+8
| | | | | | | | | | * 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
* Migrate more custom matrix 'lite' code to core (#7863)Joel Challis2020-01-151-8/+2
| | | | | | | | * Migrate more custom matrix lite code to core * Align function names * fix up MATRIX_MASKED
* Move some common matrix code to a common location (#7699)Joel Challis2020-01-042-92/+29
| | | | | | | | | | * 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