Maybe it’s actually okay, and not much different from removing power from the module. From the manual:
2.3.2
sys reset
…
This command resets and restarts the RN2483 module; stored LoRaWAN protocol settings will be loaded automatically upon reboot.…
2.3.4
sys factoryRESET
…
This command resets the module’s configuration data and user EEPROM to factory default values and restarts the module. AfterfactoryRESET, the RN2483 module will automatically reset and all configuration parameters are restored to factory default values. All LoRaWAN protocol settings set by the user will be lost.…
2.4.4
mac save
…
Themac savecommand must be issued after configuration parameters have been appropriately entered from themac set <cmd>commands. This command will save LoRaWAN Class A protocol configuration parameters to the user EEPROM. When the nextsys resetcommand is issued, the LoRaWAN Class A protocol configuration will be initialized with the last saved parameters.
Any idea if the OTAA Join succeeds right away? Peeking into some old code that uses a Libelium wrapper around an RN2483 1.0.1, I once documented:
Save the intermediate configuration to allow setLoRaWAN to reset the LoRaWAN module when joinOTAA fails
So, in that code I did a Oh, not relevant: you’re already doing that.mac save before the mac join otaa as well. But, I don’t know if the Libelium wrapper or the RN2483 was invoking some reset there. (The comment also confirms that sys reset should not lose the configuration.)
Aside, as per earlier discussions: note that you may not need all this trickery when not removing power from the module, but when instead using deep sleep (with recent versions of the RN2483 firmware), and do a new OTAA join in case of rare conditions that restart the module. Even more: even in 1.0.5, mac save might not store all required settings, like for confirmed downlinks.