Collision error when multiple devices try to join

Hi all,

We have approximately 120 nodes which are trying to join with gateway at the same time.

We are getting join request from multiple devices and send join response to one of devices.

But this process keeps running and it is taking more than 2 to 3 hours to get all device join successfully with the server.

Below is some snapshot of the gateway log.

Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # RF packets received by concentrator: 19 :: 1608
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # CRC_OK: 89.47%, CRC_FAIL: 10.53%, NO_CRC: 0.00% :: 1609
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # RF packets forwarded: 17 (391 bytes) :: 1610
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # PUSH_DATA datagrams sent: 18 (4303 bytes) :: 1611
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # PUSH_DATA acknowledged: 100.00% :: 1612
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : ### [DOWNSTREAM] ### :: 1613
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # PULL_DATA sent: 3 (100.00% acknowledged) :: 1614
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # PULL_RESP(onse) datagrams received: 24 (4729 bytes) :: 1615
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # RF packets sent to concentrator: 12 (408 bytes) :: 1616
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # TX errors: 0 :: 1617
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # TX rejected (collision packet): 34.20% (req:3313, rej:1133) :: 1619
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # TX rejected (collision beacon): 0.00% (req:3313, rej:0) :: 1620
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # TX rejected (too late): 0.00% (req:3313, rej:0) :: 1621
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # TX rejected (too early): 0.09% (req:3313, rej:3) :: 1622
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # BEACON queued: 0 :: 1624
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # BEACON sent so far: 0 :: 1625
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # BEACON rejected: 0 :: 1626
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : ### [JIT] ### :: 1627
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # SX1301 time (PPS): 4107817271 :: 1635
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : ### [GPS] ### :: 1638
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # Invalid time reference (age: 1628666179 sec) :: 1644
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : # no valid GPS coordinates available yet :: 1649
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : ##### END ##### :: 1656
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON up: {“stat”:{“time”:“2021-08-11 07:16:19 GMT”,“rxnb”:19,“rxok”:17,“rxfw”:17,“ackr”:100.0,“dwnb”:24,“txnb”:12,“metadata”:“OtherProperties=”}} :: 2191
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [up] PUSH_ACK received in 3 ms :: 2260
Aug 11 12:46:19 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : WARNING: [down] ignoring invalid packet len=6, protocol_version=255, id=1 :: 2598
Aug 11 12:46:20 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : WARNING: [gps] could not get GPS time from GPS :: 3064
Aug 11 12:46:21 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : WARNING: [gps] could not get GPS time from GPS :: 3064
Aug 11 12:46:22 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : WARNING: [gps] could not get GPS time from GPS :: 3064
Aug 11 12:46:22 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : WARNING: [gps] could not get GPS time from GPS :: 3064
Aug 11 12:46:23 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [down] PULL_ACK received in 1 ms :: 2614
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: Received pkt from mote: 01010101 (fcnt=257) :: 1885
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON up: {“rxpk”:[{“tmst”:4113879940,“time”:“2021-08-11T07:16:24.000000Z”,“chan”:0,“rfch”:0,“freq”:865.062500,“stat”:1,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“lsnr”:9.0,“rssi”:-54,“size”:
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [up] PUSH_ACK received in 0 ms :: 3679
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: Internet connected :: 3684
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: Received pkt from mote: 01010101 (fcnt=257) :: 1885
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON up: {“rxpk”:[{“tmst”:4113915316,“time”:“2021-08-11T07:16:24.000000Z”,“chan”:1,“rfch”:0,“freq”:865.402500,“stat”:1,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“lsnr”:3.0,“rssi”:-64,“size”:
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [up] PUSH_ACK received in 0 ms :: 3679
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: Internet connected :: 3684
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [down] PULL_RESP received - token[78:88] :slight_smile: :: 2624
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON down: {“txpk”:{“imme”:false,“rfch”:0,“powe”:27,“ant”:0,“brd”:0,“tmst”:4118879940,“freq”:865.0625,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“ipol”:true,“size”:17,“data”:"IKel2FQ7mYAmSF9K
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : WARNING: [gps] could not get GPS time from GPS :: 3064
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [down] PULL_RESP received - token[37:74] :slight_smile: :: 2624
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON down: {“txpk”:{“imme”:false,“rfch”:0,“powe”:27,“ant”:0,“brd”:0,“tmst”:4118915316,“freq”:865.4025,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“ipol”:true,“size”:17,“data”:"IAf+sviVSz4ugKS0
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : ERROR: Packet REJECTED (jit error=5) :: 2932
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [down] PULL_RESP received - token[37:74] :slight_smile: :: 2624
Aug 11 12:46:24 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON down: {“txpk”:{“imme”:false,“rfch”:0,“powe”:27,“ant”:0,“brd”:0,“tmst”:4119915316,“freq”:866.55,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“ipol”:true,“size”:17,“data”:"IAf+sviVSz4ugKS0xc
Aug 11 12:46:25 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: Received pkt from mote: 01010101 (fcnt=257) :: 1885
Aug 11 12:46:25 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON up: {“rxpk”:[{“tmst”:4115182628,“time”:“2021-08-11T07:16:25.000000Z”,“chan”:0,“rfch”:0,“freq”:865.062500,“stat”:1,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“lsnr”:-8.0,“rssi”:-109,"size
Aug 11 12:46:25 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [up] PUSH_ACK received in 0 ms :: 3679
Aug 11 12:46:25 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: Internet connected :: 3684
Aug 11 12:46:25 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : WARNING: [gps] could not get GPS time from GPS :: 3064
Aug 11 12:46:26 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [down] PULL_RESP received - token[85:25] :slight_smile: :: 2624
Aug 11 12:46:26 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON down: {“txpk”:{“imme”:false,“rfch”:0,“powe”:27,“ant”:0,“brd”:0,“tmst”:4120182628,“freq”:865.0625,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“ipol”:true,“size”:17,“data”:"IFC/8EM5sfdnMFIo
Aug 11 12:46:26 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : ERROR: Packet REJECTED (jit error=5) :: 2932
Aug 11 12:46:26 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : INFO: [down] PULL_RESP received - token[85:25] :slight_smile: :: 2624
Aug 11 12:46:26 nbl_ec2x local5.info lora_pkt_fwd: [I] src/lora_pkt_fwd.c : JSON down: {“txpk”:{“imme”:false,“rfch”:0,“powe”:27,“ant”:0,“brd”:0,“tmst”:4121182628,“freq”:866.55,“modu”:“LORA”,“datr”:“SF10BW125”,“codr”:“4/5”,“ipol”:true,“size”:17,“data”:"IFC/8EM5sfdnMFIoww

Regards,
Lalit Shah

I think this logs explains your issue. When you try to join all devices at the same time using a single gateway, you will see lots of collisions as a gateway can only transmit a single downlink at a time. As well, most gateways are half-duplex meaning that when transmitting, they can’t receive. In other words:

  • The gateway fails to send part of the downlinks as it can’t transmit multiple downlink responses simultaneously, resulting in downlink packet-loss
  • While transmitting the downlinks it can transmit, it is unable to receive part of the uplinks, resulting in uplink packet-loss

Hi Brocaar,

Thanks for explanation.
I have two approach in my mind to resolve this.

  • Increase number of gateway.
  • Reduce Traffic from nodes and randomized join request instead of all sending at the same time.

Would anyone suggest any other alternative for resolving this issue?

Regards,
Lalit Shah

Hello Lalit Shah,

 I don't recommend to "increase number of gateway".

 Either you can randomized the join request to reduce this effect or you can try for lorawan mesh to solve this particular issue.

thanks,
Bhautik

Do your end-devices follow the recommended LoRaWAN backoff procedures?

2 Likes