Boron can't connect to cloud

Tags: #<Tag:0x00007fe21cfbcb28>


@pierrick are you using the Particle SIM or 3rd party SIM?

Can you respond/reply to the support email to bump the issue?


Thanks, i did it :slight_smile: .


I’ll also bump this thread internally to ensure you get a response.


i just update my Boron firmware and android APP, i’m still blocked during “Connecting to the internet via Cellular” and my boron is bliking green (with a short white blink each 8/10 secondes).


Same thing here… I was very hopeful of the new update, yet it’s still the same issue :disappointed:


Hey @toropov and @pierrick. Sorry on the wait to get back you! I do want to let you know we haven’t forgotten about you guys. We’re still looking into the issue and have a few theories.

To get a little more insight into what might be going on here, @avtolstoy has been so kind as to provide some specialized binaries to help get us some additional logging into these types of issues.

For both of you, if you could grab the Boron debug rc26 from here and flash it to your Borons and grab the output logs from the logger–that would be useful.

You are welcome to post the logs here or in your respective support tickets. It may not hurt to do both, just to be safe!

Thanks guys!


Flashed my Boron, but there’s no output. The serial monitor would only open in the listening mode (flashing blue) but nothing is logged.


Have you instantiated the log handler in your application?

// To enable logging on Serial1 @ 115200 bauds
Serial1LogHandler logHandlerSerial1(115200, LOG_LEVEL_ALL);

// To enable logging on Serial (USB)
SerialLogHandler logHandlerSerial(LOG_LEVEL_ALL);


@avtolstoy I’m not sure I’m doing it right… this doesn’t seem to open any ports

#include "dct.h"


void setup() {
	pinMode(D7, OUTPUT);
    digitalWrite(D7, LOW);
	const uint8_t val = 0x01;
    dct_write_app_data(&val, DCT_SETUP_DONE_OFFSET, 1);
    // To enable logging on Serial (USB)
	SerialLogHandler logHandlerSerial(LOG_LEVEL_ALL);
	digitalWrite(D7, HIGH);

void loop() {

I’m setting it to exit the listening mode since otherwise, it won’t run anything.


That line should be a global definition of a log handler which can be used system wide then.
Defining it where you have it will let it only live for the duration of the execution of setup().

Also you won’t see any cloud connection in MANUAL mode without ever connecting to cellular nor cloud.


@ScruffR I see, let me try again…

Edit: The correct code

Serial1LogHandler logHandlerSerial1(115200, LOG_LEVEL_ALL);
SerialLogHandler logHandlerSerial(LOG_LEVEL_ALL);

void setup() {
void loop() {


Alright finally got it to output some log. And yeah it “Failed to connect to cellular network: -160”

0000006764 [] TRACE: > AT
0000006767 [] TRACE: < OK
0000007767 [hal] TRACE: NCP ready to accept AT commands
0000007767 [] TRACE: > AT+UGPIOC?
0000007772 [] TRACE: < +UGPIOC:
0000007773 [] TRACE: < 16,255
0000007773 [] TRACE: < 23,255
0000007776 [] TRACE: < 24,4
0000007784 [] TRACE: < 25,5
0000007784 [] TRACE: < 34,12
0000007787 [] TRACE: < 35,12
0000007787 [] TRACE: < 36,12
0000007795 [] TRACE: < 37,12
0000007795 [] TRACE: < 42,7
0000007798 [] TRACE: < OK
0000007806 [hal] INFO: Using internal SIM card
0000007806 [] TRACE: > AT+CPIN?
0000007811 [] TRACE: < +CPIN: READY
0000007817 [] TRACE: < OK
0000007817 [] TRACE: > AT+CCID
0000007837 [] TRACE: < +CCID: blah
0000007838 [] TRACE: < OK
0000007838 [] TRACE: > AT+COPS=2
0000007842 [] TRACE: < OK
0000007843 [] TRACE: > AT+IPR=921600
0000007849 [] TRACE: < OK
0000008850 [] TRACE: > AT
0000008851 [] TRACE: < OK
0000008852 [] TRACE: > AT+UPSV=0
0000008854 [] TRACE: < OK
0000008855 [] TRACE: > AT+CMUX=0,0,,1509,,,,,
0000008984 [] TRACE: < OK
0000008984 [gsm0710muxer] INFO: Starting GSM07.10 muxer
0000008985 [gsm0710muxer] INFO: Openning mux channel 0
0000008986 [gsm0710muxer] INFO: GSM07.10 muxer thread started
0000009042 [gsm0710muxer] INFO: Resuming channel 0
0000009043 [gsm0710muxer] INFO: Openning mux channel 1
0000009094 [gsm0710muxer] INFO: Resuming channel 1
0000009095 [gsm0710muxer] INFO: Resuming channel 1
0000009096 [] TRACE: > AT
0000009146 [] TRACE: < OK
0000009146 [hal] TRACE: NCP state changed: 1
0000009147 [net.pppncp] TRACE: NCP event 1
0000009148 [hal] TRACE: Muxer AT channel live
0000009156 [hal] TRACE: PPP thread event LOWER_DOWN
0000009156 [hal] TRACE: PPP thread event ADM_DOWN
0000009166 [hal] TRACE: PPP thread event ADM_UP
0000009167 [hal] TRACE: State NONE -> READY
0000009161 [] TRACE: > AT+CIMI
0000009196 [] TRACE: < blah
0000009197 [] TRACE: < OK
0000009197 [] TRACE: > AT+CGDCONT=1,"IP",""
0000009246 [] TRACE: < OK
0000009246 [] TRACE: > AT+CREG=2
0000009296 [] TRACE: < OK
0000009296 [] TRACE: > AT+CGREG=2
0000009346 [] TRACE: < OK
0000009346 [hal] TRACE: NCP connection state changed: 1
0000009347 [net.pppncp] TRACE: NCP event 2
0000009348 [net.pppncp] TRACE: State changed event: 1
0000009354 [hal] TRACE: PPP thread event LOWER_DOWN
0000009355 [] TRACE: > AT+COPS=0
0000060960 [sys.power] TRACE: re-enabling charging
0000060995 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000061991 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000121992 [sys.power] TRACE: re-enabling charging
0000122028 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000122252 [sys.power] TRACE: Battery state CHARGED -> CHARGING
0000122273 [sys.power] TRACE: Battery state CHARGING -> CHARGED
0000123024 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000183025 [sys.power] TRACE: re-enabling charging
0000183059 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000184039 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000244040 [sys.power] TRACE: re-enabling charging
0000244072 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000244985 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000271540 [net.pppncp] TRACE: Failed to connect to cellular network: -160
0000271541 [gsm0710muxer] INFO: Stopping GSM07.10 muxer
0000271541 [gsm0710muxer] INFO: Gracefully stopping GSM07.10 muxer
0000271552 [gsm0710muxer] INFO: Closing all muxed channels
0000271553 [gsm0710muxer] INFO: Closing mux channel 1
0000271563 [gsm0710muxer] INFO: Muxed channel 2 already closed
0000271564 [gsm0710muxer] INFO: Muxed channel 3 already closed
0000271574 [gsm0710muxer] INFO: Muxed channel 4 already closed
0000271675 [gsm0710muxer] INFO: Sending CLD (multiplexer close down)
0000271726 [gsm0710muxer] INFO: Received response to CLD or timed out, exiting multiplexed mode
0000271727 [gsm0710muxer] INFO: GSM07.10 muxer thread exiting
0000271735 [gsm0710muxer] INFO: GSM07.10 muxer stopped
0000271735 [hal] TRACE: Setting UART voltage translator state 0
0000271746 [hal] TRACE: Powering modem off
0000271746 [hal] TRACE: Setting UART voltage translator state 0
0000273257 [hal] TRACE: Modem powered off
0000273257 [hal] TRACE: Setting UART voltage translator state 0
0000273258 [hal] TRACE: Modem already off
0000273266 [hal] TRACE: NCP state changed: 0
0000273267 [net.pppncp] TRACE: NCP event 1
0000273368 [hal] TRACE: Powering modem on
0000273468 [hal] TRACE: Modem powered on
0000273468 [hal] TRACE: Setting UART voltage translator state 1
0000274469 [] TRACE: > AT
0000275469 [] TRACE: > AT
0000276469 [] TRACE: > AT
0000277469 [] TRACE: > AT
0000278469 [] TRACE: > AT
0000278471 [] TRACE: < OK
0000279471 [hal] TRACE: NCP ready to accept AT commands
0000279471 [] TRACE: > AT+UGPIOC?
0000279476 [] TRACE: < +UGPIOC:
0000279477 [] TRACE: < 16,255
0000279480 [] TRACE: < 23,255
0000279480 [] TRACE: < 24,4
0000279486 [] TRACE: < 25,5
0000279486 [] TRACE: < 34,12
0000279491 [] TRACE: < 35,12
0000279492 [] TRACE: < 36,12
0000279497 [] TRACE: < 37,12
0000279502 [] TRACE: < 42,7
0000279503 [] TRACE: < OK
0000279508 [hal] INFO: Using internal SIM card
0000279508 [] TRACE: > AT+CPIN?
0000279513 [] TRACE: < +CPIN: READY
0000279519 [] TRACE: < OK
0000279520 [] TRACE: > AT+CCID
0000279539 [] TRACE: < +CCID: blah
0000279540 [] TRACE: < OK
0000279540 [] TRACE: > AT+COPS=2
0000279544 [] TRACE: < OK
0000279547 [] TRACE: > AT+IPR=921600
0000279551 [] TRACE: < OK
0000280558 [] TRACE: > AT
0000280559 [] TRACE: < OK
0000280560 [] TRACE: > AT+UPSV=0
0000280562 [] TRACE: < OK
0000280562 [] TRACE: > AT+CMUX=0,0,,1509,,,,,
0000280691 [] TRACE: < OK
0000280692 [gsm0710muxer] INFO: Starting GSM07.10 muxer
0000280693 [gsm0710muxer] INFO: Openning mux channel 0
0000280694 [gsm0710muxer] INFO: GSM07.10 muxer thread started
0000280754 [gsm0710muxer] INFO: Resuming channel 0
0000280754 [gsm0710muxer] INFO: Openning mux channel 1
0000280855 [gsm0710muxer] INFO: Resuming channel 1
0000280856 [gsm0710muxer] INFO: Resuming channel 1
0000280857 [] TRACE: > AT
0000280907 [] TRACE: < OK
0000280907 [hal] TRACE: NCP state changed: 1
0000280908 [net.pppncp] TRACE: NCP event 1
0000280909 [hal] TRACE: Muxer AT channel live
0000280915 [hal] TRACE: PPP thread event LOWER_DOWN
0000280919 [hal] TRACE: PPP thread event ADM_DOWN
0000280925 [hal] TRACE: State READY -> NONE
0000280926 [hal] TRACE: PPP thread event ADM_UP
0000280929 [hal] TRACE: State NONE -> READY
0000280920 [] TRACE: > AT+CIMI
0000280957 [] TRACE: < blah
0000280957 [] TRACE: < OK
0000280958 [] TRACE: > AT+CGDCONT=1,"IP",""
0000281007 [] TRACE: < OK
0000281007 [] TRACE: > AT+CREG=2
0000281057 [] TRACE: < OK
0000281057 [] TRACE: > AT+CGREG=2
0000281107 [] TRACE: < OK
0000281107 [hal] TRACE: NCP connection state changed: 1
0000281108 [net.pppncp] TRACE: NCP event 2
0000281109 [net.pppncp] TRACE: State changed event: 1
0000281115 [] TRACE: > AT+COPS=0
0000281116 [hal] TRACE: PPP thread event LOWER_DOWN
0000304985 [sys.power] TRACE: re-enabling charging
0000305014 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000306010 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED

Similar to what I provided in my support ticket when I was told it can’t connect to a tower. I was also told that in Canada it should connect through Telus. There’s definitely Telus in my city (London, Ontario) and I even tried driving around the city with no success.


Judging by the log you don’t have the battery attached. As far as I can see the modem stops responding after AT+COPS=0 command that initiates network registration, which is an indication of insufficient power supply. Please make sure the following conditions (extract from the datasheet) are met:

For powering the Boron 2G/3G version, you’ll either need a USB port that is able support 2A current, or have the LiPo battery plugged in when powering over USB.

This is because the on-board u-blox modem can consumes up to 1.8A peak current when operating in 2G mode. The Boron will intelligently source power from the USB most of the time and keep the battery charged. During peak current requirements, the additional power will be sourced from the battery. This reduces the charge-discharge cycle load on the battery, thus improving its longevity.

Correct power supply for Boron 2G/3G without LiPo battery

The battery was indeed disconnected, however, I’ve tried again with the battery plugged in and it’s the same story:

0000009402 [] TRACE: > AT+COPS=0
0000009403 [hal] TRACE: PPP thread event LOWER_DOWN
0000271584 [net.pppncp] TRACE: Failed to connect to cellular network: -160

Although thank you for the info on the peak current, I’ll have the battery connected for future testing.


Sorry to dig up the thread, but the issue still hasn’t been solved. I’ve flashed rc.27 and yet it’s still unable to connect to cellular. Can anyone verify their Boron can connect in Canada, Ontario? Quite disappointing since I anticipated to play around with this thing when I placed a preorder exactly a year ago…


@toropov, is this a 2G/3G Boron or an LTE Boron? My 2G/3G Boron connects without issues in Ottawa. As for LTE CAT-M1, some Canadian users have been testing Telus and Bell SIMs with various degrees of success. This is not a Particle issue. It is the fact that our wonderful triopoly is taking its sweet time deploying this service.


@peekay123 I’ve got the 2G/3G version. I was aware LTE only works in the US at the moment so I went with that one. I almost want to come down to Ottawa to test it there… I’m in London, which is not too small of a city and we’ve definitely got a good Tellus coverage. I’ve already tried to connect at three different locations in the city with no luck. Now that you said you have no issues connecting in Canada I wonder if there’s something wrong with my Boron after all…


Hi @toropov any feedback from your side ? I had the same problem twice … recreat a ticket (74232) but no news about particle.

Hi stopped my boron some days and at the restart …is blinking green. Last time @rickkas7 did a manual operation who forced me to reinitialise my SIM …

It so upsetting …could not work on my platform … :weary:


It works!
So I’ve been in contact with the support team for quite a while and yesterday I was told to flash my Boron with the latest firmware as well as the new debugging tool. I did all that and it didn’t work at first. Then I decided to scan for providers while the antenna was detached just to verify that it wasn’t the issue. It didn’t connect at first as I expected and so I collected logs and went on to sending the email response. Then the Boron started to breathe cyan! With the antenna detached! I opened the serial port and saw some logs that said: “connected to cloud”. I then quickly plugged the antenna back in, it kind of rebooted I think and then connected to cloud once again! I then put it in listening mode, registered with the app and everything works now.

So here’s all that I did what got this thing to work for me (mostly copied from support email):

  1. Install/update the CLI tool
  2. Download the 0.9.0 system, Tinker, and bootloader .bin files for your device from the repository
  3. Put it in DFU mode
  4. particle flash --usb system-part1-0.9.0-boron.bin
    particle flash --usb tinker-0.9.0-boron.bin
  5. Now, put the device into listening mode and
    particle flash --serial bootloader-0.9.0-boron.bin
  6. Follow instructions here to flash the debug tool and it will run the tests.
  7. Now, this is what I did after what the support team told me to do: Scan for providers (read the link above). Detach antenna and scan again. Wait till it connects (breathing cyan) and snap the antenna back on. Everything works then put in listening mode and register with the app.

This is probably just a coincidence that it happened to connect with the antenna detached and it’s probably due to the update, but I dunno, the Boron is sitting exactly where it was sitting all those countless times I tried to make it work. I never worked with the antenna attached and now somehow it works without the antenna and even with the antenna back in place ¯\_(ツ)_/¯


i will try the news firmware and your advise ! thanks @toropov