diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index 10eca8c9..833e41d8 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -120,11 +120,11 @@ static uint32_t _atoi(const char* sp) { #define FIRMWARE_VER_CODE 2 #ifndef FIRMWARE_BUILD_DATE - #define FIRMWARE_BUILD_DATE "7 Mar 2025" + #define FIRMWARE_BUILD_DATE "9 Mar 2025" #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.2.1" + #define FIRMWARE_VERSION "v1.2.2" #endif #define CMD_APP_START 1 @@ -1265,7 +1265,7 @@ void setup() { halt(); } - radio.setCRC(0); + radio.setCRC(1); #ifdef SX126X_CURRENT_LIMIT radio.setCurrentLimit(SX126X_CURRENT_LIMIT); diff --git a/examples/simple_repeater/main.cpp b/examples/simple_repeater/main.cpp index 55dbe3f7..5743647b 100644 --- a/examples/simple_repeater/main.cpp +++ b/examples/simple_repeater/main.cpp @@ -22,11 +22,11 @@ /* ------------------------------ Config -------------------------------- */ #ifndef FIRMWARE_BUILD_DATE - #define FIRMWARE_BUILD_DATE "7 Mar 2025" + #define FIRMWARE_BUILD_DATE "9 Mar 2025" #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.2.1" + #define FIRMWARE_VERSION "v1.2.2" #endif #ifndef LORA_FREQ @@ -246,6 +246,15 @@ protected: return tmp; } + void logRxRaw(float snr, float rssi, const uint8_t raw[], int len) override { + #if MESH_PACKET_LOGGING + Serial.print(getLogDateTime()); + Serial.print(" RAW: "); + mesh::Utils::printHex(Serial, raw, len); + Serial.println(); + #endif + } + void logRx(mesh::Packet* pkt, int len, float score) override { if (_logging) { File f = openAppend(PACKET_LOG_FILE); @@ -680,7 +689,7 @@ void setup() { halt(); } - radio.setCRC(0); + radio.setCRC(1); #ifdef SX126X_CURRENT_LIMIT radio.setCurrentLimit(SX126X_CURRENT_LIMIT); diff --git a/examples/simple_room_server/main.cpp b/examples/simple_room_server/main.cpp index 33c07eaa..285d59c6 100644 --- a/examples/simple_room_server/main.cpp +++ b/examples/simple_room_server/main.cpp @@ -22,11 +22,11 @@ /* ------------------------------ Config -------------------------------- */ #ifndef FIRMWARE_BUILD_DATE - #define FIRMWARE_BUILD_DATE "7 Mar 2025" + #define FIRMWARE_BUILD_DATE "9 Mar 2025" #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.2.1" + #define FIRMWARE_VERSION "v1.2.2" #endif #ifndef LORA_FREQ @@ -272,6 +272,15 @@ protected: return _prefs.airtime_factor; } + void logRxRaw(float snr, float rssi, const uint8_t raw[], int len) override { + #if MESH_PACKET_LOGGING + Serial.print(getLogDateTime()); + Serial.print(" RAW: "); + mesh::Utils::printHex(Serial, raw, len); + Serial.println(); + #endif + } + int calcRxDelay(float score, uint32_t air_time) const override { if (_prefs.rx_delay_base <= 0.0f) return 0; return (int) ((pow(_prefs.rx_delay_base, 0.85f - score) - 1.0) * air_time); @@ -742,7 +751,7 @@ void setup() { halt(); } - radio.setCRC(0); + radio.setCRC(1); #ifdef SX126X_CURRENT_LIMIT radio.setCurrentLimit(SX126X_CURRENT_LIMIT); diff --git a/examples/simple_secure_chat/main.cpp b/examples/simple_secure_chat/main.cpp index 1f854773..951d51dc 100644 --- a/examples/simple_secure_chat/main.cpp +++ b/examples/simple_secure_chat/main.cpp @@ -585,7 +585,7 @@ void setup() { halt(); } - radio.setCRC(0); + radio.setCRC(1); #ifdef SX126X_CURRENT_LIMIT radio.setCurrentLimit(SX126X_CURRENT_LIMIT); diff --git a/platformio.ini b/platformio.ini index a203e807..c3b76e6b 100644 --- a/platformio.ini +++ b/platformio.ini @@ -14,7 +14,7 @@ monitor_speed = 115200 lib_deps = SPI Wire - jgromes/RadioLib @ ^6.3.0 + jgromes/RadioLib @ ^7.1.2 rweather/Crypto @ ^0.4.0 adafruit/RTClib @ ^2.1.3 melopero/Melopero RV3028 @ ^1.1.0 diff --git a/src/Dispatcher.cpp b/src/Dispatcher.cpp index e4943254..dffabcc3 100644 --- a/src/Dispatcher.cpp +++ b/src/Dispatcher.cpp @@ -130,6 +130,12 @@ void Dispatcher::checkRecv() { Serial.printf(": RX, len=%d (type=%d, route=%s, payload_len=%d) SNR=%d RSSI=%d score=%d", 2 + pkt->path_len + pkt->payload_len, pkt->getPayloadType(), pkt->isRouteDirect() ? "D" : "F", pkt->payload_len, (int)_radio->getLastSNR(), (int)_radio->getLastRSSI(), (int)(score*1000)); + + static uint8_t packet_hash[MAX_HASH_SIZE]; + pkt->calculatePacketHash(packet_hash); + Serial.print(" hash="); + mesh::Utils::printHex(Serial, packet_hash, MAX_HASH_SIZE); + if (pkt->getPayloadType() == PAYLOAD_TYPE_PATH || pkt->getPayloadType() == PAYLOAD_TYPE_REQ || pkt->getPayloadType() == PAYLOAD_TYPE_RESPONSE || pkt->getPayloadType() == PAYLOAD_TYPE_TXT_MSG) { Serial.printf(" [%02X -> %02X]\n", (uint32_t)pkt->payload[1], (uint32_t)pkt->payload[0]); diff --git a/src/helpers/CustomSX1262.h b/src/helpers/CustomSX1262.h index 6f66d129..70a1077f 100644 --- a/src/helpers/CustomSX1262.h +++ b/src/helpers/CustomSX1262.h @@ -9,7 +9,7 @@ class CustomSX1262 : public SX1262 { CustomSX1262(Module *mod) : SX1262(mod) { } bool isReceiving() { - uint16_t irq = getIrqStatus(); + uint16_t irq = getIrqFlags(); bool hasPreamble = (irq & SX126X_IRQ_HEADER_VALID); return hasPreamble; } diff --git a/src/helpers/CustomSX1268.h b/src/helpers/CustomSX1268.h index 46ce922a..50024693 100644 --- a/src/helpers/CustomSX1268.h +++ b/src/helpers/CustomSX1268.h @@ -9,7 +9,7 @@ class CustomSX1268 : public SX1268 { CustomSX1268(Module *mod) : SX1268(mod) { } bool isReceiving() { - uint16_t irq = getIrqStatus(); + uint16_t irq = getIrqFlags(); bool hasPreamble = (irq & SX126X_IRQ_HEADER_VALID); return hasPreamble; } diff --git a/src/helpers/RadioLibWrappers.cpp b/src/helpers/RadioLibWrappers.cpp index 8d133ccd..03f8f3ce 100644 --- a/src/helpers/RadioLibWrappers.cpp +++ b/src/helpers/RadioLibWrappers.cpp @@ -52,10 +52,11 @@ int RadioLibWrapper::recvRaw(uint8_t* bytes, int sz) { int err = _radio->readData(bytes, len); if (err != RADIOLIB_ERR_NONE) { MESH_DEBUG_PRINTLN("RadioLibWrapper: error: readData(%d)", err); + len = 0; } else { // Serial.print(" readData() -> "); Serial.println(len); + n_recv++; } - n_recv++; } state = STATE_IDLE; // need another startReceive() return len;