diff --git a/examples/hwapi/button_led.py b/examples/hwapi/button_led.py
new file mode 100644
index 0000000000000000000000000000000000000000..bd6fe0172988c0bbd393151db38f59af584ef9b0
--- /dev/null
+++ b/examples/hwapi/button_led.py
@@ -0,0 +1,9 @@
+import utime
+from hwconfig import LED, BUTTON
+
+# Light LED when (and while) a BUTTON is pressed
+
+while 1:
+    LED.value(BUTTON.value())
+    # Don't burn CPU
+    utime.sleep_ms(10)
diff --git a/examples/hwapi/hwconfig_dragonboard410c.py b/examples/hwapi/hwconfig_dragonboard410c.py
index 00f21a658f00169a7cf0c42e5285884393611c47..32fdb9dd6d298665f886aeba9c52b32a97fb301a 100644
--- a/examples/hwapi/hwconfig_dragonboard410c.py
+++ b/examples/hwapi/hwconfig_dragonboard410c.py
@@ -1,12 +1,19 @@
 from machine import Pin
 
 # 96Boards/Qualcomm DragonBoard 410c
+#
 # By default, on-board LEDs are controlled by kernel LED driver.
 # To make corresponding pins be available as normal GPIO,
 # corresponding driver needs to be unbound first (as root):
 # echo -n "soc:leds" >/sys/class/leds/apq8016-sbc:green:user1/device/driver/unbind
 # Note that application also either should be run as root, or
 # /sys/class/gpio ownership needs to be changed.
+# Likewise, onboard buttons are controlled by gpio_keys driver.
+# To release corresponding GPIOs:
+# echo -n "gpio_keys" >/sys/class/input/input1/device/driver/unbind
 
 # User LED 1 on gpio21
 LED = Pin(21, Pin.OUT)
+
+# Button S3 on gpio107
+BUTTON = Pin(107, Pin.IN)