LinkADRReq is send twice from Chirpstack

we have a Chirpstack for EU band and a chirpstack for US band.

After a join and the transmission of a first message to the EU Chirpstack, the LinkADRReq command is sent to the LoRa device.
chMask = 0x00FF ChMaskCntl = 0
This is answered by the LoRa device with channelMaskAck == true.

So everything is okay.

Our US chirpstack sends the LinkADRReq twice in one message.
First ChMaskCntl = 7 ChMask = 0x0000, then chMask = 0x00FF ChMaskCntl = 0

In response to this message, the LoRa device sends back channelMaskAck == false twice.

The change was therefore not accepted and the Chirpstack tries again and again.

It is clear to me that the US Chirpstack first turns off all 125 KHz channels and then turns on the first 8. Only the connected LoRa device cannot do that.

Why is the US chirpstack behaving differently? Can you change this so that the LinkADRReq is only sent once because the LoRa device cannot handle 2 LinkADRReqs?

It is because for the US there are 72 default channels and for EU there are 3. Therefore ChirpStack needs to disable all channels first and then enable the first 8 channels.

I think this is the real question:

Only the connected LoRa device cannot do that.

Why is the device unable to do this?

1 Like