summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBalz Guenat <balz.guenat@gmail.com>2021-11-20 18:06:08 +0100
committerGitHub <noreply@github.com>2021-11-20 09:06:08 -0800
commit32215d5bff52262542a2f8d2a221b0303f02c019 (patch)
tree4f788b0302cdda37e5f3f7165c236a3b9d85e19a /docs
parentd11d2459ce3840a4549533d1a2136044d1fa7e19 (diff)
Rework encoders to enable asymmetric split keyboards (#12090)
Co-authored-by: Balz Guenat <balz.guenat@siemens.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'docs')
-rw-r--r--docs/feature_encoders.md15
1 files changed, 14 insertions, 1 deletions
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 `<keyboard>.c`: