So I bought this device, but I can’t use it unless I register it and sign up for a subscription?
If I register, then unclaim it, can I use it? Or is it a brick?
It is unusual to not let the serial port work until I register it. It makes troubleshooting kinda difficult.
I’ve brought 3 of these devices and the setup (connecting to the cloud) was difficult in all 3 cases. I’ve been looking at this Boron all weekend, and didn’t accomplish a single thing, because I can’t activate the SIM.
Try searching these forums for ‘no internet’, ‘no cloud’ etc. There are countless topics dealing with using these devices without having an active connection.
It’s certainly possible, though you’d need to plan for it in code.
You should be able to compile and/or flash locally as well using the CLI or Particle Workbench.
In order to use without an internet connection, you will have to use a manually threaded mode, so that you can disassociate the Particle cloud functions from the user code. It’s actually quite easy, and the result is you can boot, run, and do anything you like without ever contacting the cloud.
This is something I did for my project, because it was very important that the Electron immediately assert the physical state of external hardware. We couldn’t risk waiting to control our power electronics until the device synced to the cloud.
Just to keep the terminology straight:
I guess you mean
SYSTEM_MODE(SEMI_AUTOMATIC), but these have nothing to do with threading really.
What has something to do with (multi) threading is
SYSTEM_THREAD(ENABLED) tho', but that - when not used in conjunction with any of the above SYSTEM_MODEs - would still try to connect to the cloud although decoupled from the application thread.
Take a look at the reference docs for System Mode. What is happening is that, in Single Threaded (normal) operation, the device attempts to connect to the network and then the particle cloud. After that has happened for the first time, the device system firmware calls your
setup() function and then repeatedly calls
loop() and does some system level processing in between those calls.
This means that, because your device cannot connect to the internet and particle cloud, it will never start executing your code.
The way you avoid this is by running in an alternate SYSTEM MODE as mentioned above to tell the system firmware that you want to manually trigger connectivity, OR to run in multi-threaded mode
What you are describing is intended behavior. I recommend at least taking a glance through the reference docs online if have a few moments.