aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/_sidebar.md1
-rw-r--r--docs/_summary.md1
-rw-r--r--docs/feature_encoders.md41
3 files changed, 43 insertions, 0 deletions
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index 465f4657c..2c5738012 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -52,6 +52,7 @@
52 * [Combos](feature_combo) 52 * [Combos](feature_combo)
53 * [Command](feature_command.md) 53 * [Command](feature_command.md)
54 * [Dynamic Macros](feature_dynamic_macros.md) 54 * [Dynamic Macros](feature_dynamic_macros.md)
55 * [Encoders](feature_encoders.md)
55 * [Grave Escape](feature_grave_esc.md) 56 * [Grave Escape](feature_grave_esc.md)
56 * [Key Lock](feature_key_lock.md) 57 * [Key Lock](feature_key_lock.md)
57 * [Layouts](feature_layouts.md) 58 * [Layouts](feature_layouts.md)
diff --git a/docs/_summary.md b/docs/_summary.md
index 465f4657c..2c5738012 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -52,6 +52,7 @@
52 * [Combos](feature_combo) 52 * [Combos](feature_combo)
53 * [Command](feature_command.md) 53 * [Command](feature_command.md)
54 * [Dynamic Macros](feature_dynamic_macros.md) 54 * [Dynamic Macros](feature_dynamic_macros.md)
55 * [Encoders](feature_encoders.md)
55 * [Grave Escape](feature_grave_esc.md) 56 * [Grave Escape](feature_grave_esc.md)
56 * [Key Lock](feature_key_lock.md) 57 * [Key Lock](feature_key_lock.md)
57 * [Layouts](feature_layouts.md) 58 * [Layouts](feature_layouts.md)
diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md
new file mode 100644
index 000000000..f482eefec
--- /dev/null
+++ b/docs/feature_encoders.md
@@ -0,0 +1,41 @@
1# Encoders
2
3Basic encoders are supported by adding this to your `rules.mk`:
4
5 ENCODER_ENABLE = yes
6
7and this to your `config.h`:
8
9 #define NUMBER_OF_ENCODERS 1
10 #define ENCODERS_PAD_A { B12 }
11 #define ENCODERS_PAD_B { B13 }
12
13Each PAD_A/B variable defines an array so multiple encoders can be defined, e.g.:
14
15 #define ENCODERS_PAD_A { encoder1a, encoder2a }
16 #define ENCODERS_PAD_B { encoder1a, encoder2b }
17
18If your encoder's clockwise directions are incorrect, you can swap the A & B pad definitions.
19
20Additionally, the resolution can be specified in the same file (the default & suggested is 4):
21
22 #define ENCODER_RESOLUTION 4
23
24## Callbacks
25
26The callback functions can be inserted into your `<keyboard>.c`:
27
28 void encoder_update_kb(uint8_t index, bool clockwise) {
29 encoder_update_user(index, clockwise);
30 }
31
32or `keymap.c`:
33
34 void encoder_update_user(uint8_t index, bool clockwise) {
35
36 }
37
38
39## Hardware
40
41The A an B lines of the encoders should be wired directly to the MCU, and the C/common lines should be wired to ground.