aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--src/machine/board_feather-nrf52840.go105
-rw-r--r--targets/feather-nrf52840.json10
3 files changed, 117 insertions, 1 deletions
diff --git a/README.md b/README.md
index 2a0d86836..08aec88cc 100644
--- a/README.md
+++ b/README.md
@@ -43,13 +43,14 @@ See the [getting started instructions](https://tinygo.org/getting-started/) for
You can compile TinyGo programs for microcontrollers, WebAssembly and Linux.
-The following 37 microcontroller boards are currently supported:
+The following 38 microcontroller boards are currently supported:
* [Adafruit Circuit Playground Bluefruit](https://www.adafruit.com/product/4333)
* [Adafruit Circuit Playground Express](https://www.adafruit.com/product/3333)
* [Adafruit CLUE Alpha](https://www.adafruit.com/product/4500)
* [Adafruit Feather M0](https://www.adafruit.com/product/2772)
* [Adafruit Feather M4](https://www.adafruit.com/product/3857)
+* [Adafruit Feather nRF52840 Express](https://www.adafruit.com/product/4062)
* [Adafruit ItsyBitsy M0](https://www.adafruit.com/product/3727)
* [Adafruit ItsyBitsy M4](https://www.adafruit.com/product/3800)
* [Adafruit Metro M4 Express Airlift](https://www.adafruit.com/product/4000)
diff --git a/src/machine/board_feather-nrf52840.go b/src/machine/board_feather-nrf52840.go
new file mode 100644
index 000000000..330042e7d
--- /dev/null
+++ b/src/machine/board_feather-nrf52840.go
@@ -0,0 +1,105 @@
+// +build feather_nrf52840
+
+package machine
+
+const HasLowFrequencyCrystal = true
+
+// GPIO Pins
+const (
+ D0 = P0_25 // UART TX
+ D1 = P0_24 // UART RX
+ D2 = P0_10 // NFC2
+ D3 = P1_15 // LED1
+ D4 = P1_10 // LED2
+ D5 = P1_08
+ D6 = P0_07
+ D7 = P1_02 // Button
+ D8 = P0_16 // NeoPixel
+ D9 = P0_26
+ D10 = P0_27
+ D11 = P0_06
+ D12 = P0_08
+ D13 = P1_09
+ D14 = P0_04 // A0
+ D15 = P0_05 // A1
+ D16 = P0_30 // A2
+ D17 = P0_28 // A3
+ D18 = P0_02 // A4
+ D19 = P0_03 // A5
+ D20 = P0_29 // Battery
+ D21 = P0_31 // AREF
+ D22 = P0_12 // I2C SDA
+ D23 = P0_11 // I2C SCL
+ D24 = P0_15 // SPI MISO
+ D25 = P0_13 // SPI MOSI
+ D26 = P0_14 // SPI SCK
+ D27 = P0_19 // QSPI CLK
+ D28 = P0_20 // QSPI CS
+ D29 = P0_17 // QSPI Data 0
+ D30 = P0_22 // QSPI Data 1
+ D31 = P0_23 // QSPI Data 2
+ D32 = P0_21 // QSPI Data 3
+ D33 = P0_09 // NFC1 (test point on bottom of board)
+)
+
+// Analog Pins
+const (
+ A0 = D14
+ A1 = D15
+ A2 = D16
+ A3 = D17
+ A4 = D18
+ A5 = D19
+ A6 = D20 // Battery
+ A7 = D21 // ARef
+)
+
+const (
+ LED = D3
+ LED1 = LED
+ LED2 = D4
+ NEOPIXEL = D8
+ BUTTON = D7
+
+ QSPI_SCK = D27
+ QSPI_CS = D28
+ QSPI_DATA0 = D29
+ QSPI_DATA1 = D30
+ QSPI_DATA2 = D31
+ QSPI_DATA3 = D32
+)
+
+// UART0 pins (logical UART1)
+const (
+ UART_RX_PIN = D0
+ UART_TX_PIN = D1
+)
+
+// UART0 is the USB device
+var (
+ UART0 = USB
+)
+
+// I2C pins
+const (
+ SDA_PIN = D22 // I2C0 external
+ SCL_PIN = D23 // I2C0 external
+)
+
+// SPI pins
+const (
+ SPI0_SCK_PIN = D26 // SCK
+ SPI0_MOSI_PIN = D25 // MOSI
+ SPI0_MISO_PIN = D24 // MISO
+)
+
+// USB CDC identifiers
+const (
+ usb_STRING_PRODUCT = "Adafruit Feather nRF52840 Express"
+ usb_STRING_MANUFACTURER = "Adafruit"
+)
+
+var (
+ usb_VID uint16 = 0x239A
+ usb_PID uint16 = 0x0029
+)
diff --git a/targets/feather-nrf52840.json b/targets/feather-nrf52840.json
new file mode 100644
index 000000000..397f6e35a
--- /dev/null
+++ b/targets/feather-nrf52840.json
@@ -0,0 +1,10 @@
+{
+ "inherits": ["nrf52840"],
+ "build-tags": ["feather_nrf52840","nrf52840_reset_uf2"],
+ "flash-1200-bps-reset": "true",
+ "flash-method": "msd",
+ "msd-volume-name": "FTHR840BOOT",
+ "msd-firmware-name": "firmware.uf2",
+ "uf2-family-id": "0xADA52840",
+ "linkerscript": "targets/circuitplay-bluefruit.ld"
+}