Nordic Semiconductor PCA10040

The Nordic Semiconductor PCA10040 is a single-board development kit for wireless applications based on the Nordic Semiconductor nRF52832 SoC.

Interfaces

Interface Hardware Supported TinyGo Support
GPIO YES YES
UART YES YES
SPI YES YES
I2C YES YES
ADC YES YES
PWM YES YES
USBDevice NO NO
Bluetooth YES YES

Pins

Pin Hardware pin Alternative names
LED1 P0_17 LED
LED2 P0_18
LED3 P0_19
LED4 P0_20
BUTTON1 P0_13 BUTTON
BUTTON2 P0_14
BUTTON3 P0_15
BUTTON4 P0_16
UART_TX_PIN P0_06
UART_RX_PIN P0_08
ADC0 P0_03
ADC1 P0_04
ADC2 P0_28
ADC3 P0_29
ADC4 P0_30
ADC5 P0_31
SDA_PIN P0_26
SCL_PIN P0_27
SPI0_SCK_PIN P0_25
SPI0_SDO_PIN P0_23
SPI0_SDI_PIN P0_24

Machine Package Docs

Documentation for the machine package for the PCA10040

Flashing

There are two options to flash the PCA10040 board.

You must install OpenOCD before you will be able to flash the PCA10040 board with your TinyGo code. You should check OpenOCD Documentation for installation and configuration instructions.

Once you have installed it correctly, you will be able to flash the PCA10040 board with your TinyGo code.

  • Plug your PCA10040 into your computer’s USB port.
  • Build and flash your TinyGo program using tinygo flash -target=pca10040

Programs can be loaded onto the PCA10040 board using the nrfjprog command line utility program.

First install the J-Link Software and Documentation Pack from Segger: https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack

Then install the nRF5x Command-Line Tools: https://docs.zephyrproject.org/latest/guides/tools/nordic_segger.html#nrf5x-command-line-tools-installation

Once you have installed both of these correctly, you will be able to flash the PCA10040 board with your TinyGo code.

  • Plug your PCA10040 into your computer’s USB port.
  • Build and flash your TinyGo program using tinygo flash -target=pca10040 -programmer command