From c21d8dcb2b38643fd74047d1bb7a18567e334468 Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Mon, 29 Jan 2024 20:36:14 +0000 Subject: [PATCH] Fix RSSI miscalculation and TX power not being set correctly --- LoRa.cpp | 4 ++-- RNode_Firmware.ino | 2 +- Utilities.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/LoRa.cpp b/LoRa.cpp index efe7bc4..7501187 100644 --- a/LoRa.cpp +++ b/LoRa.cpp @@ -775,7 +775,7 @@ int ISR_VECT LoRaClass::packetRssi() { // may need more calculations here uint8_t buf[3] = {0}; executeOpcodeRead(OP_PACKET_STATUS, buf, 3); - int pkt_rssi = -(int(buf[2])) / 2; + int pkt_rssi = -buf[0] / 2; return pkt_rssi; #endif } @@ -796,7 +796,7 @@ float ISR_VECT LoRaClass::packetSnr() { #elif MODEM == SX1262 uint8_t buf[3] = {0}; executeOpcodeRead(OP_PACKET_STATUS, buf, 3); - return float(buf[1]) / 4.0; + return float(buf[1]) * 0.25; #endif } diff --git a/RNode_Firmware.ino b/RNode_Firmware.ino index 05acd1a..54e06e2 100644 --- a/RNode_Firmware.ino +++ b/RNode_Firmware.ino @@ -620,7 +620,7 @@ void serialCallback(uint8_t sbyte) { kiss_indicate_txpower(); } else { int txp = sbyte; - if (txp > 17) txp = 17; + if (txp > 22) txp = 22; lora_txp = txp; if (op_mode == MODE_HOST) setTXPower(); diff --git a/Utilities.h b/Utilities.h index fe61b7c..c162443 100644 --- a/Utilities.h +++ b/Utilities.h @@ -658,7 +658,7 @@ void kiss_indicate_stat_rssi() { #if MODEM == SX1276 || MODEM == SX1278 uint8_t packet_rssi_val = (uint8_t)(last_rssi+rssi_offset); #elif MODEM == SX1262 - uint8_t packet_rssi_val = (uint8_t)(last_rssi); + int8_t packet_rssi_val = (int8_t)(last_rssi+rssi_offset); #endif serial_write(FEND); serial_write(CMD_STAT_RSSI);