Skip to content

[Bug] Wireless central/master half fails to wake from deep sleep & drains battery on main (not present in v0.3) #3207

@braun-steven

Description

@braun-steven

Describe the bug
On a split keyboard (Lily58) with nice!nano v2 and nice!view displays, the Central (Master/Left) half fails to wake up from deep sleep and exhibits high battery drain. The Peripheral (Slave/Right) half wakes up correctly.

Reverting the ZMK revision from main to v0.3 in west.yml (specifically for the GitHub Actions manifest) completely resolves the issue, suggesting a regression in the recent main branch or its interaction with Zephyr 4.1.0/fixes.

To Reproduce

  1. Setup a split keyboard (Lily58) with nice!nano v2 and nice!view displays.
  2. Build firmware using the main branch of ZMK (Jan 15, 2026).
  3. Enable Deep Sleep in config (CONFIG_ZMK_SLEEP=y).
  4. Allow the keyboard to enter deep sleep (timeout).
  5. Attempt to wake the keyboard by pressing a key on the Central half.
  6. Result: Central half does not wake, display remains off, and battery drains rapidly (empties overnight), suggesting a crash or a hang in a high-power state instead of proper sleep.
  7. Expected: Central half wakes up, display turns on, and it reconnects to the host.

Regression Context

  • Working Version: v0.3
  • Broken Version: main (current)

Hardware:

  • Board: nice!nano v2
  • Shield: Lily58 (Left/Central)
  • Display: nice!view
  • Connectivity: BLE

Additional Context

  • CONFIG_ZMK_STUDIO was not enabled in the builds and this issue is thus not related to Central side does not wake from sleep when ZMK Studio is enabled (Zephyr 4.1) #3195 (I've also explicitly disabled it just in case to test if it mistakenly defaults to y).
  • The issue persists regardless of the peripheral half's state.
  • Flashing the right-half firmware to the Left board shows that wake-up detection works (the hardware registers the keypress and wakes), isolating the failure specifically to the Central role logic/firmware on main.
  • The battery drain is significant enough that a full battery is depleted within ~24 hours of "sleeping".
  • When the left half is connected via USB, deep sleep works and the half successfully wakes up from sleep.

Configuration (lily58.conf)

CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_DISPLAY=y

West Manifest (west.yml)

manifest:
  projects:
    - name: zmk
      remote: zmkfirmware
      revision: v0.3 # Changing this to main causes the issue
      import: app/west.yml

ZMK Lily 58 Pro Config: https://github.com/braun-steven/lily58-wireless-view-zmk-config

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions