> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/function-blocks/blocks-reference/data-logic/signal-operators/edge-falling.md).

# Edge Falling

This function block detects a falling edge (transition from True to False) on a boolean signal and produces a short trigger when that transition occurs. Use it to convert continuous boolean signals into single-step events for downstream blocks.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

`Boolean` Receives the boolean signal to monitor for a falling edge.

## 📤 Outputs <a href="#outputs" id="outputs"></a>

`Boolean` Emits a short True pulse only when the input changes from True to False. Otherwise outputs False.

## 🕹️ Controls <a href="#controls" id="controls"></a>

This function block has no user-configurable controls in the UI. It works automatically once a boolean input is connected.

## ⚙️ Running mechanism <a href="#running-mechanism" id="running-mechanism"></a>

* The block keeps the previous input state internally.
* On each run it compares the current input to the stored previous state.
* If the previous state was True and the current state is False, the block outputs a single True pulse for that evaluation step.
* On the very first evaluation (no previous state), the block does not emit a pulse; it initializes its internal state with the first input value.

## ✨ Features <a href="#features" id="features"></a>

* Reliable falling-edge detection for triggering actions.
* Minimal and predictable output: a single-step pulse per falling transition.
* Useful for debouncing systems and converting level signals to events.

## 📝 Usage <a href="#usage" id="usage"></a>

1. Connect a boolean-producing block to the `Boolean` input (for example a manual `Logic Input` or a sensor/condition block).
2. Use the block's `Boolean` output to trigger downstream actions (logging, saving, changing state, etc.).
3. Combine with timing or debounce blocks if needed to avoid multiple triggers from noisy inputs.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Combine with `Rising Edge` when you need to detect both transitions and treat them differently.
* Use `Delay Step`, `ON Delay` or `OFF Delay` to add simple timing or debounce before or after the falling-edge trigger.
* Pair the output with `Set - Reset` or `Counter` to latch a state or count the number of falling events.
* Use logical blocks like `And`, `Or` and `Not` to build more complex trigger conditions around the falling edge.
* Trigger exports and notifications by connecting the output to blocks such as `Image Logger`, `Image Write`, `Record Video`, `Send Mail`, or `MQTT Publish` to capture or notify on the event.
* For image-based workflows, use a camera input (for example `Camera USB` or `Camera IP (ONVIF)`) feeding an image display or logger — use the falling-edge output to capture a single frame with `Image Logger` or to open a viewer with `Show Image` only when the event occurs.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* If you see no pulses, verify the upstream block is producing boolean values and that transitions from True to False actually occur.
* For noisy signals causing multiple unintended pulses, add a debounce using `Delay Step`, `OFF Delay`, or pre-filter the signal with logic blocks.
* If you need a longer trigger than a single-step pulse, use the falling-edge output to enable a downstream timing block (for example `ON Delay` or a small timer subsystem).
