From d83d46829dd9f33f3dcab3c954cae3ebee972d68 Mon Sep 17 00:00:00 2001 From: zackees Date: Sun, 10 May 2026 10:40:24 -0700 Subject: [PATCH] feat(test-matrix): #224 add SuperMini, nice!nano, nRFMicro nRF52840 boards Mirrors FastLED PR FastLED/FastLED#2445 by extending fbuild's regression matrix to cover the three pdcook/nRFMicro-Arduino-Core community boards. Each test platform reuses the nrf52840_dk_adafruit PlatformIO board (no first-party board package exists for these community variants) and sets the matching -DTARGET_* build flag so the FastLED variant code path is exercised in CI. Adds three workflows and Nordic NRF52 README badges. Closes #224 Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/build-nice_nano_nrf52840.yml | 16 ++++++++++++++++ .github/workflows/build-nrfmicro_nrf52840.yml | 16 ++++++++++++++++ .github/workflows/build-supermini_nrf52840.yml | 16 ++++++++++++++++ README.md | 3 +++ tests/platform/README.md | 3 +++ tests/platform/nice_nano_nrf52840/README.md | 11 +++++++++++ tests/platform/nice_nano_nrf52840/platformio.ini | 5 +++++ tests/platform/nice_nano_nrf52840/src/README.md | 3 +++ tests/platform/nice_nano_nrf52840/src/main.ino | 12 ++++++++++++ tests/platform/nrfmicro_nrf52840/README.md | 10 ++++++++++ tests/platform/nrfmicro_nrf52840/platformio.ini | 5 +++++ tests/platform/nrfmicro_nrf52840/src/README.md | 3 +++ tests/platform/nrfmicro_nrf52840/src/main.ino | 12 ++++++++++++ tests/platform/supermini_nrf52840/README.md | 11 +++++++++++ tests/platform/supermini_nrf52840/platformio.ini | 5 +++++ tests/platform/supermini_nrf52840/src/README.md | 3 +++ tests/platform/supermini_nrf52840/src/main.ino | 12 ++++++++++++ 17 files changed, 146 insertions(+) create mode 100644 .github/workflows/build-nice_nano_nrf52840.yml create mode 100644 .github/workflows/build-nrfmicro_nrf52840.yml create mode 100644 .github/workflows/build-supermini_nrf52840.yml create mode 100644 tests/platform/nice_nano_nrf52840/README.md create mode 100644 tests/platform/nice_nano_nrf52840/platformio.ini create mode 100644 tests/platform/nice_nano_nrf52840/src/README.md create mode 100644 tests/platform/nice_nano_nrf52840/src/main.ino create mode 100644 tests/platform/nrfmicro_nrf52840/README.md create mode 100644 tests/platform/nrfmicro_nrf52840/platformio.ini create mode 100644 tests/platform/nrfmicro_nrf52840/src/README.md create mode 100644 tests/platform/nrfmicro_nrf52840/src/main.ino create mode 100644 tests/platform/supermini_nrf52840/README.md create mode 100644 tests/platform/supermini_nrf52840/platformio.ini create mode 100644 tests/platform/supermini_nrf52840/src/README.md create mode 100644 tests/platform/supermini_nrf52840/src/main.ino diff --git a/.github/workflows/build-nice_nano_nrf52840.yml b/.github/workflows/build-nice_nano_nrf52840.yml new file mode 100644 index 00000000..2f8a69c1 --- /dev/null +++ b/.github/workflows/build-nice_nano_nrf52840.yml @@ -0,0 +1,16 @@ +name: Build nice!nano nRF52840 + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + uses: ./.github/workflows/template_build.yml + with: + workflow-name: "nice!nano nRF52840" + test-dir: "tests/platform/nice_nano_nrf52840" + env-name: "nice_nano_nrf52840" + firmware-ext: "hex" diff --git a/.github/workflows/build-nrfmicro_nrf52840.yml b/.github/workflows/build-nrfmicro_nrf52840.yml new file mode 100644 index 00000000..d57389f5 --- /dev/null +++ b/.github/workflows/build-nrfmicro_nrf52840.yml @@ -0,0 +1,16 @@ +name: Build nRFMicro nRF52840 + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + uses: ./.github/workflows/template_build.yml + with: + workflow-name: "nRFMicro nRF52840" + test-dir: "tests/platform/nrfmicro_nrf52840" + env-name: "nrfmicro_nrf52840" + firmware-ext: "hex" diff --git a/.github/workflows/build-supermini_nrf52840.yml b/.github/workflows/build-supermini_nrf52840.yml new file mode 100644 index 00000000..3cf39015 --- /dev/null +++ b/.github/workflows/build-supermini_nrf52840.yml @@ -0,0 +1,16 @@ +name: Build SuperMini nRF52840 + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + uses: ./.github/workflows/template_build.yml + with: + workflow-name: "SuperMini nRF52840" + test-dir: "tests/platform/supermini_nrf52840" + env-name: "supermini_nrf52840" + firmware-ext: "hex" diff --git a/README.md b/README.md index 15501b5c..15ed78ba 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,9 @@ ### Nordic NRF52 [![Build nRF52840 DK](https://github.com/fastled/fbuild/actions/workflows/build-nrf52840_dk.yml/badge.svg)](https://github.com/fastled/fbuild/actions/workflows/build-nrf52840_dk.yml) +[![Build SuperMini nRF52840](https://github.com/fastled/fbuild/actions/workflows/build-supermini_nrf52840.yml/badge.svg)](https://github.com/fastled/fbuild/actions/workflows/build-supermini_nrf52840.yml) +[![Build nice!nano nRF52840](https://github.com/fastled/fbuild/actions/workflows/build-nice_nano_nrf52840.yml/badge.svg)](https://github.com/fastled/fbuild/actions/workflows/build-nice_nano_nrf52840.yml) +[![Build nRFMicro nRF52840](https://github.com/fastled/fbuild/actions/workflows/build-nrfmicro_nrf52840.yml/badge.svg)](https://github.com/fastled/fbuild/actions/workflows/build-nrfmicro_nrf52840.yml) ### Apollo3 [![Build Apollo3 RedBoard](https://github.com/fastled/fbuild/actions/workflows/build-apollo3_red.yml/badge.svg)](https://github.com/fastled/fbuild/actions/workflows/build-apollo3_red.yml) diff --git a/tests/platform/README.md b/tests/platform/README.md index fc5ed9bf..5941272a 100644 --- a/tests/platform/README.md +++ b/tests/platform/README.md @@ -29,6 +29,9 @@ PlatformIO-compatible test projects for each supported hardware platform. Each s | `mgm240/` | EFR32MG24 | ARM Cortex-M33 | Arduino | | `nano_every/` | ATmega4809 | MegaAVR | Arduino | | `nrf52840_dk/` | nRF52840 | ARM Cortex-M4F | Arduino | +| `supermini_nrf52840/` | nRF52840 | ARM Cortex-M4F | Arduino | +| `nice_nano_nrf52840/` | nRF52840 | ARM Cortex-M4F | Arduino | +| `nrfmicro_nrf52840/` | nRF52840 | ARM Cortex-M4F | Arduino | | `nucleo_f429zi/` | STM32F429ZI | ARM Cortex-M4F | Arduino | | `nucleo_f439zi/` | STM32F439ZI | ARM Cortex-M4F | Arduino | | `rp2040/` | RP2040 | ARM Cortex-M0+ | Arduino | diff --git a/tests/platform/nice_nano_nrf52840/README.md b/tests/platform/nice_nano_nrf52840/README.md new file mode 100644 index 00000000..a4bbfba2 --- /dev/null +++ b/tests/platform/nice_nano_nrf52840/README.md @@ -0,0 +1,11 @@ +# nice!nano nRF52840 Test Project + +Minimal blink sketch for the nice!nano v2 / ProMicro nRF52840 community board build +validation. + +The board reuses the `nrf52840_dk_adafruit` PlatformIO board because no first-party +PlatformIO board package exists for this community variant. The +`-DTARGET_NICE_NANO_V2` build flag mirrors the define used by FastLED's FastPin +variant block (FastLED/FastLED#2445) so the variant code path is exercised in CI. + +Variant header: https://github.com/pdcook/nRFMicro-Arduino-Core/blob/main/variants/nice_nano/variant.h diff --git a/tests/platform/nice_nano_nrf52840/platformio.ini b/tests/platform/nice_nano_nrf52840/platformio.ini new file mode 100644 index 00000000..c67d8e1f --- /dev/null +++ b/tests/platform/nice_nano_nrf52840/platformio.ini @@ -0,0 +1,5 @@ +[env:nice_nano_nrf52840] +platform = nordicnrf52 +board = nrf52840_dk_adafruit +framework = arduino +build_flags = -DTARGET_NICE_NANO_V2 diff --git a/tests/platform/nice_nano_nrf52840/src/README.md b/tests/platform/nice_nano_nrf52840/src/README.md new file mode 100644 index 00000000..65b93f6c --- /dev/null +++ b/tests/platform/nice_nano_nrf52840/src/README.md @@ -0,0 +1,3 @@ +# src + +Arduino sketch source for the nice!nano nRF52840 test project. diff --git a/tests/platform/nice_nano_nrf52840/src/main.ino b/tests/platform/nice_nano_nrf52840/src/main.ino new file mode 100644 index 00000000..55f1594f --- /dev/null +++ b/tests/platform/nice_nano_nrf52840/src/main.ino @@ -0,0 +1,12 @@ +#include + +void setup() { + pinMode(LED_BUILTIN, OUTPUT); +} + +void loop() { + digitalWrite(LED_BUILTIN, HIGH); + delay(500); + digitalWrite(LED_BUILTIN, LOW); + delay(500); +} diff --git a/tests/platform/nrfmicro_nrf52840/README.md b/tests/platform/nrfmicro_nrf52840/README.md new file mode 100644 index 00000000..7fa9f84f --- /dev/null +++ b/tests/platform/nrfmicro_nrf52840/README.md @@ -0,0 +1,10 @@ +# nRFMicro nRF52840 Test Project + +Minimal blink sketch for the nRFMicro community board build validation. + +The board reuses the `nrf52840_dk_adafruit` PlatformIO board because no first-party +PlatformIO board package exists for this community variant. The `-DTARGET_NRFMICRO` +build flag mirrors the define used by FastLED's FastPin variant block +(FastLED/FastLED#2445) so the variant code path is exercised in CI. + +Variant header: https://github.com/pdcook/nRFMicro-Arduino-Core/blob/main/variants/nRFMicro/variant.h diff --git a/tests/platform/nrfmicro_nrf52840/platformio.ini b/tests/platform/nrfmicro_nrf52840/platformio.ini new file mode 100644 index 00000000..e90d2d37 --- /dev/null +++ b/tests/platform/nrfmicro_nrf52840/platformio.ini @@ -0,0 +1,5 @@ +[env:nrfmicro_nrf52840] +platform = nordicnrf52 +board = nrf52840_dk_adafruit +framework = arduino +build_flags = -DTARGET_NRFMICRO diff --git a/tests/platform/nrfmicro_nrf52840/src/README.md b/tests/platform/nrfmicro_nrf52840/src/README.md new file mode 100644 index 00000000..32806db8 --- /dev/null +++ b/tests/platform/nrfmicro_nrf52840/src/README.md @@ -0,0 +1,3 @@ +# src + +Arduino sketch source for the nRFMicro nRF52840 test project. diff --git a/tests/platform/nrfmicro_nrf52840/src/main.ino b/tests/platform/nrfmicro_nrf52840/src/main.ino new file mode 100644 index 00000000..55f1594f --- /dev/null +++ b/tests/platform/nrfmicro_nrf52840/src/main.ino @@ -0,0 +1,12 @@ +#include + +void setup() { + pinMode(LED_BUILTIN, OUTPUT); +} + +void loop() { + digitalWrite(LED_BUILTIN, HIGH); + delay(500); + digitalWrite(LED_BUILTIN, LOW); + delay(500); +} diff --git a/tests/platform/supermini_nrf52840/README.md b/tests/platform/supermini_nrf52840/README.md new file mode 100644 index 00000000..ae7bf9e7 --- /dev/null +++ b/tests/platform/supermini_nrf52840/README.md @@ -0,0 +1,11 @@ +# SuperMini nRF52840 Test Project + +Minimal blink sketch for the SuperMini nRF52840 community board build validation. + +The board reuses the `nrf52840_dk_adafruit` PlatformIO board because no first-party +PlatformIO board package exists for this community variant. The +`-DTARGET_SUPERMINI_NRF52840` build flag mirrors the define used by FastLED's +FastPin variant block (FastLED/FastLED#2445) so the variant code path is exercised +in CI. + +Variant header: https://github.com/pdcook/nRFMicro-Arduino-Core/blob/main/variants/SuperMini_nRF52840/variant.h diff --git a/tests/platform/supermini_nrf52840/platformio.ini b/tests/platform/supermini_nrf52840/platformio.ini new file mode 100644 index 00000000..25bd8ae4 --- /dev/null +++ b/tests/platform/supermini_nrf52840/platformio.ini @@ -0,0 +1,5 @@ +[env:supermini_nrf52840] +platform = nordicnrf52 +board = nrf52840_dk_adafruit +framework = arduino +build_flags = -DTARGET_SUPERMINI_NRF52840 diff --git a/tests/platform/supermini_nrf52840/src/README.md b/tests/platform/supermini_nrf52840/src/README.md new file mode 100644 index 00000000..c0260fc3 --- /dev/null +++ b/tests/platform/supermini_nrf52840/src/README.md @@ -0,0 +1,3 @@ +# src + +Arduino sketch source for the SuperMini nRF52840 test project. diff --git a/tests/platform/supermini_nrf52840/src/main.ino b/tests/platform/supermini_nrf52840/src/main.ino new file mode 100644 index 00000000..55f1594f --- /dev/null +++ b/tests/platform/supermini_nrf52840/src/main.ino @@ -0,0 +1,12 @@ +#include + +void setup() { + pinMode(LED_BUILTIN, OUTPUT); +} + +void loop() { + digitalWrite(LED_BUILTIN, HIGH); + delay(500); + digitalWrite(LED_BUILTIN, LOW); + delay(500); +}