The onboard General-Purpose Input/Output (GPIO)s for the buttons and LEDs can conflict with boards that follow the Arduino standard. To avoid such conflicts, the nRF52 DK has an I/O expander.
| GPIO | Part | Arduino signal |
|---|---|---|
| P0.13 | BUTTON 1 | D2 |
| P0.14 | BUTTON 2 | D3 |
| P0.15 | BUTTON 3 | D4 |
| P0.16 | BUTTON 4 | D5 |
| P0.17 | LED1 | D6 |
| P0.18 | LED2 | D7 |
| P0.19 | LED3 | D8 |
| P0.20 | LED4 | D9 |
The I/O expander releases these GPIOs for general use when the nRF52 DK is used together with boards that follow the Arduino standard. The I/O expander can be permanently enabled by shorting solder bridge SB18, or permanently disabled by cutting the shorting track on SB19. You must also short SB18 when cutting SB19 for full compatibility with the Arduino standard.
The I/O expander can be temporarily enabled by connecting SHIELD DETECT to ground.
Figure 1. Enable or disable I/Os for Arduino standard
In addition to the buttons and LEDs, the following GPIOs are used for the I/O expander:
| I/O expander signal | GPIO |
|---|---|
| /INT | P0.17 |
| SDA | P0.26 |
| SCL | P0.27 |
Figure 2. I/O expander schematic
Note: Software debouncing is not needed when using the I/O expander. Each button on the nRF52 DK has a debouncing filter.