Nordic nRF52840 DK pinout

Nordic's official development kit for the nRF52840 Bluetooth chip, with a built-in J-Link debugger, 4 buttons, 4 LEDs and Arduino-style headers. Pins run at 3.0 V and are not 5 V tolerant.

Nordic nRF52840 DK pinoutnRF52840P0.27I2C_SCLP0.26I2C_SDAP0.02 · 2AIN0GNDGNDP1.15 · 47SPI_SCKP1.14 · 46SPI_MISOP1.13 · 45SPI_MOSIP1.12 · 44SPI_CSP1.11 · 43P1.10 · 42P1.08 · 40P1.07 · 39P1.06 · 38P1.05 · 37P1.04 · 36P1.03 · 35P1.02 · 34Serial1_TXP1.01 · 33Serial1_RXP0.10NFC2P0.09 · 9NFC1P0.08 · 8UART_RXDP0.07 · 7UART_CTSP0.06 · 6UART_TXDP0.05 · 5UART_RTSP0.01 · 1XL2P0.00 · 0XL1VDDVDDVDDIOREFRESETRESETVDDVDD5V5VGNDGNDGNDGNDP0.03 (A0) · P0.03AIN1P0.04 · 4AIN2P0.28AIN4P0.29AIN5P0.30AIN6P0.31AIN7P0.11BUTTON1P0.13LED1P0.15LED3P0.17QSPI_CSP0.19QSPI_SCKP0.21QSPI_IO1P0.23QSPI_IO3P0.25BUTTON4P1.09 · 41TRACEDATA3P0.12BUTTON2P0.14LED2P0.16LED4P0.18nRESETP0.20QSPI_IO0P0.22QSPI_IO2P0.24BUTTON3P1.00 · 32SWOGNDGND
Top view, USB connector on the left. Colors: red power, grey ground, green GPIO, yellow analog, orange USB serial, blue I2C.

At a glance

Chip
nRF52840-QIAA (nRF52840)
Processor
Arm Cortex-M4F at 64 MHz, 256 KB RAM, 1 MB flash, Bluetooth LE, Thread/Zigbee (802.15.4), NFC, native USB
Logic level
3.3 V. Not 5 V tolerant unless marked below.
Flashing tool
nrfjprog (J-Link)
Arduino board (FQBN)
adafruit:nrf52:pca10056
Live pin view in BoardPilot
Yes (diagnostic agent available)

Pins to avoid or use with care

Flash memory: P0.17, P0.19, P0.21, P0.23, P0.20, P0.22

Wired to the flash memory. Never use them.

USB serial: P0.08, P0.06

Used for uploading and the serial monitor. Anything connected here can break uploads.

Used on the board: P0.10, P0.09, P0.08, P0.07, P0.06, P0.05, P0.01, P0.00, P0.11, P0.17, P0.19, P0.21, P0.23, P0.25, P0.12, P0.18, P0.20, P0.22, P0.24, P1.00

Already connected to something on the board (see the notes in the table).

Good pins for LEDs, buttons and signals

P1.03, P1.04, P1.05, P1.06, P1.10, P1.11, P1.07, P1.08

Default pins in Arduino

I2C
SDA = P0.26, SCL = P0.27. Only these pins work with the Wire library defaults. The nRF52840 I2C (TWIM) block can use almost any pin, but the Arduino core's Wire is fixed to P0.26 (SDA) and P0.27 (SCL), the Arduino SDA/SCL sockets.
SPI
MOSI = P1.13, MISO = P1.14, SCK = P1.15, CS = P1.12.
Analog inputs
P0.03 (A0), P0.04, P0.28, P0.29, P0.30, P0.31 (0–3.6 V)

How to flash it

Plug USB into the port on the short edge (interface MCU, J2) and set the power switch to ON; before the first Arduino sketch, burn the Adafruit bootloader and SoftDevice once.

All 57 pins

PinGPIOChip pinFunctionsNotes
P0.2727P0.27GPIO, I2C_SCL (default)Arduino SCL (I2C clock). The DK connects I2C pull-up resistors to this line when a shield is detected (SB33).
P0.2626P0.26GPIO, I2C_SDA (default)Arduino SDA (I2C data). The DK connects I2C pull-up resistors to this line when a shield is detected (SB33).
P0.022P0.02GPIO, AIN0, AREFArduino AREF position, wired to P0.02 (analog input AIN0).
GND—GND
P1.1547P1.15GPIO, SPI_SCK (default)
P1.1446P1.14GPIO, SPI_MISO (default)
P1.1345P1.13GPIO, SPI_MOSI (default)
P1.1244P1.12GPIO, SPI_CS (default)
P1.1143P1.11GPIO
P1.1042P1.10GPIO
P1.0840P1.08GPIOWith the TRACE switch (SW7) set to Alt, Button 2 is moved to this pin.
P1.0739P1.07GPIOWith the TRACE switch (SW7) set to Alt, Button 1 is moved to this pin.
P1.0638P1.06GPIO
P1.0537P1.05GPIO
P1.0436P1.04GPIO
P1.0335P1.03GPIO
P1.0234P1.02GPIO, Serial1_TXSerial1 TX in the Arduino core.
P1.0133P1.01GPIO, Serial1_RXSerial1 RX in the Arduino core.
P0.1010P0.10GPIO, NFC2NFC antenna pin by default. To use it as a normal pin, set CONFIG_NFCT_PINS_AS_GPIOS in your firmware.
P0.099P0.09GPIO, NFC1NFC antenna pin by default. To use it as a normal pin, set CONFIG_NFCT_PINS_AS_GPIOS in your firmware.
P0.088P0.08GPIO, UART_RXD, Serial2_RXSerial RX from the on-board debugger (the USB virtual COM port). Serial2 in the Arduino core.
P0.077P0.07GPIO, UART_CTS, TRACECLKFlow-control line (CTS) of the USB virtual COM port. Free when flow control is off, or with switch SW7 set to off.
P0.066P0.06GPIO, UART_TXD, Serial2_TXSerial TX to the on-board debugger (the USB virtual COM port). Serial2 in the Arduino core.
P0.055P0.05GPIO, UART_RTS, AIN3Flow-control line (RTS) of the USB virtual COM port. Free when flow control is off, or with switch SW7 set to off.
P0.011P0.01GPIO, XL2Used by the 32.768 kHz crystal. Not connected to this header unless you cut SB1 and short SB3.
P0.000P0.00GPIO, XL1Used by the 32.768 kHz crystal. Not connected to this header unless you cut SB2 and short SB4.
VDD—VDDDK supply VDD: 3.0 V by default (fixed 3 V regulator).
VDD—IOREF, VDDArduino IOREF: tells a shield the logic level, which is VDD (3.0 V by default).
RESET—RESETNot connected by default. Solder bridges SB43-SB46 can link it to the chip reset (P0.18) or the IF BOOT/RESET button.
VDD—VDD, 3V3Arduino 3.3V position. On this DK it carries VDD, 3.0 V by default.
5V—5V5 V from the DK's boost regulator. Never connect it to an nRF52840 pin.
GND—GND
GND—GND
P0.03 (A0)3P0.03GPIO, AIN1, A0
P0.044P0.04GPIO, AIN2, A1With the TRACE switch (SW7) set to Alt, the virtual COM port CTS line is moved to this pin.
P0.2828P0.28GPIO, AIN4, A2
P0.2929P0.29GPIO, AIN5, A3
P0.3030P0.30GPIO, AIN6, A4
P0.3131P0.31GPIO, AIN7, A5
P0.1111P0.11GPIO, BUTTON1, TRACEDATA1Button 1 on the DK, active low: reads 0 when pressed. Use INPUT_PULLUP (no external pull-up on the board).
P0.1313P0.13GPIO, LED1, LED_BUILTINLED 1 (green) on the DK, active low: write 0 to turn it on. Cut SB5 to free the pin. LED_BUILTIN in the Arduino core.
P0.1515P0.15GPIO, LED3LED 3 (green) on the DK, active low: write 0 to turn it on. Cut SB7 to free the pin.
P0.1717P0.17GPIO, QSPI_CSWired to the on-board 64 Mbit QSPI flash; not connected to this header unless you cut SB13 and short SB23.
P0.1919P0.19GPIO, QSPI_SCKWired to the on-board 64 Mbit QSPI flash; not connected to this header unless you cut SB11 and short SB21.
P0.2121P0.21GPIO, QSPI_IO1Wired to the on-board 64 Mbit QSPI flash; not connected to this header unless you cut SB14 and short SB24.
P0.2323P0.23GPIO, QSPI_IO3Wired to the on-board 64 Mbit QSPI flash; not connected to this header unless you cut SB10 and short SB20.
P0.2525P0.25GPIO, BUTTON4Button 4 on the DK, active low: reads 0 when pressed. Use INPUT_PULLUP (no external pull-up on the board).
P1.0941P1.09GPIO, TRACEDATA3
P0.1212P0.12GPIO, BUTTON2, TRACEDATA2Button 2 on the DK, active low: reads 0 when pressed. Use INPUT_PULLUP (no external pull-up on the board).
P0.1414P0.14GPIO, LED2LED 2 (green) on the DK, active low: write 0 to turn it on. Cut SB6 to free the pin.
P0.1616P0.16GPIO, LED4LED 4 (green) on the DK, active low: write 0 to turn it on. Cut SB8 to free the pin.
P0.1818P0.18GPIO, nRESETThe chip's reset pin when pin reset is enabled (the IF BOOT/RESET button uses it). Avoid using it as a normal pin.
P0.2020P0.20GPIO, QSPI_IO0Wired to the on-board 64 Mbit QSPI flash; not connected to this header unless you cut SB12 and short SB22.
P0.2222P0.22GPIO, QSPI_IO2Wired to the on-board 64 Mbit QSPI flash; not connected to this header unless you cut SB15 and short SB25.
P0.2424P0.24GPIO, BUTTON3Button 3 on the DK, active low: reads 0 when pressed. Use INPUT_PULLUP (no external pull-up on the board).
P1.0032P1.00GPIO, SWO, TRACEDATA0Debug trace output (SWO) to the on-board debugger. Usable as a pin if you do not use trace.
GND—GND

Check your wiring with BoardPilot

BoardPilot shows this board in 3D, flags risky pins as you wire, and flashes it safely with a backup first.

Download BoardPilot

Sources

← All boards