Commit Graph

18 Commits (172e6a703041363decd6fc829542f33180c13beb)

Author SHA1 Message Date
Nick Brassel 172e6a7030
Extensible split data sync (#11930)
* 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.
2021-06-18 09:10:06 +10:00
Markus Knutsson 449b4b8d86
[Docs] Update feature_split_keyboard.md (#13205) 2021-06-13 20:20:19 -07:00
Albert Y e961e34c7f
Add EE_HANDS documentation command example (#12730)
* Add command example

* Remove c tag

Co-authored-by: filterpaper <filterpaper@localhost>
2021-05-20 19:03:56 +09:00
individ-divided 4c3090ace9
Documentation changes SPLIT_USB_DETECT and hid_listen udev rules (#11665)
Co-authored-by: David Grundberg <david@quartz>
2021-03-03 13:31:41 -08:00
Trevor Elliott d0108869ee
[Docs] MATRIX_MASKED docs for SPLIT_HAND_MATRIX_GRID (#11974) 2021-03-01 21:29:11 -08:00
XScorpion2 d1806a26e4
Split transport mirror (#11046)
* Split transport mirror support

* Updated RGB Matrix to respond to electrical events instead of key events

* split matrix slave fix
2021-02-16 11:30:33 +11:00
Casey Webster 5e2b53541b
Add modifier state to the split keyboard transport (#10400)
* 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
2020-12-17 16:21:26 +11:00
Drashna Jaelre 16d55b14b7
[Docs] Add VBUS hack for teensys (#10986) 2020-11-27 21:03:31 -08:00
Takeshi ISHII 088888937a
Replace figures in docs/feature_split_keyboard.md (#10242)
* 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>
2020-09-06 21:15:55 -07:00
Takeshi ISHII 5c8b23ccff
add SPLIT_HAND_MATRIX_GRID support (#8685)
Co-authored-by: Danny <nooges@users.noreply.github.com>
2020-07-04 15:04:47 +01:00
Joel Challis 6d84795bc1
Update ARM split keyboard docs (#9160)
* 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>
2020-05-22 06:20:46 +10:00
Joel Challis 307be48de9
Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)
* Update SPLIT_USB_TIMEOUT -500ms

* Align keyboard level SPLIT_USB_TIMEOUT defaults

* Align keyboard level SPLIT_USB_TIMEOUT_POLL

* Review fixes
2020-02-04 19:37:04 -08:00
Adam Perlman 1971f22285 Update split i2c docs for example of when pull-ups are required (#7143) 2019-10-28 18:10:25 +00:00
Joel Challis 76378d74f5 ARM split - detect USB to select master/slave (#6424)
* 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-10-11 23:25:43 -04:00
Joel Challis 17794e0b25
ARM split - Add support for dfu-util EE_HANDS flashing (#6543)
* 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
2019-09-27 21:33:55 +01:00
Danny 36dd261d06 Add support for different encoder pinout for right half of split keyboard (#6521)
* Add support for different encoder pinouts for split keyboard

* Update documentation for new encoder pinout feature
2019-08-16 16:46:41 -07:00
Garrett Singer f644db042c [Split] Add config option for DIRECT_PINS_RIGHT (#6479)
Adds support for different direct pin mappings on the halves of a split keyboard.
2019-08-03 21:26:02 -07:00
Drashna Jaelre 311d625c56 [Docs] Add dedicated page for Split Keyboard information (#5802)
* [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>
2019-07-15 23:23:32 -07:00