zmk/docs/docs/config/encoders.md
Nicolas Munnich 5f056f7199
refactor(docs): Convert the keymaps section into a base folder (#2430)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-08-21 10:39:18 -07:00

3.4 KiB

title sidebar_label
Encoder Configuration Encoders

See the Encoders informational page for more details, including instructions for adding encoder support to a board.

See Configuration Overview for instructions on how to change these settings.

EC11 Encoders

Kconfig

Definition file: zmk/app/module/drivers/sensor/ec11/Kconfig

Config Type Description Default
CONFIG_EC11 bool Enable EC11 encoders n
CONFIG_EC11_THREAD_PRIORITY int Priority of the encoder thread 10
CONFIG_EC11_THREAD_STACK_SIZE int Stack size of the encoder thread 1024

If CONFIG_EC11 is enabled, exactly one of the following options must be set to y:

Config Type Description
CONFIG_EC11_TRIGGER_NONE bool No trigger (encoders are disabled)
CONFIG_EC11_TRIGGER_GLOBAL_THREAD bool Process encoder interrupts on the global thread
CONFIG_EC11_TRIGGER_OWN_THREAD bool Process encoder interrupts on their own thread

Devicetree

Keymap sensor config

For shields/boards that export a sensors node configuration label, both global and per-sensor settings can be set by overriding the properties there.

To override the general settings, update them on the exported sensors node, e.g.:

&sensors {
    triggers-per-rotation = <18>;
};

Per sensor overrides can be added with ordered nested nodes with the correct overrides, e.g.:

&sensors {
    left_config {
        triggers-per-rotation = <18>;
    };

    right_config {
        triggers-per-rotation = <24>;
    };
};

:::note

The names of the child nodes are not important, and are applied in order to the sensors listed in the sensors property of the sensors node.

:::

Applies to the node and child nodes of: compatible = "zmk,keymap-sensors"

Definition file: zmk/app/drivers/zephyr/dts/bindings/zmk,keymap-sensors.yaml

Property Type Description Default
triggers-per-rotation int Number of times to trigger the bound behavior per full rotation

EC11 nodes

Applies to: compatible = "alps,ec11"

Definition file: zmk/app/module/dts/bindings/sensor/alps,ec11.yaml

Property Type Description Default
a-gpios GPIO array GPIO connected to the encoder's A pin
b-gpios GPIO array GPIO connected to the encoder's B pin
steps int Number of encoder pulses per complete rotation