# Boron LTE blinking green forever

**URL:** <https://community.particle.io/t/boron-lte-blinking-green-forever/59599>\
**Category:** Firmware\
**Created:** [March 8, 2021, 10:27am UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599 "2021-03-08T10:27:34Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![tiborrr](https://avatars.discourse-cdn.com/v4/letter/t/7ba0ec/32.png) [@tiborrr](https://community.particle.io/u/tiborrr)\
**Post date:** [March 8, 2021, 10:27am UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/1 "2021-03-08T10:27:35Z")

</div>

Hello,

In the field, we have a device that gives this response (as described on the particle website). Does it mean that it's broken? We have tried particle update and particle flash --usb tinker but it still does not connect.

> #### Modem not responding (blinking green or dark blue)
> 
> If the modem stops working entirely, then the log will look like this:
> 
> ```auto
> 0000011825 [hal] ERROR: Failed to power off modem
> starting tests...
> turning cellular on...
> 0000036010 [hal] ERROR: No response from NCP
> 0000036011 [system.nm] INFO: State changed: DISABLED -> IFACE_DOWN
> deviceID=e00fce687bd30b4135c361dc
> manufacturer=
> model=
> firmware version=
> ordering code=
> IMEI=
> IMSI=
> ICCID=
> 0000117011 [app] INFO: enabling trace logging
> attempting to connect to the cellular network...
> 0000117016 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
> 0000117016 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
> 0000117020 [hal] TRACE: PPP netif -> 8
> 0000117022 [net.ifapi] INFO: Netif pp3 state UP
> 0000117022 [net.ifapi] INFO: Netif pp3 state UP
> 0000117024 [hal] TRACE: Powering modem on
> 0000117026 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
> 0000117026 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
> 0000117176 [hal] TRACE: Modem powered on
> 0000117178 [hal] TRACE: Setting UART voltage translator state 1
> 0000118180 [ncp.at] TRACE: > AT
> 0000119181 [ncp.at] TRACE: > AT
> 0000120182 [ncp.at] TRACE: > AT
> 0000121183 [ncp.at] TRACE: > AT
> 0000122184 [ncp.at] TRACE: > AT
> 0000122395 [sys.power] TRACE: re-enabling charging
> 0000122428 [sys.power] TRACE: Battery state UNKNOWN -> CHARGED
> 0000123185 [ncp.at] TRACE: > AT
> 0000123587 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
> 0000124186 [ncp.at] TRACE: > AT
> 0000125186 [ncp.at] TRACE: > AT
> 0000126187 [ncp.at] TRACE: > AT
> 0000127188 [ncp.at] TRACE: > AT
> 0000128189 [ncp.at] TRACE: > AT
> 0000129190 [ncp.at] TRACE: > AT
> 0000130191 [ncp.at] TRACE: > AT
> 0000131192 [ncp.at] TRACE: > AT
> 0000132193 [ncp.at] TRACE: > AT
> 0000133194 [ncp.at] TRACE: > AT
> 0000134195 [ncp.at] TRACE: > AT
> 0000135196 [ncp.at] TRACE: > AT
> 0000136197 [ncp.at] TRACE: > AT
> 0000137197 [ncp.at] TRACE: > AT
> 0000138198 [hal] ERROR: No response from NCP
> 0000138198 [hal] ERROR: No response from NCP
> 0000138201 [hal] TRACE: Setting UART voltage translator state 0
> 0000138203 [hal] TRACE: Hard resetting the modem
> 0000149205 [net.pppncp] TRACE: Failed to initialize ublox NCP client: -210
> 0000149207 [hal] TRACE: Setting UART voltage translator state 0
> 0000149210 [hal] TRACE: Modem already off
> 0000149312 [hal] TRACE: Powering modem on
> 0000149463 [hal] TRACE: Modem powered on
> 0000149465 [hal] TRACE: Setting UART voltage translator state 1
> 0000150467 [ncp.at] TRACE: > AT
> 0000151468 [ncp.at] TRACE: > AT
> 0000152469 [ncp.at] TRACE: > AT
> 0000153470 [ncp.at] TRACE: > AT
> 0000154471 [ncp.at] TRACE: > AT
> 0000155472 [ncp.at] TRACE: > AT
> 0000156473 [ncp.at] TRACE: > AT
> 0000157474 [ncp.at] TRACE: > AT
> 0000158475 [ncp.at] TRACE: > AT
> 0000159475 [ncp.at] TRACE: > AT
> 
> ```
> 
> In particular, note that there is never a response to the `> AT` command, and the error `ERROR: No response from NCP` . Also, the modem-specific information like manufacturer, model, ICCID, etc. are all blank.
> 
> For Gen 3 devices (Boron, B Series SoM), the status LED will blink green.

---

<div class="post-metadata">

**Author:** ![ScruffR](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/scruffr/32/6952_2.png) [@ScruffR](https://community.particle.io/u/ScruffR)\
**Post date:** [March 8, 2021, 10:54am UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/2 "2021-03-08T10:54:16Z")

</div>

> [@tiborrr](#):
>
> Does it mean that it’s broken?

Not necessarily. In order to distinguish that you'd need to acquire a log of _ **your** _ device.  
More likely it's an issue with the SIM not being activated (yet) or not accepted by any of your local providers.

You'd need to tell us _where_ in the world this device is trying to get connected.  
The LTE Boron is only meant for the North American market.

[https://docs.particle.io/datasheets/boron/boron-datasheet/](https://docs.particle.io/datasheets/boron/boron-datasheet/)

 ![image](https://us1.discourse-cdn.com/flex026/uploads/particle/original/3X/0/b/0bd76a65237f34d0d05dd4af44ff834a7d91e3fe.png)

With a 3rd party SIM that supports the above standard you may be able to connect, but your code needs to instruct the device to [use the external SIM](https://docs.particle.io/reference/device-os/firmware/boron/#setcredentials-) and also set the [`Particle.keepAlive()`](https://docs.particle.io/reference/device-os/firmware/boron/#particle-keepalive-) as your MVNO requires.

---

<div class="post-metadata">

**Author:** ![tiborrr](https://avatars.discourse-cdn.com/v4/letter/t/7ba0ec/32.png) [@tiborrr](https://community.particle.io/u/tiborrr)\
**Post date:** [March 8, 2021, 11:15am UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/3 "2021-03-08T11:15:49Z")

</div>

We have been using LTE Boron in the Netherlands for quite a year without any issues. But after updating from 1.5.2 to 2.0.1 problems have been appearing.

I can confirm that the SIM is activated. I can see it as activated in the Portal from my MVNO.

I can also confirm that this device has connected before without any issues. Also, we have 10 other devices running the same code without any issues (yet)

To connect we currently use the following code.

```auto
void setup() {

  #if PLATFORM_ID == PLATFORM_BORON
    CellularHelperStringResponse resp;
    Cellular.setActiveSim(EXTERNAL_SIM);
	  Cellular.setCredentials("eliot.internet");
    const uint8_t val = 0x01;
	  dct_write_app_data(&val, DCT_SETUP_DONE_OFFSET, 1);

    Cellular.on();
    Log.info("Sending 1st command");
    Cellular.command(CellularHelperClass::responseCallback, (void *)&resp, 8000, "AT+UMNOPROF=?\r\n");
    Log.info("Sending 2nd command");
    Cellular.command(CellularHelperClass::responseCallback, (void *)&resp, 8000, "AT+UMNOPROF=0\r\n");
    Log.info("Gonna connect");
    Cellular.connect();
    Log.info("After connect");

    if (Cellular.ready()) {
      Log.info("connected to the cellular network");
    } else if (Cellular.listening()) {
      Log.info("entered listening mode (blinking dark blue) - probably no SIM installed");
    } else {
      Log.info("other");
    }

    Log.info("Attempting Particle connect");
  #endif

  while(Particle.connected() == false) {
    Particle.connect();
    Particle.process();
  }
...

```

---

<div class="post-metadata">

**Author:** ![ScruffR](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/scruffr/32/6952_2.png) [@ScruffR](https://community.particle.io/u/ScruffR)\
**Post date:** [March 8, 2021, 11:42am UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/4 "2021-03-08T11:42:45Z")

</div>

This would have been useful information for the opening post 😉

If you are running this code in AUTOMATIC mode then your `setup()` will _not_ be executed at the time the device will try to connect.  
Could it be your current code is missing the required `SYSTEM_MODE()` or `SYSTEM_THREAD(ENABLED)`?

If you are using hardcoded credentials you'd usually put the credentials and ext-SIM activation into the `STARTUP()` section.

Also this is not the best way to do it

> [@tiborrr](#):
>
> ```auto
> while(Particle.connected() == false) {
> Particle.connect();
> Particle.process();
> }
> 
> ```

Once calling `Particle.connecct()` your code should keep the feet still for a while to let the connection process commence. Calling `connect()` while a previous call is still at work is often counter productive.  
You may rather want to use `waitUntil()` and let the device OS do the waiting - or better `waitFor()` to give your code some control over the connection timeout.

---

<div class="post-metadata">

**Author:** ![marekparticle](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/marekparticle/32/22793_2.png) [@marekparticle](https://community.particle.io/u/marekparticle)\
**Post date:** [March 8, 2021, 12:19pm UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/5 "2021-03-08T12:19:21Z")

</div>

> [@tiborrr](#):
>
> `e00fce687bd30b4135c361dc`

The logs and manufacturing date of this device suggest that it was impacted by the issue described here: [https://support.particle.io/hc/en-us/articles/360052556854-Errata-SARA-R410M-124-day-](https://support.particle.io/hc/en-us/articles/360052556854-Errata-SARA-R410M-124-day-). Please see relevant mitigation information and warranty/replacement statement.

---

<div class="post-metadata">

**Author:** ![tiborrr](https://avatars.discourse-cdn.com/v4/letter/t/7ba0ec/32.png) [@tiborrr](https://community.particle.io/u/tiborrr)\
**Post date:** [March 8, 2021, 7:57pm UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/6 "2021-03-08T19:57:14Z")

</div>

@ScruffR thanks for the tips!

I am running in manual mode. should I also enable SYTEM\_THREAD?

I think you mean waitFor() right?  
so something like `waitFor(Particle.connect, APP_TIMEOUT)` should do the job right?

@marekparticle this was an example on the cloud debugging page. But indeed this might also be the case. My debug from particle cloud debug software looks the same.

```auto
0000015494 [app] INFO: Platform: Boron
0000015494 [app] INFO: Binary compiled for: 2.0.1
0000015495 [app] INFO: Cloud Debug Release 2.0.3
0000015495 [app] INFO: System version: 2.0.1
0000015496 [app] INFO: Device ID: e00fce68b5d490b6f0bc8ad2
0000015496 [app] INFO: Power source: USB Host
0000015497 [app] INFO: Battery state: disconnected, SoC: -1.00
0000015497 [app] INFO: This device could have Ethernet (is 3rd generation)
0000015499 [app] INFO: FEATURE_ETHERNET_DETECTION not enabled, so Ethernet will not be used (even i
0000023508 [app] INFO: deviceID: e00fce68b5d490b6f0bc8ad2
0000023509 [app] INFO: PMIC inputVoltageLimit: 3880 mV
0000023510 [app] INFO: PMIC inputCurrentLimit: 500 mA
0000023511 [app] INFO: PMIC minimumSystemVoltage: 3500 mV
0000023512 [app] INFO: PMIC chargeCurrentValue: 896 mA
0000023513 [app] INFO: PMIC chargeVoltageValue: 4112 mV
0000023513 [app] INFO: modem is not yet responding
0000023517 [system.nm] INFO: State changed: DISABLED -> IFACE_DOWN
0000023518 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
0000023519 [net.pppncp] TRACE: PPP netif event from queue: 1
0000023519 [net.pppncp] TRACE: NCP event 3
0000023520 [net.pppncp] TRACE: NCP power state changed: IF_POWER_STATE_POWERING_UP
0000023520 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
0000023521 [system.nm] TRACE: Interface 4 power state changed: 4
0000023521 [ncp.client] TRACE: Powering modem on
0000023534 [app] INFO: Still trying to connect to cellular 00:00
0000023534 [app] INFO: Power source: USB Host
0000023535 [app] INFO: Battery state: disconnected, SoC: -1.00
0000023671 [net.pppncp] TRACE: NCP event 3
0000023671 [net.pppncp] TRACE: NCP power state changed: IF_POWER_STATE_UP
0000023672 [system.nm] TRACE: Interface 4 power state changed: 2
0000023672 [ncp.client] TRACE: Modem powered on
0000023672 [ncp.client] TRACE: Setting UART voltage translator state 1
0000023772 [ncp.client] TRACE: Setting UART voltage translator state 0
0000023872 [ncp.client] TRACE: Setting UART voltage translator state 1
0000024873 [ncp.at] TRACE: > AT
0000025874 [ncp.at] TRACE: > AT
0000026875 [ncp.at] TRACE: > AT
0000027876 [ncp.at] TRACE: > AT
0000028877 [ncp.at] TRACE: > AT
0000029878 [ncp.at] TRACE: > AT
0000030879 [ncp.at] TRACE: > AT
0000031880 [ncp.at] TRACE: > AT
0000032881 [ncp.at] TRACE: > AT
0000033882 [ncp.at] TRACE: > AT
0000034884 [ncp.at] TRACE: > AT
0000035885 [ncp.at] TRACE: > AT
0000036886 [ncp.at] TRACE: > AT
0000037887 [ncp.at] TRACE: > AT
0000038888 [ncp.at] TRACE: > AT
0000039888 [ncp.client] ERROR: No response from NCP
0000039888 [ncp.client] TRACE: Setting UART voltage translator state 0
0000039888 [ncp.client] TRACE: Hard resetting the modem
0000039889 [ncp.client] TRACE: Modem waiting up to 30s to power off with PWR_UC...
0000080890 [net.pppncp] TRACE: NCP event 3
0000080890 [net.pppncp] TRACE: NCP power state changed: IF_POWER_STATE_DOWN
0000080890 [system.nm] TRACE: Interface 4 power state changed: 1
0000080891 [ncp.client] TRACE: Deinit modem serial.
0000080892 [net.pppncp] ERROR: Failed to initialize cellular NCP client: -210
0000080892 [app] INFO: modem is not yet responding
0000080893 [app] INFO: Still trying to connect to cellular 00:57
0000080893 [app] INFO: Power source: USB Host
0000080893 [app] INFO: Battery state: disconnected, SoC: -1.00
0000080911 [app] INFO: modem is not yet responding
0000080992 [net.pppncp] TRACE: NCP event 3
0000080992 [net.pppncp] TRACE: NCP power state changed: IF_POWER_STATE_POWERING_UP
0000080992 [system.nm] TRACE: Interface 4 power state changed: 4
0000080993 [ncp.client] TRACE: Powering modem on
0000081143 [net.pppncp] TRACE: NCP event 3
0000081143 [net.pppncp] TRACE: NCP power state changed: IF_POWER_STATE_UP
0000081143 [system.nm] TRACE: Interface 4 power state changed: 2
0000081144 [ncp.client] TRACE: Modem powered on
0000081144 [ncp.client] TRACE: Setting UART voltage translator state 1
0000081244 [ncp.client] TRACE: Setting UART voltage translator state 0
0000081344 [ncp.client] TRACE: Setting UART voltage translator state 1
0000082345 [ncp.at] TRACE: > AT
0000083345 [ncp.at] TRACE: > AT
0000084345 [ncp.at] TRACE: > AT

```

---

<div class="post-metadata">

**Author:** ![ScruffR](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/scruffr/32/6952_2.png) [@ScruffR](https://community.particle.io/u/ScruffR)\
**Post date:** [March 8, 2021, 9:13pm UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/7 "2021-03-08T21:13:32Z")

</div>

> [@tiborrr](#):
>
> I think you mean waitFor() right?

😊 of course - corrected above 😊

`SYSTEM_TREAD(ENABLED)` is not required, but shouldn't harm as long your code is aware of the fact that it might be running asynchronous/concurrently to the system task.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/particle/original/3X/6/4/64635adccc35238caa19e9b553ec3e98b163d026.png) [@system](https://community.particle.io/u/system)\
**Post date:** [September 7, 2021, 9:13am UTC](https://community.particle.io/t/boron-lte-blinking-green-forever/59599/8 "2021-09-07T09:13:37Z")

</div>

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