2026-09-13 22:08:55 +02:00
2026-08-15 14:12:41 +02:00
2026-06-11 23:15:10 +02:00
2026-09-13 22:08:55 +02:00
2026-09-12 20:45:01 +02:00
2026-09-12 20:45:01 +02:00
2026-09-12 20:45:01 +02:00
2026-09-12 09:00:06 +02:00
2025-04-02 14:59:34 +02:00
…
2026-08-24 21:49:49 +02:00
2025-04-02 14:59:34 +02:00
2026-08-15 14:52:07 +02:00
2026-08-24 21:49:49 +02:00
2026-09-12 20:45:01 +02:00
2026-09-13 22:08:55 +02:00

Lightweight button manager

LwBTN is a lightweight, platform independent library for button and input-pin management in embedded systems. It debounces raw pin state changes and turns them into click, multi-click and keep-alive (long-press) events, delivered through a single application callback.

Open documentation

Features

  • Written in C (C11), compatible with stdint.h data types
  • Platform independent, requires user to provide millisecond timing source
  • No dynamic memory allocation
  • Callback-driven event management
  • Support for click, multi-click and keep-alive (long press) events
  • Support for software debounce for press and release events
  • Runtime configurable debounce, click and keep-alive timing, per button
  • Selectable button state acquisition: callback, manual or hybrid mode
  • Support for multiple independent button-group instances
  • Easy to use and maintain
  • User friendly MIT license

Contribute

Fresh contributions are always welcome. Simple instructions to proceed:

  1. Fork Github repository
  2. Follow C style & coding rules and use clang-format to format the code
  3. Create a pull request to develop branch with new features or bug fixes

Alternatively you may:

  1. Report a bug
  2. Ask for a feature request
S
Description
No description provided
Readme MIT
1.1 MiB
Languages
C 94.1%
CMake 4.5%
Python 1.4%