# Detect setup button press

**URL:** <https://community.particle.io/t/detect-setup-button-press/17819>\
**Category:** Firmware\
**Created:** [November 27, 2015, 11:28am UTC](https://community.particle.io/t/detect-setup-button-press/17819 "2015-11-27T11:28:07Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![BDub](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/bdub/32/5137_2.png) [@BDub](https://community.particle.io/u/BDub)\
**Post date:** [November 28, 2015, 1:27am UTC](https://community.particle.io/t/detect-setup-button-press/17819/4 "2015-11-28T01:27:32Z")

</div>

Give this a try as well. We have `System.on(event, event_handler)` for catching system events like when the setup button is pressed. I haven't found any documentation though besides this example:

> [@Implications of customized system firmware - Photon](https://community.particle.io/t/implications-of-customized-system-firmware-photon/12948/12):
>
> The develop branch now contains a preliminary implementation of system events. Here’s a test app that programmatically enables listening mode, and turns it off after 3 seconds. If the user then presses the mode button to enter listening mode, it’s also exited after 3 seconds. #include "application.h" SYSTEM\_MODE(SEMI\_AUTOMATIC); void listen(system\_event\_t event, uint32\_t param, void\* pointer) { if (event==wifi\_listen\_update) { // exit listen mode after 3 seconds if (pa…

---

_[View the full topic](https://community.particle.io/t/detect-setup-button-press/17819)._
