From 4dc3dda2d8d13f2d76260589fed96e026b63eb5b Mon Sep 17 00:00:00 2001 From: recrof Date: Sat, 11 Oct 2025 18:32:02 +0200 Subject: [PATCH] xiao c3: migrated to esm, added missing roles, cleanup --- .../xiao_c3}/XiaoC3Board.h | 5 -- variants/xiao_c3/platformio.ini | 63 +++++++++++++++---- variants/xiao_c3/target.cpp | 9 ++- variants/xiao_c3/target.h | 7 +-- 4 files changed, 61 insertions(+), 23 deletions(-) rename {src/helpers => variants/xiao_c3}/XiaoC3Board.h (95%) diff --git a/src/helpers/XiaoC3Board.h b/variants/xiao_c3/XiaoC3Board.h similarity index 95% rename from src/helpers/XiaoC3Board.h rename to variants/xiao_c3/XiaoC3Board.h index c97f22b7..6ea1c15f 100644 --- a/src/helpers/XiaoC3Board.h +++ b/variants/xiao_c3/XiaoC3Board.h @@ -3,11 +3,6 @@ #include #include -// LoRa radio module pins for custom Seeduino XiaoC3 build -// #define P_LORA_SCLK D8 -// #define P_LORA_MISO D9 -// #define P_LORA_MOSI D10 - #include #include diff --git a/variants/xiao_c3/platformio.ini b/variants/xiao_c3/platformio.ini index 1f27dfc8..617f610e 100644 --- a/variants/xiao_c3/platformio.ini +++ b/variants/xiao_c3/platformio.ini @@ -3,6 +3,8 @@ extends = esp32_base board = seeed_xiao_esp32c3 build_flags = ${esp32_base.build_flags} + ${sensor_base.build_flags} + -UENV_INCLUDE_GPS -I variants/xiao_c3 -D ESP32_CPU_FREQ=80 -D PIN_VBAT_READ=D0 @@ -12,23 +14,27 @@ build_flags = -D P_LORA_BUSY=D3 -D PIN_BOARD_SDA=D6 -D PIN_BOARD_SCL=D7 + -D RADIO_CLASS=CustomSX1262 + -D WRAPPER_CLASS=CustomSX1262Wrapper + -D SX126X_RX_BOOSTED_GAIN=1 + -D LORA_TX_POWER=22 -D SX126X_RXEN=D5 -D SX126X_DIO2_AS_RF_SWITCH=true -D SX126X_DIO3_TCXO_VOLTAGE=1.8 -D SX126X_CURRENT_LIMIT=140 build_src_filter = ${esp32_base.build_src_filter} +<../variants/xiao_c3> + + +lib_deps = + ${esp32_base.lib_deps} + ${sensor_base.lib_deps} -[env:Xiao_C3_sx1262_repeater] +[env:Xiao_C3_repeater] extends = Xiao_esp32_C3 build_src_filter = ${Xiao_esp32_C3.build_src_filter} +<../examples/simple_repeater/*.cpp> build_flags = ${Xiao_esp32_C3.build_flags} - -D RADIO_CLASS=CustomSX1262 - -D WRAPPER_CLASS=CustomSX1262Wrapper - -D SX126X_RX_BOOSTED_GAIN=1 - -D LORA_TX_POWER=22 -D ADVERT_NAME='"Xiao C3 Repeater"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 @@ -41,6 +47,24 @@ lib_deps = ${esp32_ota.lib_deps} bakercp/CRC32 @ ^2.0.0 +[env:Xiao_C3_room_server] +extends = Xiao_esp32_C3 +build_src_filter = ${Xiao_esp32_C3.build_src_filter} + +<../examples/simple_room_server/*.cpp> +build_flags = + ${Xiao_esp32_C3.build_flags} + -D ADVERT_NAME='"Xiao C3 Room"' + -D ADVERT_LAT=0.0 + -D ADVERT_LON=0.0 + -D ADMIN_PASSWORD='"password"' + -D ROOM_PASSWORD='"hello"' +; -D MESH_PACKET_LOGGING=1 +; -D MESH_DEBUG=1 +lib_deps = + ${Xiao_esp32_C3.lib_deps} + ${esp32_ota.lib_deps} + bakercp/CRC32 @ ^2.0.0 + [env:Xiao_C3_companion_radio_ble] extends = Xiao_esp32_C3 build_src_filter = ${Xiao_esp32_C3.build_src_filter} @@ -48,10 +72,6 @@ build_src_filter = ${Xiao_esp32_C3.build_src_filter} + build_flags = ${Xiao_esp32_C3.build_flags} - -D RADIO_CLASS=CustomSX1262 - -D WRAPPER_CLASS=CustomSX1262Wrapper - -D SX126X_RX_BOOSTED_GAIN=1 - -D LORA_TX_POWER=22 -D MAX_CONTACTS=300 -D MAX_GROUP_CHANNELS=8 -D BLE_PIN_CODE=123456 @@ -71,10 +91,6 @@ build_src_filter = ${Xiao_esp32_C3.build_src_filter} + build_flags = ${Xiao_esp32_C3.build_flags} - -D RADIO_CLASS=CustomSX1262 - -D WRAPPER_CLASS=CustomSX1262Wrapper - -D SX126X_RX_BOOSTED_GAIN=1 - -D LORA_TX_POWER=22 -D MAX_CONTACTS=300 -D MAX_GROUP_CHANNELS=8 -D OFFLINE_QUEUE_SIZE=256 @@ -85,3 +101,24 @@ lib_deps = ${Xiao_esp32_C3.lib_deps} ${esp32_ota.lib_deps} densaugeo/base64 @ ~1.4.0 + +[env:Xiao_C3_companion_radio_wifi] +extends = Xiao_esp32_C3 +build_src_filter = ${Xiao_esp32_C3.build_src_filter} + +<../examples/companion_radio/*.cpp> + + +build_flags = + ${Xiao_esp32_C3.build_flags} + -D MAX_CONTACTS=300 + -D MAX_GROUP_CHANNELS=8 + -D OFFLINE_QUEUE_SIZE=256 + -D WIFI_DEBUG_LOGGING=1 + -D WIFI_SSID='"myssid"' + -D WIFI_PWD='"mypwd"' + ; -D BLE_DEBUG_LOGGING=1 + ; -D MESH_PACKET_LOGGING=1 + ; -D MESH_DEBUG=1 +lib_deps = + ${Xiao_esp32_C3.lib_deps} + ${esp32_ota.lib_deps} + densaugeo/base64 @ ~1.4.0 diff --git a/variants/xiao_c3/target.cpp b/variants/xiao_c3/target.cpp index b3701ca7..fe3f7196 100644 --- a/variants/xiao_c3/target.cpp +++ b/variants/xiao_c3/target.cpp @@ -14,7 +14,14 @@ WRAPPER_CLASS radio_driver(radio, board); ESP32RTCClock fallback_clock; AutoDiscoverRTCClock rtc_clock(fallback_clock); -SensorManager sensors; + +#if ENV_INCLUDE_GPS + #include + MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1); + EnvironmentSensorManager sensors = EnvironmentSensorManager(nmea); +#else + EnvironmentSensorManager sensors; +#endif bool radio_init() { fallback_clock.begin(); diff --git a/variants/xiao_c3/target.h b/variants/xiao_c3/target.h index fa29e52b..a7ef4421 100644 --- a/variants/xiao_c3/target.h +++ b/variants/xiao_c3/target.h @@ -3,16 +3,15 @@ #define RADIOLIB_STATIC_ONLY 1 #include #include -#include +#include #include -#include #include -#include +#include extern XiaoC3Board board; extern WRAPPER_CLASS radio_driver; extern AutoDiscoverRTCClock rtc_clock; -extern SensorManager sensors; +extern EnvironmentSensorManager sensors; bool radio_init(); uint32_t radio_get_rng_seed();