1# GPPI fork {#gppi_basic_fork_desc} 2 3The sample demonstrates a basic fork functionality of the nrfx_gppi helper. 4## Requirements 5 6The sample supports the following development kits: 7 8| **Board** | **Support** | **Driver** | 9|---------------------|:-----------:|:----------:| 10| nrf52dk_nrf52832 | Yes | PPI | 11| nrf52833dk_nrf52833 | Yes | PPI | 12| nrf52840dk_nrf52840 | Yes | PPI | 13| nrf5340dk_nrf5340 | Yes | DPPI | 14| nrf9160dk_nrf9160 | Yes | DPPI | 15 16## Overview 17 18Application initializes nrfx_gpiote, nrfx_timer drivers and the nrfx_gppi helper in a way that sets up the TIMER COMPARE event to be forwarded via PPI/DPPI to GPIOTE and to toggle a pin. 19Fork mechanism in PPI/DPPI is also set up to simultaneously toggle a second pin in GPIOTE. 20 21> For more information, see **GPPI helper - nrfx documentation**. 22 23## Wiring 24 25To run this sample, no special configuration is needed. 26You should monitor the output from the board to check if it is as expected. 27 28## Building and running 29 30To run this sample, build it for the appropriate board and then flash it as per instructions in [Building and running](@ref building_and_running) section. 31 32## Sample output 33 34You should see the following output: 35 36``` 37- "Starting nrfx_gppi basic fork example." 38- "GPIOTE status: initialized" 39- "Time to wait: 1000 ms" 40- "Timer status: enabled" 41- "Timer finished. Context passed to the handler: >Some context<" 42- "GPIOTE output pin .primary.: <LED1_PIN> is low" 43- "GPIOTE output pin .fork.: <LED2_PIN> is high" 44- "Timer finished. Context passed to the handler: >Some context<" 45- "GPIOTE output pin .primary.: <LED1_PIN> is high" 46- "GPIOTE output pin .fork.: <LED2_PIN> is low" 47``` 48 49> In the output, instead of `<LED1_PIN>` and `<LED2_PIN>`, you should see the corresponding pin numbers defined in `common/nrfx_example.h`. 50 51[//]: # 52[Building and running]: <../../../README.md#building-and-running> 53