Skip to content

feat: enumerate ADC resistor-ladder buttons as event entities - #87

Open
teancom wants to merge 1 commit into
OpenDisplay:feat/clean-portfrom
teancom:feat/adc-ladder-buttons
Open

feat: enumerate ADC resistor-ladder buttons as event entities#87
teancom wants to merge 1 commit into
OpenDisplay:feat/clean-portfrom
teancom:feat/adc-ladder-buttons

Conversation

@teancom

@teancom teancom commented Jul 29, 2026

Copy link
Copy Markdown

With the release of py-opendisplay 7.14.1, analog buttons now work end-to-end. Tested on my local HA server with an XTEINK X4 using the buttons to page through "panels" of a dashboard. I'm not gonna say it's the fastest thing in the world but it works. 😅

Ladder blocks (input_type=3) share one ADC pin, so the input_flags pin bitmask is empty and the button count/id base live in the reserved tail. Enumerate them alongside digital buttons, and translate the tracker's button_slot_changed / press_count_changed transitions into down/up events so ladder buttons sharing a report byte fire reliably even when BLE advertisement frames are lost.

Ladder blocks (input_type=3) share one ADC pin, so the input_flags pin
bitmask is empty and the button count/id base live in the reserved
tail. Enumerate them alongside digital buttons, and translate the
tracker's button_slot_changed / press_count_changed transitions into
down/up events so ladder buttons sharing a report byte fire reliably
even when BLE advertisement frames are lost.
@teancom
teancom requested a review from g4bri3lDev as a code owner July 29, 2026 03:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant