zmk/docs/docs/config/battery.md
Dennis 604af2ebd3
feat(docs): Add pointers for peripheral battery monitoring (#2177)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

Fixes #2166
2024-02-17 21:51:09 -08:00

3.2 KiB

title sidebar_label
Battery Level Battery Level

See the battery level feature page for more details on configuring a battery sensor.

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

Kconfig

Definition file: zmk/app/Kconfig

Config Type Description Default
CONFIG_ZMK_BATTERY_REPORTING bool Enables/disables all battery level detection/reporting n
CONFIG_ZMK_BATTERY_REPORT_INTERVAL int Battery level report interval in seconds 60

:::note[Default setting]

While CONFIG_ZMK_BATTERY_REPORTING is disabled by default it is implied by CONFIG_ZMK_BLE, thus any board with BLE enabled will have this automatically enabled unless explicitly overriden.

:::

:::note[BLE reporting on MacOS]

On macOS the BLE battery reporting packets can cause the computer to wakeup from sleep. To prevent this, the battery reporting service can be disabled by setting CONFIG_BT_BAS=n. This setting is independent of battery monitoring, for instance the battery level can still be indicated on a display.

:::

Peripheral battery monitoring

You can configure ZMK to allow support for peripheral battery monitoring over BLE (e.g. when having a split keyboard with two independent and wirelessly connected sides). If you want to report the battery levels of both sides of a split keyboard, you should have both CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY and CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING set to y.

:::note[Displaying both battery levels on your host]

Host support for multiple battery levels is undefined. It appears that in most of the cases only the main battery is being reported. In order to correctly display all the battery values, you probably need a special application or script.

:::

Devicetree

Applies to: /chosen node

Property Type Description
zmk,battery path The node for the battery sensor driver to use

Battery Voltage Divider Sensor

Driver for reading the voltage of a battery using an ADC connected to a voltage divider.

Devicetree

Applies to: compatible = "zmk,battery-voltage-divider"

See Zephyr's voltage divider documentation.

nRF VDDH Battery Sensor

Driver for reading the voltage of a battery using a Nordic nRF52's VDDH pin.

Devicetree

Applies to: compatible = "zmk,battery-nrf-vddh"

Definition file: zmk/app/module/dts/bindings/sensor/zmk,battery-nrf-vddh.yaml

This driver has no configuration.