-
Notifications
You must be signed in to change notification settings - Fork 65
Description
Hi all,
I've started making firmware for the USA but I noticed it was staying on SF9 even if I tried to force it to SF10 using the LNS ADR.
It doesn't seem to change to SF10?
I then changed this line to DR0:
#define LMICbandplan_getInitialDrJoin() (LORAWAN_DR1) // Was DR0, reduced to DR1 due to packet sizes
I get this error:
E (3134) ttn_hal: LMIC failed and stopped: ../components/esp32/src/lmic/radio.c:458
I've also changed these:
As usual I just needed to make a post to find the issue, I uncommented this line for oversized packets and will make sure I don't send oversized packets:
// Frequency plan for US 915MHz ISM band
// data rates
enum _dr_us915_t {
US915_DR_SF10 = 0, //Removed for oversized packets
US915_DR_SF9,
US915_DR_SF8,
US915_DR_SF7,
US915_DR_SF8C,
US915_DR_NONE,
// Devices "behind a router" (and upper half of DR list):
US915_DR_SF12CR = 8,
US915_DR_SF11CR,
US915_DR_SF10CR,
US915_DR_SF9CR,
US915_DR_SF8CR,
US915_DR_SF7CR
};
and here:
# if LMIC_DR_LEGACY
enum _dr_configured_t {
DR_SF10 = US915_DR_SF10, //Removed due to oversized packets
DR_SF9 = US915_DR_SF9,
DR_SF8 = US915_DR_SF8,
DR_SF7 = US915_DR_SF7,
DR_SF8C = US915_DR_SF8C,
DR_NONE = US915_DR_NONE,
DR_SF12CR = US915_DR_SF12CR,
DR_SF11CR = US915_DR_SF11CR,
DR_SF10CR = US915_DR_SF10CR,
DR_SF9CR = US915_DR_SF9CR,
DR_SF8CR = US915_DR_SF8CR,
DR_SF7CR = US915_DR_SF7CR
};
I get the same error.
I also forced it to SF10 during normal packet transmission and it gets the same error.
This seems to be related to packet size, but SF10 is meant to work in USA for packets under 11 bytes?
What am I missing here? I'm hoping its something simple.
Found it, it was here (I remember finding this years ago now that I see it...):
CONST_TABLE(u1_t, _DR2RPS_CRC)[] = {
ILLEGAL_RPS, // [-1]
ILLEGAL_RPS, //MAKERPS(SF10, BW125, CR_4_5, 0, 0), // [0] MAKERPS(SF10, BW125, CR_4_5, 0, 0)
MAKERPS(SF9 , BW125, CR_4_5, 0, 0), // [1]
MAKERPS(SF8 , BW125, CR_4_5, 0, 0), // [2]
MAKERPS(SF7 , BW125, CR_4_5, 0, 0), // [3]
MAKERPS(SF8 , BW500, CR_4_5, 0, 0), // [4]
ILLEGAL_RPS , // [5]
ILLEGAL_RPS , // [6]
ILLEGAL_RPS , // [7]
MAKERPS(SF12, BW500, CR_4_5, 0, 0), // [8]
MAKERPS(SF11, BW500, CR_4_5, 0, 0), // [9]
MAKERPS(SF10, BW500, CR_4_5, 0, 0), // [10]
MAKERPS(SF9 , BW500, CR_4_5, 0, 0), // [11]
MAKERPS(SF8 , BW500, CR_4_5, 0, 0), // [12]
MAKERPS(SF7 , BW500, CR_4_5, 0, 0), // [13]
ILLEGAL_RPS // [14]
};
Change to:
CONST_TABLE(u1_t, _DR2RPS_CRC)[] = {
ILLEGAL_RPS, // [-1]
MAKERPS(SF10, BW125, CR_4_5, 0, 0), // [0] MAKERPS(SF10, BW125, CR_4_5, 0, 0) //CHANGE HERE
MAKERPS(SF9 , BW125, CR_4_5, 0, 0), // [1]
MAKERPS(SF8 , BW125, CR_4_5, 0, 0), // [2]
MAKERPS(SF7 , BW125, CR_4_5, 0, 0), // [3]
MAKERPS(SF8 , BW500, CR_4_5, 0, 0), // [4]
ILLEGAL_RPS , // [5]
ILLEGAL_RPS , // [6]
ILLEGAL_RPS , // [7]
MAKERPS(SF12, BW500, CR_4_5, 0, 0), // [8]
MAKERPS(SF11, BW500, CR_4_5, 0, 0), // [9]
MAKERPS(SF10, BW500, CR_4_5, 0, 0), // [10]
MAKERPS(SF9 , BW500, CR_4_5, 0, 0), // [11]
MAKERPS(SF8 , BW500, CR_4_5, 0, 0), // [12]
MAKERPS(SF7 , BW500, CR_4_5, 0, 0), // [13]
ILLEGAL_RPS // [14]
};