]> git.tnoah.ca Git - lora-radio.git/commitdiff
SX1280 parameter modifications
authorMark Qvist <mark@unsigned.io>
Wed, 8 Jan 2025 19:58:12 +0000 (20:58 +0100)
committerMark Qvist <mark@unsigned.io>
Wed, 8 Jan 2025 19:58:12 +0000 (20:58 +0100)
Config.h
Display.h
sx128x.cpp

index 2869c6176dc0806f8de9260e2c43ac8de608d607..80865d68b445cd17dd7e2af0fb7e683f2f7b4260 100644 (file)
--- a/Config.h
+++ b/Config.h
@@ -88,7 +88,7 @@
        #define CSMA_CW_BANDS              4
        #define CSMA_CW_MIN                0
        #define CSMA_CW_PER_BAND_WINDOWS   15
-       #define CSMA_BAND_1_MAX_AIRTIME    6
+       #define CSMA_BAND_1_MAX_AIRTIME    7
        #define CSMA_BAND_N_MIN_AIRTIME    85
        int csma_slot_ms                =  CSMA_SLOT_MIN_MS;
        long difs_ms                    =  CSMA_SIFS_MS + 2*csma_slot_ms;
index 6f1f6d1667ba649a3d37ad92db0605ed9d1f9ad3..b77934b624629e45d9fcb7afb2f4623d171a8fc6 100644 (file)
--- a/Display.h
+++ b/Display.h
@@ -558,7 +558,7 @@ void draw_signal_bars(int px, int py) {
 }
 
 #if MODEM == SX1280
-  #define WF_TX_SIZE 3
+  #define WF_TX_SIZE 5
 #else
   #define WF_TX_SIZE 5
 #endif
index 89fb70a7c4c7a3ea30d511596de57077ab74944f..cb4e7b9280df5a2376ca3d3fcf6996d8b642ddac 100644 (file)
@@ -107,34 +107,28 @@ bool ISR_VECT sx128x::getPacketValidity() {
 
 void ISR_VECT sx128x::onDio0Rise() {
     BaseType_t int_status = taskENTER_CRITICAL_FROM_ISR();
-    if (sx128x_modem.getPacketValidity()) { sx128x_modem.handleDio0Rise(); }
     // On the SX1280, there is a bug which can cause the busy line
     // to remain high if a high amount of packets are received when
     // in continuous RX mode. This is documented as Errata 16.1 in
     // the SX1280 datasheet v3.2 (page 149)
     // Therefore, the modem is set into receive mode each time a packet is received.
-    sx128x_modem.receive();
+    if (sx128x_modem.getPacketValidity()) { sx128x_modem.receive(); sx128x_modem.handleDio0Rise(); }
+    else                                  { sx128x_modem.receive(); }
+
     taskEXIT_CRITICAL_FROM_ISR(int_status);
 }
 
 void sx128x::handleDio0Rise() {
-    // received a packet
     _packetIndex = 0;
-
     uint8_t rxbuf[2] = {0};
     executeOpcodeRead(OP_RX_BUFFER_STATUS_8X, rxbuf, 2);
 
     // If implicit header mode is enabled, read packet length as payload length instead.
     // See SX1280 datasheet v3.2, page 92
-    if (_implicitHeaderMode == 0x80) {
-        _rxPacketLength = _payloadLength;
-    } else {
-        _rxPacketLength = rxbuf[0];
-    }
+    if (_implicitHeaderMode == 0x80) { _rxPacketLength = _payloadLength; }
+    else                             { _rxPacketLength = rxbuf[0]; }
 
-    if (_onReceive) {
-        _onReceive(_rxPacketLength);
-    }
+    if (_onReceive) { _onReceive(_rxPacketLength); }
 }
 
 bool sx128x::preInit() {