Skip to main content

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:

DefineActionAlias
EXT_POWER_OFF_CMDDisable the external power.EP_OFF
EXT_POWER_ON_CMDEnable the external power.EP_ON
EXT_POWER_TOGGLE_CMDToggle the external power.EP_TOG

Behavior Binding

  • Reference: &ext_power
  • Parameter#1: Command, e.g EP_ON
External power state persistence

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:

  1. Behavior binding to enable the external power

    &ext_power EP_ON
  2. Behavior binding to disable the external power

    &ext_power EP_OFF
  3. 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.