From b65b4d51eb018520bed7686f97508d779c5097f4 Mon Sep 17 00:00:00 2001 From: Florent de Lamotte Date: Thu, 19 Jun 2025 15:18:58 +0200 Subject: [PATCH] Apply refactoring to xiao_nrf52 and xiao_s3 --- src/helpers/CustomSX1262.h | 9 +++++++++ variants/xiao_nrf52/target.cpp | 33 +------------------------------ variants/xiao_s3_wio/target.cpp | 35 ++++----------------------------- 3 files changed, 14 insertions(+), 63 deletions(-) diff --git a/src/helpers/CustomSX1262.h b/src/helpers/CustomSX1262.h index 8ce742c7..8c93d384 100644 --- a/src/helpers/CustomSX1262.h +++ b/src/helpers/CustomSX1262.h @@ -47,6 +47,15 @@ class CustomSX1262 : public SX1262 { #ifdef SX126X_RX_BOOSTED_GAIN setRxBoostedGainMode(SX126X_RX_BOOSTED_GAIN); #endif + #if defined(SX126X_RXEN) || defined(SX126X_TXEN) + #ifndef SX1262X_RXEN + #define SX1262X_RXEN RADIOLIB_NC + #endif + #ifndef SX1262X_TXEN + #define SX1262X_TXEN RADIOLIB_NC + #endif + setRfSwitchPins(SX126X_RXEN, SX126X_TXEN); + #endif return true; // success } diff --git a/variants/xiao_nrf52/target.cpp b/variants/xiao_nrf52/target.cpp index 853855cd..ad952ea2 100644 --- a/variants/xiao_nrf52/target.cpp +++ b/variants/xiao_nrf52/target.cpp @@ -19,38 +19,7 @@ EnvironmentSensorManager sensors; bool radio_init() { rtc_clock.begin(Wire); -#ifdef SX126X_DIO3_TCXO_VOLTAGE - float tcxo = SX126X_DIO3_TCXO_VOLTAGE; -#else - float tcxo = 1.6f; -#endif - - SPI.setPins(P_LORA_MISO, P_LORA_SCLK, P_LORA_MOSI); - SPI.begin(); - int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, LORA_TX_POWER, 8, tcxo); - if (status != RADIOLIB_ERR_NONE) { - Serial.print("ERROR: radio init failed: "); - Serial.println(status); - return false; // fail - } - - radio.setCRC(1); - -#if defined(SX126X_RXEN) && defined(SX126X_TXEN) - radio.setRfSwitchPins(SX126X_RXEN, SX126X_TXEN); -#endif - -#ifdef SX126X_CURRENT_LIMIT - radio.setCurrentLimit(SX126X_CURRENT_LIMIT); -#endif -#ifdef SX126X_DIO2_AS_RF_SWITCH - radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); -#endif -#ifdef SX126X_RX_BOOSTED_GAIN - radio.setRxBoostedGainMode(SX126X_RX_BOOSTED_GAIN); -#endif - - return true; // success + return radio.std_init(&SPI); } uint32_t radio_get_rng_seed() { diff --git a/variants/xiao_s3_wio/target.cpp b/variants/xiao_s3_wio/target.cpp index 2f443205..ea45f74e 100644 --- a/variants/xiao_s3_wio/target.cpp +++ b/variants/xiao_s3_wio/target.cpp @@ -30,39 +30,12 @@ bool radio_init() { pinMode(21, INPUT); pinMode(48, OUTPUT); -#ifdef SX126X_DIO3_TCXO_VOLTAGE - float tcxo = SX126X_DIO3_TCXO_VOLTAGE; -#else - float tcxo = 1.6f; -#endif - -#if defined(P_LORA_SCLK) + #if defined(P_LORA_SCLK) spi.begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI); + return radio.std_init(&spi); +#else + return radio.std_init(); #endif - int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, LORA_TX_POWER, 8, tcxo); - if (status != RADIOLIB_ERR_NONE) { - Serial.print("ERROR: radio init failed: "); - Serial.println(status); - return false; // fail - } - - radio.setCRC(1); - -#if defined(SX126X_RXEN) && defined(SX126X_TXEN) - radio.setRfSwitchPins(SX126X_RXEN, SX126X_TXEN); -#endif - -#ifdef SX126X_CURRENT_LIMIT - radio.setCurrentLimit(SX126X_CURRENT_LIMIT); -#endif -#ifdef SX126X_DIO2_AS_RF_SWITCH - radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); -#endif -#ifdef SX126X_RX_BOOSTED_GAIN - radio.setRxBoostedGainMode(SX126X_RX_BOOSTED_GAIN); -#endif - - return true; // success } uint32_t radio_get_rng_seed() {