.. zephyr:code-sample:: button :name: Button :relevant-api: input_interface Handle GPIO button inputs using the input subsystem. Overview ******** A simple button demo showcasing the use of buttons with the :ref:`input` APIs. The sample prints a message to the console each time a button is pressed. Requirements ************ The board hardware must have a device node capable of generating input KEY events, typically a push button connected via a GPIO pin and defined in a "gpio-keys" node. These are called "User buttons" on many of Zephyr's :ref:`boards`. The sample additionally supports an optional ``led0`` devicetree alias. If this is provided, the LED will be turned on when the button is pressed, and turned off when it is released. Building and Running ******************** This sample can be built for multiple boards, in this example we will build it for the nucleo_f103rb board: .. zephyr-app-commands:: :zephyr-app: samples/basic/button :board: nucleo_f103rb :goals: build :compact: