Power Management Behaviors
Summary
These page contains some of the power management behaviors currently supported by ZMK.
External Power Control
The External power control behavior allows enabling or disabling the VCC power output to save power. Some of the LEDs will consume power even in OFF state. To preserve battery life in this scenario, some controller boards have support to disable the external power completely.
The following boards currently support this feature:
- nRFMicro
- nice!nano
External Power Control Command Defines
External power control command defines are provided through the dt-bindings/zmk/ext_power.h
header,
which is added at the top of the keymap file:
#include <dt-bindings/zmk/ext_power.h>
This will allow you to reference the actions defined in this header such as EXT_POWER_OFF_CMD
.
Here is a table describing the command for each define:
Define | Action | Alias |
---|---|---|
EXT_POWER_OFF_CMD | Disable the external power. | EP_OFF |
EXT_POWER_ON_CMD | Enable the external power. | EP_ON |
EXT_POWER_TOGGLE_CMD | Toggle the external power. | EP_TOG |
Behavior Binding
- Reference:
&ext_power
- Parameter#1: Command, e.g
EP_ON
The on/off state that is set by the &ext_power
behavior will be saved to flash storage and hence persist across restarts and firmware flashes.
However it will only be saved after CONFIG_ZMK_SETTINGS_SAVE_DEBOUNCE
milliseconds in order to reduce potential wear on the flash memory.
Example:
-
Behavior binding to enable the external power
&ext_power EP_ON
-
Behavior binding to disable the external power
&ext_power EP_OFF
-
Behavior binding to toggle the external power
&ext_power EP_TOG
Split Keyboards
Power management behaviors are global: This means that when triggered, they affects both the central and peripheral side of split keyboards.