|
|
@@ -9,6 +9,48 @@ class CustomSX1262 : public SX1262 {
|
|
|
public:
|
|
|
CustomSX1262(Module *mod) : SX1262(mod) { }
|
|
|
|
|
|
+ bool std_init(SPIClass* spi = NULL) {
|
|
|
+ #ifdef SX126X_DIO3_TCXO_VOLTAGE
|
|
|
+ float tcxo = SX126X_DIO3_TCXO_VOLTAGE;
|
|
|
+ #else
|
|
|
+ float tcxo = 1.6f;
|
|
|
+ #endif
|
|
|
+
|
|
|
+ #ifdef LORA_CR
|
|
|
+ uint8_t cr = LORA_CR;
|
|
|
+ #else
|
|
|
+ uint8_t cr = 5;
|
|
|
+ #endif
|
|
|
+
|
|
|
+ #if defined(P_LORA_SCLK)
|
|
|
+ #ifdef NRF52_PLATFORM
|
|
|
+ if (spi) { spi->setPins(P_LORA_MISO, P_LORA_SCLK, P_LORA_MOSI); spi->begin(); }
|
|
|
+ #else
|
|
|
+ if (spi) spi->begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI);
|
|
|
+ #endif
|
|
|
+ #endif
|
|
|
+ int status = begin(LORA_FREQ, LORA_BW, LORA_SF, 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
|
|
|
+ }
|
|
|
+
|
|
|
+ setCRC(1);
|
|
|
+
|
|
|
+ #ifdef SX126X_CURRENT_LIMIT
|
|
|
+ setCurrentLimit(SX126X_CURRENT_LIMIT);
|
|
|
+ #endif
|
|
|
+ #ifdef SX126X_DIO2_AS_RF_SWITCH
|
|
|
+ setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH);
|
|
|
+ #endif
|
|
|
+ #ifdef SX126X_RX_BOOSTED_GAIN
|
|
|
+ setRxBoostedGainMode(SX126X_RX_BOOSTED_GAIN);
|
|
|
+ #endif
|
|
|
+
|
|
|
+ return true; // success
|
|
|
+ }
|
|
|
+
|
|
|
bool isReceiving() {
|
|
|
uint16_t irq = getIrqFlags();
|
|
|
bool detected = (irq & SX126X_IRQ_HEADER_VALID) || (irq & SX126X_IRQ_PREAMBLE_DETECTED);
|