Generic multi-button handler with debounce, short/long/double events, optional latching, exact press duration, pluggable readers, enum-friendly API, helpers, and custom time-source injection.
Header-only Arduino library for handling multiple buttons with robust debounce; short/long/double classification; optional latching (toggle/set/reset driven by Short/Long/Double events); exact getLastPressDuration(); per-button overrides (timing—including double_click_ms—polarity, enable, latch config); reader callbacks for GPIO and expanders (e.g., MCP23017); and helpers (pressedMask/snapshot/forEach/sizeStatic, plus indexFromKey/indexFromKeyIn utilities). Runtime setters include setReadFn/setReadPinFn, setGlobalTiming (alias setTiming), setPerConfig, enable, setActiveLow, and setTimeFn for custom timing sources (for example FreeRTOS tick-derived milliseconds). Includes latch control APIs (setLatched/clearAllLatched/clearLatchedMask), optional strict mapping via UB_REQUIRE_BUTTON_LIST, and examples covering GPIO, local enum mapping, port-expander readers, cached reads, and latching.
| Filename | Release Date | File Size |
|---|---|---|
| Universal_Button-1.6.3.zip | 2026-02-11 | 38.64 KiB |
| Universal_Button-1.6.2.zip | 2026-01-29 | 37.52 KiB |
| Universal_Button-1.6.1.zip | 2026-01-02 | 34.58 KiB |
| Universal_Button-1.6.0.zip | 2026-01-02 | 35.40 KiB |
| Universal_Button-1.5.0.zip | 2025-10-16 | 28.51 KiB |
| Universal_Button-1.4.1.zip | 2025-10-10 | 27.45 KiB |
| Universal_Button-1.4.0.zip | 2025-10-02 | 27.78 KiB |
| Universal_Button-1.3.0.zip | 2025-09-30 | 28.52 KiB |
| Universal_Button-1.2.0.zip | 2025-09-28 | 27.26 KiB |
| Universal_Button-1.1.0.zip | 2025-09-12 | 26.69 KiB |