X3000 Sim failover does not clear tower lock

I have a X3000 on firmware 4.4.8. The router is set up to failover from Sim 1 to Sim 2 like in the image attached.

Sim 1 is configured to tower lock to a 5G tower. Sim 2 does not have tower lock.

I noticed that when Sim 1 failover to Sim 2, the tower lock does not get cleared so Sim 2 never connects. Because Sim 2 never connects (due to tower lock from Sim 1), the X3000 will fallback to Sim 1.

I ran AT+QNWLOCK="common/5g" after Sim 1 to Sim 2 failover and still see that on Sim 2, the command still returned Sim 1 tower lock.

Should the X3000 clear/reset tower lock (AT+QNWLOCK="common/5g",0) before failover to different Sim?

Also, after failover from Sim 1 (Tmobile) to Sim 2 (Verizon), I could not clear 5G SA only mode that was enabled on Sim 1 to Sim 2 - AT+QNWPREFCFG="nr5g_disable_mode",0.

Quectel disabled setting AT+QNWPREFCFG="nr5g_disable_mode" on RM520N-GL firmware RM520NGLAAR03A03M4G_01.201.01.201.

So in this failover scenario, AT+QNWPREFCFG="nr5g_disable_mode",0 should be executed on Sim 1 (if value is not 0) before failing over to Sim 2. Since setting AT+QNWPREFCFG="nr5g_disable_mode" command is not supported on Sim 2 (Verizon).

I think that the sim failover only does SIM hotswap which is understandable. AT+QUIMSLOT (sim hotswap) doesn’t even need a reboot and QNWLOCK needs a reboot to be cleared (since it doesn’t persist). GL team can simply add reboot command (although this will make the failover a much slower) or they can also create new setting params when switching between sims (i.e. QNWLOCK, preferred bands, APN preferences etc)

Tower lock can be cleared using AT+QNWLOCK="common/5g",0 or AT+QNWLOCK="common/4g",0 with no reboots.

Yes, but you need to do it manually. Well I hope GL includes that as a param to disable or clear tower locking when switching between sims for failover

A lot of “magic” is done in the /lib/functions/modem.sh script :slight_smile:

1 Like

Maybe you can add a function after hot swapping where it will fetch the current QUIMSLOT (sim slot) and then run your preferred commands according to slot value.

QUIMSLOT? returns 1
AT+(preferred bands)

else if
QUIMSLOT? returns 2
do this

I guess its quite easy to implement since GL already provides a way to send AT commands to the module using the terminal.

Does this issue occur occasionally or inevitably on your device?
My tests didn't find anything wrong

It seems to occur consistently when failing over from Tmobile with tower lock to Verizon without tower lock.

Which script and function is responsible for sim card failover?