Boron reboot to change SIM

We are using Boron modules with battery and external power supply. We are fitting an 3rd party SIM and want the option to switch between the 3rd party one and the internal one in the field. I can tell the Boron to switch between them and set the credentials OK but when I then tell the Boron to reboot the ICCID is not changing in the Particle console, it only seems to change when I disconnect the battery and then reconnect it.
Is there a way to get the Boron to do a full power down reboot like pulling the power but from firmware? Having to open the enclosure to disconnect the battery in the field is not an option.
I also tried letting our external watchdog reboot the Boron via the EN pin but again does not update the ICCID.

Have you tried powering off the cellular modem via Cellular.off()?

Hi, Yes do a

Particle.disconnect();
delay(10000);
Cellular.off();
delay(10000);
RequestRestart();

@GJMorrison ,

There is a way to do this but it requires external hardware (a watchdog timer) that can pull he Enable pin on the Boron low for 30 seconds. This may not be an option for you but, in case it is…

I have built such a carrier using the approach outlined int he Particle Application Note:

Here is the board, all open source:

Chip

Which Boron? The Boron LTE (BRN402 and BRN404) cannot switch between the internal and external SIM without removing the SIM.

If you have an external SIM in the 4FF slot, if you select internal SIM in software, neither SIM will work. You need to physically remove the external SIM to use the internal SIM.

1 Like

We have an external watchdog and I tried getting it to do the reboot but still did not update. Not sure how long it holds the EN low for.

Not the LTE version. It does switch OK just requires the power and battery to be removed which is the problem, want to do it just with a firmware reboot command

I would use ULTRA_LOW_POWER sleep mode (with no network standby) for 30 seconds. This should be long enough to make sure the modem is completely powered down.

We are restricted to DeviceOS 1.5.2 as our external watchdog prevents an in the field DeviceOS update, and that sleep mode is not available in 1.5.2.

In 1.5.2, use SLEEP_MODE_DEEP.

Got the issue resolved, actually needed to force a new session with Particle to get the information such as the ICCID to update in the Particle console.
After setting the active sim and the credentials turning the cellular off and rebooting was enough to switch as long as I forced a new session with Particle after the reboot.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.