From cc5f21ab09fef7e9526b5991106b1ac770614d25 Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Wed, 15 Jan 2025 02:14:52 +1100 Subject: [PATCH] * more options for setting radio params via .ini file --- examples/ping_client/main.cpp | 19 +++++++++++++++- examples/ping_server/main.cpp | 19 +++++++++++++++- examples/simple_repeater/main.cpp | 32 +++++++++++++++++++++++++-- examples/simple_secure_chat/main.cpp | 33 +++++++++++++++++++++++++++- examples/test_admin/main.cpp | 17 ++++++++++++-- 5 files changed, 113 insertions(+), 7 deletions(-) diff --git a/examples/ping_client/main.cpp b/examples/ping_client/main.cpp index 8259cf58..e77ce9b1 100644 --- a/examples/ping_client/main.cpp +++ b/examples/ping_client/main.cpp @@ -11,6 +11,19 @@ /* ------------------------------ Config -------------------------------- */ +#ifndef LORA_FREQ + #define LORA_FREQ 915.0 +#endif +#ifndef LORA_BW + #define LORA_BW 125 +#endif +#ifndef LORA_SF + #define LORA_SF 10 +#endif +#ifndef LORA_CR + #define LORA_CR 5 +#endif + #ifdef HELTEC_LORA_V3 #include static HeltecV3Board board; @@ -118,8 +131,12 @@ void setup() { Serial.begin(115200); board.begin(); +#if defined(P_LORA_SCLK) spi.begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI); - int status = radio.begin(915.0, 250, 9, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22); + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8); +#else + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8); +#endif if (status != RADIOLIB_ERR_NONE) { Serial.print("ERROR: radio init failed: "); Serial.println(status); diff --git a/examples/ping_server/main.cpp b/examples/ping_server/main.cpp index 61fef4c3..8b7eee97 100644 --- a/examples/ping_server/main.cpp +++ b/examples/ping_server/main.cpp @@ -11,6 +11,19 @@ /* ------------------------------ Config -------------------------------- */ +#ifndef LORA_FREQ + #define LORA_FREQ 915.0 +#endif +#ifndef LORA_BW + #define LORA_BW 125 +#endif +#ifndef LORA_SF + #define LORA_SF 10 +#endif +#ifndef LORA_CR + #define LORA_CR 5 +#endif + #ifdef HELTEC_LORA_V3 #include static HeltecV3Board board; @@ -147,8 +160,12 @@ void setup() { Serial.begin(115200); board.begin(); +#if defined(P_LORA_SCLK) spi.begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI); - int status = radio.begin(915.0, 250, 9, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22); + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8); +#else + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8); +#endif if (status != RADIOLIB_ERR_NONE) { Serial.print("ERROR: radio init failed: "); Serial.println(status); diff --git a/examples/simple_repeater/main.cpp b/examples/simple_repeater/main.cpp index 4bd4361e..77da0866 100644 --- a/examples/simple_repeater/main.cpp +++ b/examples/simple_repeater/main.cpp @@ -12,6 +12,19 @@ /* ------------------------------ Config -------------------------------- */ +#ifndef LORA_FREQ + #define LORA_FREQ 915.0 +#endif +#ifndef LORA_BW + #define LORA_BW 125 +#endif +#ifndef LORA_SF + #define LORA_SF 10 +#endif +#ifndef LORA_CR + #define LORA_CR 5 +#endif + #define ANNOUNCE_DATA "repeater:v1" #define ADMIN_PASSWORD "h^(kl@#)" @@ -296,11 +309,18 @@ void setup() { delay(5000); board.begin(); + +#ifdef SX126X_DIO3_TCXO_VOLTAGE + float tcxo = SX126X_DIO3_TCXO_VOLTAGE; +#else + float tcxo = 1.6f; +#endif + #if defined(P_LORA_SCLK) spi.begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI); - int status = radio.begin(915.0, 250, 9, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22); + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8, tcxo); #else - int status = radio.begin(915.0, 250, 9, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22); + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8, tcxo); #endif if (status != RADIOLIB_ERR_NONE) { Serial.print("ERROR: radio init failed: "); @@ -308,6 +328,14 @@ void setup() { halt(); } +#ifdef SX126X_CURRENT_LIMIT + radio.setCurrentLimit(SX126X_CURRENT_LIMIT); +#endif + +#ifdef SX126X_DIO2_AS_RF_SWITCH + radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); +#endif + SPIFFS.begin(true); IdentityStore store(SPIFFS, "/identity"); if (!store.load("_main", the_mesh.self_id)) { diff --git a/examples/simple_secure_chat/main.cpp b/examples/simple_secure_chat/main.cpp index 4a1c6c75..5f39abf5 100644 --- a/examples/simple_secure_chat/main.cpp +++ b/examples/simple_secure_chat/main.cpp @@ -11,6 +11,19 @@ /* ---------------------------------- CONFIGURATION ------------------------------------- */ +#ifndef LORA_FREQ + #define LORA_FREQ 915.0 +#endif +#ifndef LORA_BW + #define LORA_BW 125 +#endif +#ifndef LORA_SF + #define LORA_SF 10 +#endif +#ifndef LORA_CR + #define LORA_CR 5 +#endif + //#define RUN_AS_ALICE true #if RUN_AS_ALICE @@ -243,14 +256,32 @@ void setup() { Serial.begin(115200); board.begin(); +#ifdef SX126X_DIO3_TCXO_VOLTAGE + float tcxo = SX126X_DIO3_TCXO_VOLTAGE; +#else + float tcxo = 1.6f; +#endif + +#if defined(P_LORA_SCLK) spi.begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI); - int status = radio.begin(915.0, 250, 9, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22); + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8, tcxo); +#else + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8, tcxo); +#endif if (status != RADIOLIB_ERR_NONE) { Serial.print("ERROR: radio init failed: "); Serial.println(status); halt(); } +#ifdef SX126X_CURRENT_LIMIT + radio.setCurrentLimit(SX126X_CURRENT_LIMIT); +#endif + +#ifdef SX126X_DIO2_AS_RF_SWITCH + radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); +#endif + fast_rng.begin(radio.random(0x7FFFFFFF)); #if RUN_AS_ALICE diff --git a/examples/test_admin/main.cpp b/examples/test_admin/main.cpp index 3cc964ae..827def95 100644 --- a/examples/test_admin/main.cpp +++ b/examples/test_admin/main.cpp @@ -11,6 +11,19 @@ /* ---------------------------------- CONFIGURATION ------------------------------------- */ +#ifndef LORA_FREQ + #define LORA_FREQ 915.0 +#endif +#ifndef LORA_BW + #define LORA_BW 125 +#endif +#ifndef LORA_SF + #define LORA_SF 10 +#endif +#ifndef LORA_CR + #define LORA_CR 5 +#endif + #define ADMIN_PASSWORD "h^(kl@#)" #ifdef HELTEC_LORA_V3 @@ -225,9 +238,9 @@ void setup() { board.begin(); #if defined(P_LORA_SCLK) spi.begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI); - int status = radio.begin(915.0, 250, 9, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22); + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8); #else - int status = radio.begin(915.0, 250, 9, 5, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22); + int status = radio.begin(LORA_FREQ, LORA_BW, LORA_SF, LORA_CR, RADIOLIB_SX126X_SYNC_WORD_PRIVATE, 22, 8); #endif if (status != RADIOLIB_ERR_NONE) { Serial.print("ERROR: radio init failed: ");