From 64e35908c955bef98eb283f9cac4ed01e046a7cf Mon Sep 17 00:00:00 2001 From: Chloe Bethel Date: Sun, 31 May 2026 17:51:15 +0100 Subject: [PATCH] Add Xiao RP2040 and RP2350 variants (#10109) --- .../rp2040/seeed_xiao_rp2040/platformio.ini | 16 +++++++++++ variants/rp2040/seeed_xiao_rp2040/variant.cpp | 10 +++++++ variants/rp2040/seeed_xiao_rp2040/variant.h | 27 +++++++++++++++++++ .../rp2350/seeed_xiao_rp2350/platformio.ini | 15 +++++++++++ variants/rp2350/seeed_xiao_rp2350/variant.h | 26 ++++++++++++++++++ 5 files changed, 94 insertions(+) create mode 100644 variants/rp2040/seeed_xiao_rp2040/platformio.ini create mode 100644 variants/rp2040/seeed_xiao_rp2040/variant.cpp create mode 100644 variants/rp2040/seeed_xiao_rp2040/variant.h create mode 100644 variants/rp2350/seeed_xiao_rp2350/platformio.ini create mode 100644 variants/rp2350/seeed_xiao_rp2350/variant.h diff --git a/variants/rp2040/seeed_xiao_rp2040/platformio.ini b/variants/rp2040/seeed_xiao_rp2040/platformio.ini new file mode 100644 index 000000000..985b573a9 --- /dev/null +++ b/variants/rp2040/seeed_xiao_rp2040/platformio.ini @@ -0,0 +1,16 @@ +[env:seeed_xiao_rp2040] +extends = rp2040_base +board = seeed_xiao_rp2040 +board_level = pr +upload_protocol = picotool +# add our variants files to the include and src paths +build_src_filter = ${rp2040_base.build_src_filter} +<../variants/rp2040/seeed_xiao_rp2040/> +build_flags = + ${rp2040_base.build_flags} + -D PRIVATE_HW + -D SEEED_XIAO_RP2040 + -I variants/rp2040/seeed_xiao_rp2040 + -D DEBUG_RP2040_PORT=Serial + ;-D HW_SPI1_DEVICE +debug_build_flags = ${rp2040_base.build_flags}, -g +debug_tool = cmsis-dap ; for e.g. Picotool diff --git a/variants/rp2040/seeed_xiao_rp2040/variant.cpp b/variants/rp2040/seeed_xiao_rp2040/variant.cpp new file mode 100644 index 000000000..420dcbb87 --- /dev/null +++ b/variants/rp2040/seeed_xiao_rp2040/variant.cpp @@ -0,0 +1,10 @@ +#include + +// Turn off the green and blue LEDs, which are on by default. +void initVariant() +{ + pinMode(PIN_LED_G, OUTPUT); + pinMode(PIN_LED_B, OUTPUT); + digitalWrite(PIN_LED_G, HIGH); + digitalWrite(PIN_LED_B, HIGH); +} \ No newline at end of file diff --git a/variants/rp2040/seeed_xiao_rp2040/variant.h b/variants/rp2040/seeed_xiao_rp2040/variant.h new file mode 100644 index 000000000..2b6ed6372 --- /dev/null +++ b/variants/rp2040/seeed_xiao_rp2040/variant.h @@ -0,0 +1,27 @@ +#define ARDUINO_ARCH_AVR + +// #define BUTTON_PIN -1 +#define LED_POWER PIN_LED_R +// active low RGB led +#define LED_POWER_ON 0 + +// no ADC by default +#define BATTERY_PIN -1 +// ratio of voltage divider = 3.0 (R1=200k, R2=100k) +#define ADC_MULTIPLIER 3 +#define BATTERY_SENSE_RESOLUTION_BITS ADC_RESOLUTION + +#define USE_SX1262 + +#define LORA_SCK 2 +#define LORA_MISO 4 +#define LORA_MOSI 3 + +#define SX126X_CS 6 +#define SX126X_DIO1 27 +#define SX126X_BUSY 29 +#define SX126X_RESET 28 +#define SX126X_RXEN 7 + +#define SX126X_DIO2_AS_RF_SWITCH +#define SX126X_DIO3_TCXO_VOLTAGE 1.8 \ No newline at end of file diff --git a/variants/rp2350/seeed_xiao_rp2350/platformio.ini b/variants/rp2350/seeed_xiao_rp2350/platformio.ini new file mode 100644 index 000000000..20f85876f --- /dev/null +++ b/variants/rp2350/seeed_xiao_rp2350/platformio.ini @@ -0,0 +1,15 @@ +[env:seeed_xiao_rp2350] +extends = rp2350_base +board = seeed_xiao_rp2350 +board_level = pr +upload_protocol = picotool + +# add our variants files to the include and src paths +build_flags = + ${rp2350_base.build_flags} + -D PRIVATE_HW + -I variants/rp2350/seeed_xiao_rp2350 + -D DEBUG_RP2040_PORT=Serial + ;-D HW_SPI1_DEVICE +debug_build_flags = ${rp2350_base.build_flags}, -g +debug_tool = cmsis-dap ; for e.g. Picotool diff --git a/variants/rp2350/seeed_xiao_rp2350/variant.h b/variants/rp2350/seeed_xiao_rp2350/variant.h new file mode 100644 index 000000000..af16220bb --- /dev/null +++ b/variants/rp2350/seeed_xiao_rp2350/variant.h @@ -0,0 +1,26 @@ +#define ARDUINO_ARCH_AVR + +// #define BUTTON_PIN -1 +#define LED_POWER PIN_LED + +// no ADC by default +#define BATTERY_PIN -1 +// ratio of voltage divider = 3.0 (R1=200k, R2=100k) +#define ADC_MULTIPLIER 3 +// ADC_RESOLUTION is missing upstream, hardcode it here. +#define BATTERY_SENSE_RESOLUTION_BITS 12 + +#define USE_SX1262 + +#define LORA_SCK 2 +#define LORA_MISO 4 +#define LORA_MOSI 3 + +#define SX126X_CS 6 +#define SX126X_DIO1 27 +#define SX126X_BUSY 5 +#define SX126X_RESET 28 +#define SX126X_RXEN 7 + +#define SX126X_DIO2_AS_RF_SWITCH +#define SX126X_DIO3_TCXO_VOLTAGE 1.8 \ No newline at end of file