From 32215d5bff52262542a2f8d2a221b0303f02c019 Mon Sep 17 00:00:00 2001 From: Balz Guenat Date: Sat, 20 Nov 2021 18:06:08 +0100 Subject: Rework encoders to enable asymmetric split keyboards (#12090) Co-authored-by: Balz Guenat Co-authored-by: Nick Brassel --- docs/feature_encoders.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'docs/feature_encoders.md') diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md index 8e854c1e58..5b6c3f163f 100644 --- a/docs/feature_encoders.md +++ b/docs/feature_encoders.md @@ -46,7 +46,9 @@ For 4× encoders you also can assign default position if encoder skips pulses wh ## Split Keyboards -If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout (and optionally, resolutions) for the right half like this: +The above is enough for split keyboards that are symmetrical, i.e. the halves have the same number of encoders and they are on the same pins. +If the halves are not symmetrical, you can define the pinout (and optionally, resolutions) of the right half separately. +The left half will use the definitions above. ```c #define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a } @@ -54,6 +56,17 @@ If you are using different pinouts for the encoders on each half of a split keyb #define ENCODER_RESOLUTIONS_RIGHT { 2, 4 } ``` +If only the right half has encoders, you must still define an empty array for the left pads (and resolutions, if you define `ENCODER_RESOLUTIONS_RIGHT`). + +```c +#define ENCODERS_PAD_A { } +#define ENCODERS_PAD_B { } +#define ENCODER_RESOLUTIONS { } +#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a } +#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b } +#define ENCODER_RESOLUTIONS_RIGHT { 2, 4 } +``` + ## Callbacks The callback functions can be inserted into your `.c`: -- cgit v1.2.3