From ce4e559c01dbd20d492189d9d3e2ab7851334cb1 Mon Sep 17 00:00:00 2001 From: Alexander Begoon Date: Thu, 7 Aug 2025 22:30:33 +0200 Subject: [PATCH] Add support for Xiao ESP32C6 with external antenna configuration --- src/helpers/esp32/XiaoC6Board.h | 28 ++++++++++++++++++++++++++++ variants/xiao_c6/platformio.ini | 1 + variants/xiao_c6/target.cpp | 2 +- variants/xiao_c6/target.h | 3 ++- 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/helpers/esp32/XiaoC6Board.h diff --git a/src/helpers/esp32/XiaoC6Board.h b/src/helpers/esp32/XiaoC6Board.h new file mode 100644 index 00000000..86c3475c --- /dev/null +++ b/src/helpers/esp32/XiaoC6Board.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +class XiaoC6Board : public ESP32Board { +public: + void begin() { + ESP32Board::begin(); + +#ifdef USE_XIAO_ESP32C6_EXTERNAL_ANTENNA +// Connect an external antenna to your XIAO ESP32C6 otherwise, it may be damaged! + pinMode(3, OUTPUT); + digitalWrite(3, LOW); // Activate RF switch control + + delay(100); + + pinMode(14, OUTPUT); + digitalWrite(14, HIGH); // Use external antenna +#endif + } + + const char* getManufacturerName() const override { + return "Xiao C6"; + } +}; + + diff --git a/variants/xiao_c6/platformio.ini b/variants/xiao_c6/platformio.ini index 9ad07aef..c27df55e 100644 --- a/variants/xiao_c6/platformio.ini +++ b/variants/xiao_c6/platformio.ini @@ -87,6 +87,7 @@ build_flags = -D SX126X_DIO3_TCXO_VOLTAGE=1.8 -D SX126X_CURRENT_LIMIT=140 -D SX126X_RX_BOOSTED_GAIN=1 + -D USE_XIAO_ESP32C6_EXTERNAL_ANTENNA=1 [env:Meshimi_Repeater] extends = Meshimi diff --git a/variants/xiao_c6/target.cpp b/variants/xiao_c6/target.cpp index caca57bc..ff77474a 100644 --- a/variants/xiao_c6/target.cpp +++ b/variants/xiao_c6/target.cpp @@ -1,7 +1,7 @@ #include #include "target.h" -ESP32Board board; +XiaoC6Board board; #if defined(P_LORA_SCLK) static SPIClass spi(0); diff --git a/variants/xiao_c6/target.h b/variants/xiao_c6/target.h index c26d5958..e1469228 100644 --- a/variants/xiao_c6/target.h +++ b/variants/xiao_c6/target.h @@ -4,11 +4,12 @@ #include #include #include +#include #include #include #include -extern ESP32Board board; +extern XiaoC6Board board; extern WRAPPER_CLASS radio_driver; extern AutoDiscoverRTCClock rtc_clock; extern SensorManager sensors;