summaryrefslogtreecommitdiffstats
path: root/docs/feature_split_keyboard.md
Commit message (Collapse)AuthorAgeFilesLines
* Make solo half of split keyboards (more) usable. (#13523)Joakim Tufvegren2021-08-221-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make solo half of split keyboards (more) usable. Using only one half of a split keyboard (that's using the split_common framework to communicate) is not a great experience, since several read timeouts per scan cycle cause an unusably slow scan rate. This change blocks all split communication attempts for 500 ms (configurable) after an error occurs, causing the scan rate to become at least _more_ usable, but might need some tweaking to work fully on most keyboards. One read timeout still needs to occur after the 500 ms has passed, and if that timeout isn't low enough, some scan cycles may still be too slow. * Fix lint complaint. * Require 25 consecutive comm errors to see comms as disconnected. The number of max errors can be overridden by defining `SPLIT_MAX_CONNECTION_ERRORS`. * Add comments to new defines, and ability to disable disconnection check. Also increase `SPLIT_MAX_CONNECTION_ERRORS` to 40, since it's divisible by most relevant numbers for the description. * Make lint happy ...again * Only update `connection_check_timer` when needed. * Add new defines to split keyboard documentation. * Move connection timeout logic to transport.c, add `is_transport_connected`. * Use split_common disconnection logic in matrix.c. Instead of doing more or less the same thing twice. * Move disconnection logic to `transport_master`. Is a cleaner implementation, and causes the scan rate while disconnected to increase instead of decrease. * Lint fixes. * Lower default `SERIAL_USART_TIMEOUT` to 20 ms. The read timeout must be low enough to not cause exessively long scan cycles when using a solo split half. 10 ms was determined from testing to work fine even with the slowest defined baudrate of 19200 (5 ms was too low for that case), so 20 ms should be fine for most cases. * Remove `SERIAL_USART_TIMEOUT` from ergodox_infinity/config.h Was somewhat mistakenly included in an earlier PR. * Fix building with `USE_I2C`. * Reduce built firmware size. Not really sure why this works, the idea was taken from tzarc's work on split disconnection. * Tweak and improve opt-out for split disconnection logic. There are now two ways to opt out from this feature: * Set `SPLIT_MAX_CONNECTION_ERRORS` to 0. This will completely disable the connection status checks (also affects the slave matrix reset logic in matrix.c, though). * Set `SPLIT_CONNECTION_CHECK_TIMEOUT` to 0. This will only disable the communication throttling while disconnected. Will make the firmware smaller. * Make split disconnection logic work with custom transports. Includes a fallback implementation for keyboards using a custom split_util.c but not a custom matrix.c (currently no such keyboard seems to be merged, though). * Remove unnecessary include of timer.h Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
* Enable sync of OLED/ST7565 display on/off state on Splits (#13542)Drashna Jaelre2021-08-151-0/+12
| | | | | | | | | * Enable sync of OLED/ST7565 display on/off state on Splits * Only send if states are not matched Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Nick Brassel <nick@tzarc.org>
* Allow invert of SPLIT_HAND_PIN logic (#13433)Jameson Thatcher2021-07-051-1/+7
| | | | | | | | | | | | | | | | | | | * added support for inverting the hand pin for split keyboards * Added docs about SPLIT_HAND_LOW_IS_LEFT * Update docs/feature_split_keyboard.md bring #define for split hand pin low for left half name in line with grid pin define Co-authored-by: Joel Challis <git@zvecr.com> * Update quantum/split_common/split_util.c update split hand pin low is left name to match split hand grid define Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
* Extensible split data sync (#11930)Nick Brassel2021-06-181-10/+104
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* [Docs] Update feature_split_keyboard.md (#13205)Markus Knutsson2021-06-131-0/+1
|
* Add EE_HANDS documentation command example (#12730)Albert Y2021-05-201-0/+6
| | | | | | | * Add command example * Remove c tag Co-authored-by: filterpaper <filterpaper@localhost>
* Documentation changes SPLIT_USB_DETECT and hid_listen udev rules (#11665)individ-divided2021-03-031-3/+12
| | | Co-authored-by: David Grundberg <david@quartz>
* [Docs] MATRIX_MASKED docs for SPLIT_HAND_MATRIX_GRID (#11974)Trevor Elliott2021-03-011-0/+4
|
* Split transport mirror (#11046)XScorpion22021-02-161-0/+6
| | | | | | | * Split transport mirror support * Updated RGB Matrix to respond to electrical events instead of key events * split matrix slave fix
* Add modifier state to the split keyboard transport (#10400)Casey Webster2020-12-171-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* [Docs] Add VBUS hack for teensys (#10986)Drashna Jaelre2020-11-271-0/+20
|
* Replace figures in docs/feature_split_keyboard.md (#10242)Takeshi ISHII2020-09-061-3/+4
| | | | | | | | | | | * Replace figures in feature_split_keyboard.md * fig update * Update docs/feature_split_keyboard.md Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* add SPLIT_HAND_MATRIX_GRID support (#8685)Takeshi ISHII2020-07-041-0/+18
| | | Co-authored-by: Danny <nooges@users.noreply.github.com>
* Update ARM split keyboard docs (#9160)Joel Challis2020-05-221-1/+12
| | | | | | | | | * Update ARM split keyboard docs * Update docs/serial_driver.md Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Nick Brassel <nick@tzarc.org>
* Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)Joel Challis2020-02-041-1/+6
| | | | | | | | | | * Update SPLIT_USB_TIMEOUT -500ms * Align keyboard level SPLIT_USB_TIMEOUT defaults * Align keyboard level SPLIT_USB_TIMEOUT_POLL * Review fixes
* Update split i2c docs for example of when pull-ups are required (#7143)Adam Perlman2019-10-281-1/+1
|
* ARM split - detect USB to select master/slave (#6424)Joel Challis2019-10-111-0/+12
| | | | | | | | | | | | * 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
* ARM split - Add support for dfu-util EE_HANDS flashing (#6543)Joel Challis2019-09-271-0/+2
| | | | | | | | | | | | * Initial stab at some fake dfu-util-split-left behaviour * Apply suggestions from code review Co-Authored-By: fauxpark <fauxpark@gmail.com> * Clang format fixes * Fake eeprom init for both left and right hand
* Add support for different encoder pinout for right half of split keyboard ↵Danny2019-08-161-0/+7
| | | | | | | | (#6521) * Add support for different encoder pinouts for split keyboard * Update documentation for new encoder pinout feature
* [Split] Add config option for DIRECT_PINS_RIGHT (#6479)Garrett Singer2019-08-031-0/+5
| | | Adds support for different direct pin mappings on the halves of a split keyboard.
* [Docs] Add dedicated page for Split Keyboard information (#5802)Drashna Jaelre2019-07-151-0/+185
* [Docs] Add dedicated page for Split Keyboard information * Apply suggestions from code review Co-Authored-By: drashna <drashna@live.com> * Fix Typos Co-Authored-By: drashna <drashna@live.com> * Fix some formatting issues * Add Additional RGB info * Fix Bulletted formatting * Apply suggestions from code review Co-Authored-By: drashna <drashna@live.com> * Fix line wrapping * Additional fixes and expansion * Reword warning/note Co-Authored-By: drashna <drashna@live.com> * add i2c/serial coexistance info * i2c markdown * Change i2c wiring text Co-Authored-By: drashna <drashna@live.com>