Implement remote lna toggle cli cmd

This commit is contained in:
João Brázio 2026-02-10 14:56:20 +00:00
parent 3f33455b4d
commit 71136671bd
No known key found for this signature in database
GPG key ID: 56A1490716A324DD
171 changed files with 925 additions and 27 deletions

View file

@ -801,6 +801,14 @@ MyMesh::MyMesh(mesh::MainBoard &board, mesh::Radio &radio, mesh::MillisecondCloc
_prefs.advert_loc_policy = ADVERT_LOC_PREFS;
_prefs.adc_multiplier = 0.0f; // 0.0f means use default board multiplier
#if defined(USE_SX1262) || defined(USE_SX1268)
#ifdef SX126X_RX_BOOSTED_GAIN
_prefs.sx126x_rx_boosted_gain = SX126X_RX_BOOSTED_GAIN;
#else
_prefs.sx126x_rx_boosted_gain = 1; // enabled by default;
#endif
#endif
}
void MyMesh::begin(FILESYSTEM *fs) {
@ -821,6 +829,12 @@ void MyMesh::begin(FILESYSTEM *fs) {
radio_set_params(_prefs.freq, _prefs.bw, _prefs.sf, _prefs.cr);
radio_set_tx_power(_prefs.tx_power_dbm);
#if defined(USE_SX1262) || defined(USE_SX1268)
radio_set_rx_boosted_gain_mode(_prefs.sx126x_rx_boosted_gain);
MESH_DEBUG_PRINTLN("SX126x RX Boosted Gain Mode: %s",
radio_get_rx_boosted_gain_mode() ? "Enabled" : "Disabled");
#endif
updateAdvertTimer();
updateFloodAdvertTimer();

View file

@ -234,4 +234,10 @@ public:
// To check if there is pending work
bool hasPendingWork() const;
#if defined(USE_SX1262) || defined(USE_SX1268)
void setRxBoostedGain(bool enable) override {
radio_set_rx_boosted_gain_mode(enable);
}
#endif
};

View file

@ -51,19 +51,20 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
file.read((uint8_t *)&_prefs->tx_power_dbm, sizeof(_prefs->tx_power_dbm)); // 76
file.read((uint8_t *)&_prefs->disable_fwd, sizeof(_prefs->disable_fwd)); // 77
file.read((uint8_t *)&_prefs->advert_interval, sizeof(_prefs->advert_interval)); // 78
file.read((uint8_t *)pad, 1); // 79 was 'unused'
file.read((uint8_t *)pad, 1); // 79 : 1 byte unused
file.read((uint8_t *)&_prefs->rx_delay_base, sizeof(_prefs->rx_delay_base)); // 80
file.read((uint8_t *)&_prefs->tx_delay_factor, sizeof(_prefs->tx_delay_factor)); // 84
file.read((uint8_t *)&_prefs->guest_password[0], sizeof(_prefs->guest_password)); // 88
file.read((uint8_t *)&_prefs->direct_tx_delay_factor, sizeof(_prefs->direct_tx_delay_factor)); // 104
file.read(pad, 4); // 108
file.read(pad, 4); // 108 : 4 bytes unused
file.read((uint8_t *)&_prefs->sf, sizeof(_prefs->sf)); // 112
file.read((uint8_t *)&_prefs->cr, sizeof(_prefs->cr)); // 113
file.read((uint8_t *)&_prefs->allow_read_only, sizeof(_prefs->allow_read_only)); // 114
file.read((uint8_t *)&_prefs->multi_acks, sizeof(_prefs->multi_acks)); // 115
file.read((uint8_t *)&_prefs->bw, sizeof(_prefs->bw)); // 116
file.read((uint8_t *)&_prefs->agc_reset_interval, sizeof(_prefs->agc_reset_interval)); // 120
file.read(pad, 3); // 121
file.read((uint8_t *)&_prefs->sx126x_rx_boosted_gain, sizeof(_prefs->sx126x_rx_boosted_gain)); // 121
file.read(pad, 2); // 122 : 2 byte unused
file.read((uint8_t *)&_prefs->flood_max, sizeof(_prefs->flood_max)); // 124
file.read((uint8_t *)&_prefs->flood_advert_interval, sizeof(_prefs->flood_advert_interval)); // 125
file.read((uint8_t *)&_prefs->interference_threshold, sizeof(_prefs->interference_threshold)); // 126
@ -79,9 +80,9 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
file.read((uint8_t *)&_prefs->gps_interval, sizeof(_prefs->gps_interval)); // 157
file.read((uint8_t *)&_prefs->advert_loc_policy, sizeof (_prefs->advert_loc_policy)); // 161
file.read((uint8_t *)&_prefs->discovery_mod_timestamp, sizeof(_prefs->discovery_mod_timestamp)); // 162
file.read((uint8_t *)&_prefs->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
file.read((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
// 290
file.read((uint8_t *)&_prefs->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
file.read((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
// next: 290
// sanitise bad pref values
_prefs->rx_delay_base = constrain(_prefs->rx_delay_base, 0, 20.0f);
@ -108,6 +109,9 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
_prefs->gps_enabled = constrain(_prefs->gps_enabled, 0, 1);
_prefs->advert_loc_policy = constrain(_prefs->advert_loc_policy, 0, 2);
// sanitise settings
_prefs->sx126x_rx_boosted_gain = constrain(_prefs->sx126x_rx_boosted_gain, 0, 1); // boolean
file.close();
}
}
@ -135,19 +139,20 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) {
file.write((uint8_t *)&_prefs->tx_power_dbm, sizeof(_prefs->tx_power_dbm)); // 76
file.write((uint8_t *)&_prefs->disable_fwd, sizeof(_prefs->disable_fwd)); // 77
file.write((uint8_t *)&_prefs->advert_interval, sizeof(_prefs->advert_interval)); // 78
file.write((uint8_t *)pad, 1); // 79 was 'unused'
file.write((uint8_t *)pad, 1); // 79 : 1 byte unused
file.write((uint8_t *)&_prefs->rx_delay_base, sizeof(_prefs->rx_delay_base)); // 80
file.write((uint8_t *)&_prefs->tx_delay_factor, sizeof(_prefs->tx_delay_factor)); // 84
file.write((uint8_t *)&_prefs->guest_password[0], sizeof(_prefs->guest_password)); // 88
file.write((uint8_t *)&_prefs->direct_tx_delay_factor, sizeof(_prefs->direct_tx_delay_factor)); // 104
file.write(pad, 4); // 108
file.write(pad, 4); // 108 : 4 byte unused
file.write((uint8_t *)&_prefs->sf, sizeof(_prefs->sf)); // 112
file.write((uint8_t *)&_prefs->cr, sizeof(_prefs->cr)); // 113
file.write((uint8_t *)&_prefs->allow_read_only, sizeof(_prefs->allow_read_only)); // 114
file.write((uint8_t *)&_prefs->multi_acks, sizeof(_prefs->multi_acks)); // 115
file.write((uint8_t *)&_prefs->bw, sizeof(_prefs->bw)); // 116
file.write((uint8_t *)&_prefs->agc_reset_interval, sizeof(_prefs->agc_reset_interval)); // 120
file.write(pad, 3); // 121
file.write((uint8_t *)&_prefs->sx126x_rx_boosted_gain, sizeof(_prefs->sx126x_rx_boosted_gain)); // 121
file.write(pad, 2); // 122 : 2 byte unused
file.write((uint8_t *)&_prefs->flood_max, sizeof(_prefs->flood_max)); // 124
file.write((uint8_t *)&_prefs->flood_advert_interval, sizeof(_prefs->flood_advert_interval)); // 125
file.write((uint8_t *)&_prefs->interference_threshold, sizeof(_prefs->interference_threshold)); // 126
@ -164,8 +169,8 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) {
file.write((uint8_t *)&_prefs->advert_loc_policy, sizeof(_prefs->advert_loc_policy)); // 161
file.write((uint8_t *)&_prefs->discovery_mod_timestamp, sizeof(_prefs->discovery_mod_timestamp)); // 162
file.write((uint8_t *)&_prefs->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
file.write((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
// 290
file.write((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
// next: 290
file.close();
}
@ -303,6 +308,10 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lat));
} else if (memcmp(config, "lon", 3) == 0) {
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lon));
#if defined(USE_SX1262) || defined(USE_SX1268)
} else if (memcmp(config, "radio.lna", 9) == 0) {
sprintf(reply, "> %s", _prefs->sx126x_rx_boosted_gain ? "on" : "off");
#endif
} else if (memcmp(config, "radio", 5) == 0) {
char freq[16], bw[16];
strcpy(freq, StrHelper::ftoa(_prefs->freq));
@ -473,6 +482,13 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
_prefs->disable_fwd = memcmp(&config[7], "off", 3) == 0;
savePrefs();
strcpy(reply, _prefs->disable_fwd ? "OK - repeat is now OFF" : "OK - repeat is now ON");
#if defined(USE_SX1262) || defined(USE_SX1268)
} else if (memcmp(config, "radio.lna ", 10) == 0) {
_prefs->sx126x_rx_boosted_gain = memcmp(&config[10], "on", 2) == 0;
strcpy(reply, "OK");
savePrefs();
_callbacks->setRxBoostedGain(_prefs->sx126x_rx_boosted_gain);
#endif
} else if (memcmp(config, "radio ", 6) == 0) {
strcpy(tmp, &config[6]);
const char *parts[4];

View file

@ -52,6 +52,8 @@ struct NodePrefs { // persisted to file
uint32_t discovery_mod_timestamp;
float adc_multiplier;
char owner_info[120];
// Power settings
uint8_t sx126x_rx_boosted_gain;
};
class CommonCLICallbacks {
@ -87,6 +89,10 @@ public:
virtual void restartBridge() {
// no op by default
};
virtual void setRxBoostedGain(bool enable) {
// no op by default
};
};
class CommonCLI {

View file

@ -2,7 +2,7 @@
#include <RadioLib.h>
#define SX126X_IRQ_HEADER_VALID 0b0000010000 // 4 4 valid LoRa header received
#define SX126X_IRQ_HEADER_VALID 0b0000010000 // 4 4 valid LoRa header received
#define SX126X_IRQ_PREAMBLE_DETECTED 0x04
class CustomSX1262 : public SX1262 {
@ -92,4 +92,10 @@ class CustomSX1262 : public SX1262 {
bool detected = (irq & SX126X_IRQ_HEADER_VALID) || (irq & SX126X_IRQ_PREAMBLE_DETECTED);
return detected;
}
uint8_t getRxBoostedGainMode() {
uint8_t rxGain = 0;
readRegister(RADIOLIB_SX126X_REG_RX_GAIN, &rxGain, 1);
return rxGain;
}
};

View file

@ -3,6 +3,10 @@
#include "CustomSX1262.h"
#include "RadioLibWrappers.h"
#ifndef USE_SX1262
#define USE_SX1262
#endif
class CustomSX1262Wrapper : public RadioLibWrapper {
public:
CustomSX1262Wrapper(CustomSX1262& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }

View file

@ -2,7 +2,7 @@
#include <RadioLib.h>
#define SX126X_IRQ_HEADER_VALID 0b0000010000 // 4 4 valid LoRa header received
#define SX126X_IRQ_HEADER_VALID 0b0000010000 // 4 4 valid LoRa header received
#define SX126X_IRQ_PREAMBLE_DETECTED 0x04
class CustomSX1268 : public SX1268 {
@ -84,4 +84,10 @@ class CustomSX1268 : public SX1268 {
bool detected = (irq & SX126X_IRQ_HEADER_VALID) || (irq & SX126X_IRQ_PREAMBLE_DETECTED);
return detected;
}
uint8_t getRxBoostedGainMode() {
uint8_t rxGain = 0;
readRegister(RADIOLIB_SX126X_REG_RX_GAIN, &rxGain, 1);
return rxGain;
}
};

View file

@ -3,6 +3,10 @@
#include "CustomSX1268.h"
#include "RadioLibWrappers.h"
#ifndef USE_SX1268
#define USE_SX1268
#endif
class CustomSX1268Wrapper : public RadioLibWrapper {
public:
CustomSX1268Wrapper(CustomSX1268& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }

View file

@ -3,6 +3,10 @@
#include "CustomSX1276.h"
#include "RadioLibWrappers.h"
#ifndef USE_SX1276
#define USE_SX1276
#endif
class CustomSX1276Wrapper : public RadioLibWrapper {
public:
CustomSX1276Wrapper(CustomSX1276& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }

View file

@ -30,6 +30,7 @@ build_flags =
-D SX126X_DIO2_AS_RF_SWITCH=true
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
-D SX126X_CURRENT_LIMIT=140
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -83,3 +83,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -27,3 +27,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -33,6 +33,7 @@ build_src_filter = ${Generic_E22.build_src_filter}
+<../examples/simple_repeater/*.cpp>
build_flags =
${Generic_E22.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -79,6 +80,7 @@ build_src_filter = ${Generic_E22.build_src_filter}
+<../examples/simple_repeater/*.cpp>
build_flags =
${Generic_E22.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -101,6 +103,7 @@ build_src_filter = ${Generic_E22.build_src_filter}
+<../examples/simple_repeater/*.cpp>
build_flags =
${Generic_E22.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22
@ -147,6 +150,7 @@ build_src_filter = ${Generic_E22.build_src_filter}
+<../examples/simple_repeater/*.cpp>
build_flags =
${Generic_E22.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22

View file

@ -46,3 +46,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -19,3 +19,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -5,6 +5,7 @@ build_flags =
${esp32_base.build_flags}
-I variants/heltec_ct62
-D HELTEC_HT_CT62=1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D ESP32_CPU_FREQ=80

View file

@ -34,4 +34,14 @@ void radio_set_tx_power(int8_t dbm) {
mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -17,4 +17,9 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -6,6 +6,7 @@ build_flags =
-I variants/heltec_e213
-D Vision_Master_E213
-D ARDUINO_USB_CDC_ON_BOOT=1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_DIO_1=14

View file

@ -52,3 +52,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -26,4 +26,9 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -6,6 +6,7 @@ build_flags =
-I variants/heltec_e290
-D Vision_Master_E290
-D ARDUINO_USB_CDC_ON_BOOT=1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -52,3 +52,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -26,4 +26,9 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -9,6 +9,7 @@ build_flags = ${nrf52_base.build_flags}
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
-I variants/heltec_mesh_solar
-D HELTEC_MESH_SOLAR
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -121,3 +121,13 @@ bool SolarSensorManager::setSettingValue(const char* name, const char* value) {
}
return false; // not supported
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -44,3 +44,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -21,6 +21,7 @@ build_flags = ${nrf52_base.build_flags}
-D P_LORA_MISO=23
-D P_LORA_MOSI=22
-D P_LORA_TX_LED=35
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -62,3 +62,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -33,3 +33,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -6,6 +6,7 @@ build_flags =
-I variants/heltec_t190
-I src/helpers/ui
-D HELTEC_VISION_MASTER_T190
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_DIO_1=14

View file

@ -52,3 +52,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -26,4 +26,9 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -14,6 +14,7 @@ build_flags =
-D P_LORA_SCLK=9
-D P_LORA_MISO=11
-D P_LORA_MOSI=10
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -124,3 +124,13 @@ bool HWTSensorManager::setSettingValue(const char* name, const char* value) {
}
return false; // not supported
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -45,3 +45,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -7,6 +7,7 @@ build_flags =
-I variants/heltec_tracker_v2
-D HELTEC_TRACKER_V2
-D ESP32_CPU_FREQ=160
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_TX_LED=18

View file

@ -58,3 +58,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -28,3 +28,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -50,4 +50,4 @@ void radio_set_tx_power(int8_t dbm) {
mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
}

View file

@ -27,3 +27,5 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
bool radio_get_rx_boosted_gain_mode();

View file

@ -14,6 +14,7 @@ build_flags =
-D P_LORA_SCLK=9
-D P_LORA_MISO=11
-D P_LORA_MOSI=10
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -58,3 +58,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -28,3 +28,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -7,6 +7,7 @@ build_flags =
-I variants/heltec_v4
-D HELTEC_LORA_V4
-D ESP32_CPU_FREQ=80
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_TX_LED=35

View file

@ -58,3 +58,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -32,3 +32,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -13,6 +13,7 @@ build_flags =
-D P_LORA_SCLK=9
-D P_LORA_MISO=11
-D P_LORA_MOSI=10
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -51,3 +51,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -26,4 +26,9 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -7,6 +7,7 @@ build_flags = ${nrf52_base.build_flags}
-I variants/ikoka_handheld_nrf
-UENV_INCLUDE_GPS
-D IKOKA_NRF52
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_TX_LED=11

View file

@ -44,3 +44,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -27,3 +27,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -11,6 +11,7 @@ build_flags = ${nrf52_base.build_flags}
-I src/helpers/nrf52
-D P_LORA_TX_LED=11
-D DISPLAY_CLASS=NullDisplayDriver
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_DIO_1=D1

View file

@ -42,3 +42,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -26,3 +26,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -12,6 +12,7 @@ build_flags = ${nrf52_base.build_flags}
-D P_LORA_TX_LED=11
-D DISPLAY_CLASS=SSD1306Display
-D DISPLAY_ROTATION=2
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_DIO_1=D1

View file

@ -42,3 +42,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -26,3 +26,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -4,6 +4,7 @@ board = keepteen_lt1
build_flags = ${nrf52_base.build_flags}
-I variants/keepteen_lt1
-D KEEPTEEN_LT1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -49,3 +49,13 @@ mesh::LocalIdentity radio_new_identity() {
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -28,3 +28,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -22,6 +22,7 @@ build_flags =
-D SX126X_DIO2_AS_RF_SWITCH=true
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
-D SX126X_CURRENT_LIMIT=140
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -46,3 +46,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -27,3 +27,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -26,4 +26,6 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
bool radio_get_rx_boosted_gain_mode();

View file

@ -8,6 +8,7 @@ build_flags =
; Radio - SX1262 with high-power PA (32dBm max output)
; Note: Set SX1262 output to 22dBm max, external PA provides additional gain
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D P_LORA_DIO_1=1

View file

@ -62,3 +62,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng);
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -25,3 +25,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -9,6 +9,7 @@ build_flags =
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
-D SX126X_CURRENT_LIMIT=140
-D SX126X_RX_BOOSTED_GAIN=1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D DISPLAY_CLASS=SSD1306Display

View file

@ -53,3 +53,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -27,3 +27,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -57,4 +57,4 @@ void radio_set_tx_power(int8_t dbm) {
mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
}

View file

@ -27,3 +27,5 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
bool radio_get_rx_boosted_gain_mode();

View file

@ -7,6 +7,7 @@ build_flags =
-D TBEAM_SUPREME_SX1262
-D SX126X_CURRENT_LIMIT=140
-D SX126X_RX_BOOSTED_GAIN=1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D DISPLAY_CLASS=SH1106Display

View file

@ -50,3 +50,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -24,4 +24,9 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -11,6 +11,7 @@ build_flags =
-D ARDUINO_USB_CDC_ON_BOOT=1
-D PIN_USER_BTN=0 ; Trackball button
-D PIN_PERF_POWERON=10 ; Peripheral power pin
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -52,4 +52,14 @@ void radio_set_tx_power(int8_t dbm) {
mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -28,4 +28,9 @@ bool radio_init();
uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -8,6 +8,7 @@ build_flags = ${nrf52_base.build_flags}
-I lib/nrf52/s140_nrf52_6.1.1_API/include
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
-D LILYGO_TECHO
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -51,3 +51,13 @@ mesh::LocalIdentity radio_new_identity() {
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -29,3 +29,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -8,6 +8,7 @@ build_flags = ${nrf52_base.build_flags}
-I lib/nrf52/s140_nrf52_6.1.1_API/include
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
-D LILYGO_TECHO
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -50,3 +50,13 @@ mesh::LocalIdentity radio_new_identity() {
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -29,3 +29,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -23,6 +23,7 @@ build_flags =
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
-D SX126X_CURRENT_LIMIT=140
-D SX126X_RX_BOOSTED_GAIN=1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -46,3 +46,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -18,3 +18,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -46,4 +46,4 @@ void radio_set_tx_power(int8_t dbm) {
mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
}

View file

@ -27,3 +27,5 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
bool radio_get_rx_boosted_gain_mode();

View file

@ -22,6 +22,7 @@ build_flags =
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
-D SX126X_CURRENT_LIMIT=140
-D SX126X_RX_BOOSTED_GAIN=1
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -19,3 +19,7 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(uint8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -9,6 +9,7 @@ build_flags = ${nrf52_base.build_flags}
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
-I variants/mesh_pocket
-D HELTEC_MESH_POCKET
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

View file

@ -42,3 +42,13 @@ mesh::LocalIdentity radio_new_identity() {
RadioNoiseListener rng(radio);
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif

View file

@ -31,3 +31,8 @@ mesh::LocalIdentity radio_new_identity();
extern SensorManager sensors;
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -41,6 +41,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
+<helpers/ui/SSD1306Display.cpp>
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -89,6 +90,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
+<helpers/ui/SSD1306Display.cpp>
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -112,6 +114,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
+<helpers/ui/SSD1306Display.cpp>
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22
@ -160,6 +163,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
+<helpers/ui/SSD1306Display.cpp>
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22
@ -186,6 +190,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
build_flags =
${Meshadventurer.build_flags}
-I examples/companion_radio/ui-new
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -208,6 +213,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
build_flags =
${Meshadventurer.build_flags}
-I examples/companion_radio/ui-new
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -226,6 +232,7 @@ lib_deps =
extends = Meshadventurer
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -244,6 +251,7 @@ lib_deps =
extends = Meshadventurer
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
@ -271,6 +279,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
build_flags =
${Meshadventurer.build_flags}
-I examples/companion_radio/ui-new
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22
@ -293,6 +302,7 @@ build_src_filter = ${Meshadventurer.build_src_filter}
build_flags =
${Meshadventurer.build_flags}
-I examples/companion_radio/ui-new
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22
@ -311,6 +321,7 @@ lib_deps =
extends = Meshadventurer
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22
@ -329,6 +340,7 @@ lib_deps =
extends = Meshadventurer
build_flags =
${Meshadventurer.build_flags}
-D USE_SX1262
-D RADIO_CLASS=CustomSX1268
-D WRAPPER_CLASS=CustomSX1268Wrapper
-D LORA_TX_POWER=22

View file

@ -50,6 +50,16 @@ mesh::LocalIdentity radio_new_identity() {
return mesh::LocalIdentity(&rng); // create new random identity
}
#if defined(USE_SX1262) || defined(USE_SX1268)
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
radio.setRxBoostedGainMode(rxbgm);
}
bool radio_get_rx_boosted_gain_mode() {
return radio.getRxBoostedGainMode();
}
#endif
void MASensorManager::start_gps() {
if(!gps_active) {
MESH_DEBUG_PRINTLN("starting GPS");

View file

@ -47,3 +47,8 @@ uint32_t radio_get_rng_seed();
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
void radio_set_tx_power(int8_t dbm);
mesh::LocalIdentity radio_new_identity();
#if defined(USE_SX1262) || defined(USE_SX1268)
bool radio_get_rx_boosted_gain_mode();
void radio_set_rx_boosted_gain_mode(bool rxbgm);
#endif

View file

@ -6,6 +6,7 @@ build_flags = ${nrf52_base.build_flags}
-I lib/nrf52/s140_nrf52_6.1.1_API/include
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
-I variants/meshtiny
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22

Some files were not shown because too many files have changed in this diff Show more