diff --git a/variants/xiao_c6/target.cpp b/variants/xiao_c6/XiaoC6Board.cpp similarity index 98% rename from variants/xiao_c6/target.cpp rename to variants/xiao_c6/XiaoC6Board.cpp index caca57bc..555fed62 100644 --- a/variants/xiao_c6/target.cpp +++ b/variants/xiao_c6/XiaoC6Board.cpp @@ -1,7 +1,7 @@ #include #include "target.h" -ESP32Board board; +XiaoC6Board board; #if defined(P_LORA_SCLK) static SPIClass spi(0); @@ -47,3 +47,5 @@ mesh::LocalIdentity radio_new_identity() { RadioNoiseListener rng(radio); return mesh::LocalIdentity(&rng); // create new random identity } + + diff --git a/variants/xiao_c6/XiaoC6Board.h b/variants/xiao_c6/XiaoC6Board.h new file mode 100644 index 00000000..86c3475c --- /dev/null +++ b/variants/xiao_c6/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..95dede08 100644 --- a/variants/xiao_c6/platformio.ini +++ b/variants/xiao_c6/platformio.ini @@ -28,6 +28,7 @@ build_flags = -D DISABLE_WIFI_OTA=1 build_src_filter = ${esp32c6_base.build_src_filter} +<../variants/xiao_c6> + + [env:Xiao_C6_Repeater] extends = Xiao_C6 @@ -87,6 +88,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.h b/variants/xiao_c6/target.h index c26d5958..0fbb0bb2 100644 --- a/variants/xiao_c6/target.h +++ b/variants/xiao_c6/target.h @@ -2,13 +2,14 @@ #define RADIOLIB_STATIC_ONLY 1 #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;