Setting up a Boron with a 3rd-party SIM card

Updates to this post will be in the documentation.

  • For the Boron 2G/3G most nano SIM cards are compatible.
  • For the Boron LTE, support for LTE Cat M1 is required. This is an IoT-specific subset of LTE, and not all carriers support LTE Cat M1 at this time. Some may not have approved the u-blox SARA-R410M-02B modem used in the Boron LTE yet and may not allow it on their network, as well.

If you’re ready to set up your Boron, follow these steps:

particle flash --usb hybrid-0.8.0-rc.25-boron.bin
  • Create a program to set the APN and switch to an external SIM. Here’s the code. One way is to save this to a file, I called mine 3rdPartySIM.cpp.
#include "Particle.h"

#include "dct.h"

SYSTEM_MODE(SEMI_AUTOMATIC);

void setup() {
	Cellular.setActiveSim(EXTERNAL_SIM);
	Cellular.setCredentials("epc.tmobile.com");

	// This clears the setup done flag on brand new devices so it won't stay in listening mode
	const uint8_t val = 0x01;
    dct_write_app_data(&val, DCT_SETUP_DONE_OFFSET, 1);

	// This is just so you know the operation is complete
	pinMode(D7, OUTPUT);
	digitalWrite(D7, HIGH);
}

void loop() {
}
  • Replace “epc.tmobile.com” with the APN for your SIM card (see below for more details about the APN).
  • Compile the code and flash it in DFU mode (blinking yellow):
particle compile boron 3rdPartySIM.cpp --saveTo firmware.bin --target 0.8.0-rc.25
particle flash --usb firmware.bin
  • The blue LED next to the USB connector should light after reboot to signal that the APN has been set.

  • Flash Tinker back to the Boron:

particle flash --usb tinker-0.8.0-rc.25-boron.bin
  • You should now be able to use the device with your 3rd-party SIM card!

  • On the Boron, the APN (also username and password, if used) and the SIM card choice (internal or external) is saved in configuration flash. This setting is saved across reset, power-down, user and system firmware updates. This is different than the Electron and E Series.

  • You only need to set the APN and SIM selection once, however the keep-alive value is not saved, so you will still need to add that to your user firmware.

  • If you have never claimed the Boron to your account you will need to do that manually now.

    • Put the Boron in listening mode by holding down the MODE button
    • Enter this command in a command prompt or terminal window. Note the device ID.
    particle identify
    
    • Claim the device to your account. It must be breathing cyan for this to work.
    particle device add YOUR_DEVICE_ID
    
    • Name your device if desired.
    particle device rename YOUR_DEVICE_ID "New Name"
    
  • To restore the use of the embedded M2FF Particle SIM card use this program instead:

#include "Particle.h"

SYSTEM_MODE(SEMI_AUTOMATIC);

void setup() {
	Cellular.setActiveSim(INTERNAL_SIM);
	Cellular.clearCredentials();

	// This is just so you know the operation is complete
	pinMode(D7, OUTPUT);
	digitalWrite(D7, HIGH);
}

void loop() {
}
  • This method is intended for using the Boron as a standalone, non-mesh, device, like an Electron. It’s difficult to set up a mesh network using a 3rd-party SIM card at this time, because the mobile app will default to trying to activate the Particle SIM card. You can, however, set up the network using the Particle SIM and switch it to a 3rd-party SIM card once set up.
5 Likes

Is it even possible to use the Boron LTE in the U.S. with any 3rd party network right now?
I see in this page: https://iot.t-mobile.com/device-certification/ (search for N410-02B) that the Boron LTE module is already certified by T-Mobile for NB network.
Is there any timetable for when this support can be added?

The Boron LTE has a u-blox SARA-R410M-02B. I didn’t see the R410, only the N410, on that list. We have not tested the Boron LTE on T-Mobile.

You’re correct, I missed the different first letter in the reference: N410/R410
On ublox website it states that the N410 doesn’t even connect to MTE-M1 network.
Since the R410 is not even certified by T-mobile , i don’t expect Boron to be able to connect to T-mobile NB1 any time soon.

Thanks Rick for your amazing help as usual. I was finally able to get my Boron connected with a Nimbelink verizon sim using your instructions.

I had a question regarding this: “This method is intended for using the Boron as a standalone, non-mesh, device, like an Electron. It’s difficult to set up a mesh network using a 3rd-party SIM card at this time, because the mobile app will default to trying to activate the Particle SIM card. You can, however, set up the network using the Particle SIM and switch it to a 3rd-party SIM card once set up.”

I cannot connect using the Particle SIM as I just don’t have towers near me that I can connect on. I have to use Verizon. So is there any other way to potentially setup mesh other than literally driving to an area with AT&T coverage and setting it up there?

Hi, I’m following this tutorial: https://docs.particle.io/support/particle-devices-faq/electron-3rdparty-sims/#setting-up-a-3rd-party-sim-card-boron. Which is very similar to the one of this post. I got my Boron breathing cyan with a third pary SIM. However, I can´t claim it, I already have my device ID but when I try to claim it it just say its not connected.

That’s most likely a keep-alive issue. You need to add the Particle.keepAlive and set it lower. The default is 23 minutes but with some SIM cards it can be as low as 30 seconds. If the keep-alive is too long the device will breathe cyan but the cloud won’t be able to contact it anymore.

1 Like

Edited: never mind, its working now

I was able to get my Boron connected using these instructions - thanks.

I’m using a SIM card from FreedomPop (an MVNO for AT&T, http://freedompop.com). The interesting thing about FreedomPop is that their lowest tier data plan is $0/month. The 200MB you get with the the free plan is not much for someone using it on their phone, but it’s a pretty decent amount of data for the Boron. After you cancel the trials of the add-ons they give you with a new SIM card, there really is no monthly charge.

(I have no connection with FreedomPop other than as a satisfied customer)

1 Like

@rickkas7 thank you for this tutorial. I successfully got my 2G/3G Boron with external SIM and mesh working!

1 Like

Thanks for the tip. Got my $4.99 SIM card, plugged it into my Boron-LTE, and after waiting for a long while it has connected. Now I need to disable all the add-ons to get to $0/mo. It's not fully clear to to me whether it really ends up being free, I believe they're gonna do a one-time "top-up" charge of $20. Let's see...

Yes, they’ve made it harder to get away without any of the up-front costs. You’ll probably have to get the $20 top-off credit when you switch to the free plan. And if you choose to disable top-off (not strictly neccessary, but perhaps a good idea if you think you might go over your 200MB), then they will charge you $6.99 for “Safety Mode” (which you can then cancel). Make sure you cancel any other paid plans or services before the trial period is over.

Yup. And now I see a $0.93 monthly charge, probably for “regulatory fees” and that stuff. Probably a good thing 'cause the “$20 top-up” credit otherwise expires 30 days after the last activity. So it seems that this is $25 up-front and $1/mo for 200MB (roughly).

BTW, what did you set the keep-alive interval to for freedompop?

Hmm, I don’t know where that’s coming from. I have several SIM cards, and I don’t have any monthly charges. Well, sometimes I see a $0.01 charge (1 cent) which I believe
they occasionally use to verify that the credit card is good. But other than that, and after the up-front charges, it really has been free for me.

I’ve been using 200 seconds for the keep alive with FreedomPop, and that’s been quite stable. I would sometimes get disconnects with 300.

1 Like

i guess it depends on the market you live in because using my zip it was 9.99 for the sim and 4.00 for the cheapest shipping. that’s just to get the sim. so the free part starts with the service of 200MB per month if you manage to jump through the hoops correctly.

@rickkas7 - Will there be a hybrid firmware built for 1.2.1? Or should we still do these steps with 0.8.0 or 0.9.0 to setup the device, and then update to newest firmware?

In general there will not be hybrid builds in the future, as they’re only necessary in certain applications.

If you are setting up by USB in DFU mode (blinking yellow), just flash the system-part1 and tinker in --usb mode instead of flashing the hybrid build.

Sounds good. The part I was missing is getting the bootloader flashed with particle flash --serial as I wasn’t able to get the device online (no AT&T in my area). Without that step all firmware compiled for 1.2.1 would just go to continuous flashing green. Thanks again