RAK3172 join attempt every time

I am using RAK3172, RUI3 AT COMMAND

I used the Murata CMWX1ZZABZ lora module before, but I ask because there is a difference.

After joining the Murata module once, data could be sent without having to join again even if the device was turned off and turned on.

When RAK3172 turns off the device, JOIN must be re-established unconditionally, causing a problem that DOWNLINK in LORA SERVER is initialized.

Is there any way to send a JOIN without making it every time?

Welcome to RAK forum @kelis ,

Joining a LoRaWAN Network Server is a procedure used on OTAA mode. This means DEVEUI, APPKEY and APPEUI/JOINEUI needs to be provided to generate the session keys APPSKEY and NWKSKEY. In ABP, joining procedure is not needed.

I haven’t used a Murata module but I suspect it is on ABP and not in OTAA that’s why you do not need to rejoin. Also, the uplink and downlink counters might be disabled as well on the LoRaWAN Network Server side. If not disabled, the modules needs to store the counters in non-volatile memory and used those on succeeding ABP uplinks.

Can you share what Network Server you use? As well as the version?

As for the question if there’s a way to send without joining again, it theory that’s how LoRaWAN end-device should work. A device should only join once in its operating lifetime. However, it is very common to modules sold in market to rejoin whenever power restarted. That’s why end-devices and modules just go to sleep and not shutdown (power supply voltage disconnected).

I am using chirpstack V3.11.0.
Same as Murata module, OTAA is used.
Before turning off the device, save APPSKEY and NWKSKEY, and then set APPSKEY and NWKSKEY the same after turning it on again.
When AT+SEND is executed, “AT_NO_NETWORK_JOINED” message appears.
If the APPKEY, DEVEUI, APPSKEY, NWKSKEY, and DEVADDR values set before the device is turned off are set to the same value after it is turned on, can’t it be SEND without a JOIN process?

Thanks for providing more details @kelis .

By the looks of it, when you turn on the device, it basically operates on ABP since there are predefined keys already which was generated on the earlier OTAA device activation.

On RAK3172, if the configuration is OTAA, you wont be able to send any uplinks if the device resets since it will requires Joining procedure. However, if you operate on ABP, joining is not needed. You can immediately send uplinks as long as the session keys are correct as well as the frame counters for both uplink and downlink. You can disable these counters in chirpstack so you just need to secure the session keys and devaddr.

If Murata module allows you to send again in OTAA Mode even if the module restarted its power without rejoining, then the module stores all the information on a non-volatile memory so it can retain its connection without needing a rejoin process.

Thanks for your reply.

In conclusion, if you turn ON/OFF the power in RAK3172 OTAA mode, you must perform JOIN using AT+JOIN Command unconditionally. Right?

Yes. That is correct.