Having an impossible time setting up LTE Borons with 3rd party sims

I am unable to set up my LTE Borons with a 3rd party sim. I have tried all sorts of firmware. 9.0, 8.0.27, 8.0.25. Somehow I got one of the Borons to work but the exact same firmware and process doesn’t work on the other Borons that I have. Here is the thread of the one that I actually got to work. Can not connect Boron with 3rd party sim I have followed the same process with two more additional Borons as the one that finally worked and I get constant flashing green. I did turn off the external sim and it will connect with the particle sim, but as soon as I switch back to the external sim it will no longer work. Here is the serial output

0000001058 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000001743 [hal] TRACE: Modem powered off
0000001743 [hal] TRACE: Powering modem on
0000001894 [hal] TRACE: Modem powered on
0000001895 [hal] TRACE: Setting UART voltage translator state 1
0000002896 [ncp.at] TRACE: > AT
0000003896 [ncp.at] TRACE: > AT
0000004896 [ncp.at] TRACE: > AT
0000005896 [ncp.at] TRACE: > AT
0000005955 [ncp.at] TRACE: < AT
0000005956 [ncp.at] TRACE: < OK
0000006957 [hal] TRACE: NCP ready to accept AT commands
0000006957 [ncp.at] TRACE: > AT+UGPIOC?
0000006962 [ncp.at] TRACE: < AT+UGPIOC?
0000006962 [ncp.at] TRACE: < +UGPIOC:
0000006963 [ncp.at] TRACE: < 16,255
0000006964 [ncp.at] TRACE: < 19,255
0000006964 [ncp.at] TRACE: < 23,0
0000006965 [ncp.at] TRACE: < 24,255
0000006966 [ncp.at] TRACE: < 25,255
0000006966 [ncp.at] TRACE: < 42,255
0000006967 [ncp.at] TRACE: < OK
0000006968 [ncp.at] TRACE: > AT+UGPIOR=23
0000006972 [ncp.at] TRACE: < AT+UGPIOR=23
0000006974 [ncp.at] TRACE: < +UGPIOR: 23,0
0000006974 [ncp.at] TRACE: < OK
0000006975 [hal] INFO: Using external Nano SIM card
0000006975 [ncp.at] TRACE: > AT+CPIN?
0000006979 [ncp.at] TRACE: < AT+CPIN?
0000006980 [ncp.at] TRACE: < +CPIN: READY
0000006980 [ncp.at] TRACE: < OK
0000006981 [ncp.at] TRACE: > AT+CCID
0000006984 [ncp.at] TRACE: < AT+CCID
0000006987 [ncp.at] TRACE: < +CCID: 89011703278213679148
0000006987 [ncp.at] TRACE: < OK
0000006988 [ncp.at] TRACE: > AT+COPS=2
0000006991 [ncp.at] TRACE: < AT+COPS=2
0000006998 [ncp.at] TRACE: < OK
0000006999 [ncp.at] TRACE: > AT+CEDRXS=0
0000007006 [ncp.at] TRACE: < AT+CEDRXS=0
0000007007 [ncp.at] TRACE: < OK
0000007008 [ncp.at] TRACE: > AT+CPSMS=0
0000007012 [ncp.at] TRACE: < AT+CPSMS=0
0000007013 [ncp.at] TRACE: < OK
0000007014 [ncp.at] TRACE: > AT+CEDRXS?
0000007017 [ncp.at] TRACE: < AT+CEDRXS?
0000007019 [ncp.at] TRACE: < +CEDRXS: 2,"1001"
0000007020 [ncp.at] TRACE: < +CEDRXS: 5,"1001"
0000007021 [ncp.at] TRACE: < OK
0000007021 [ncp.at] TRACE: > AT+CPSMS?
0000007024 [ncp.at] TRACE: < AT+CPSMS?
0000007029 [ncp.at] TRACE: < +CPSMS:0,,,"01100000","00000000"
0000007029 [ncp.at] TRACE: < OK
0000007030 [ncp.at] TRACE: > AT+CMUX=0,0,,1509,,,,,
0000007036 [ncp.at] TRACE: < AT+CMUX=0,0,,1509,,,,,
0000007037 [ncp.at] TRACE: < OK
0000007038 [gsm0710muxer] INFO: Starting GSM07.10 muxer
0000007039 [gsm0710muxer] INFO: Openning mux channel 0
0000007040 [gsm0710muxer] INFO: GSM07.10 muxer thread started
0000007092 [gsm0710muxer] INFO: Resuming channel 0
0000007092 [gsm0710muxer] INFO: Openning mux channel 1
0000007143 [gsm0710muxer] INFO: Resuming channel 1
0000007143 [gsm0710muxer] INFO: Resuming channel 1
0000007144 [ncp.at] TRACE: > AT
0000007195 [ncp.at] TRACE: < AT
0000007195 [ncp.at] TRACE: < OK
0000007196 [hal] TRACE: NCP state changed: 1
0000007196 [net.pppncp] TRACE: NCP event 1
0000007197 [hal] TRACE: Muxer AT channel live
0000007198 [hal] TRACE: PPP thread event LOWER_DOWN
0000007198 [hal] TRACE: PPP thread event ADM_DOWN
0000007200 [hal] TRACE: PPP thread event ADM_UP
0000007200 [hal] TRACE: State NONE -> READY
0000007202 [ncp.at] TRACE: > AT+CGDCONT=1,"IP","m2m.com.attz"
0000007245 [ncp.at] TRACE: < AT+CGDCONT=1,"IP","m2m.com.attz"
0000007246 [ncp.at] TRACE: < OK
0000007247 [ncp.at] TRACE: > AT+CEREG=2
0000007295 [ncp.at] TRACE: < AT+CEREG=2
0000007295 [ncp.at] TRACE: < OK
0000007296 [hal] TRACE: NCP connection state changed: 1
0000007296 [net.pppncp] TRACE: NCP event 2
0000007297 [net.pppncp] TRACE: State changed event: 1
0000007297 [ncp.at] TRACE: > AT+COPS=0
0000007298 [hal] TRACE: PPP thread event LOWER_DOWN
0000007345 [ncp.at] TRACE: < AT+COPS=0
0000007345 [ncp.at] TRACE: < OK
0000007346 [ncp.at] TRACE: > AT+CEREG?
0000007346 [ncp.at] TRACE: < +CEREG: 2
0000007395 [ncp.at] TRACE: < AT+CEREG?
0000007395 [ncp.at] TRACE: < +CEREG: 2,2
0000007396 [ncp.at] TRACE: < OK
0000022396 [ncp.at] TRACE: > AT+CEREG?
0000022445 [ncp.at] TRACE: < AT+CEREG?
0000022445 [ncp.at] TRACE: < +CEREG: 2,2
0000022446 [ncp.at] TRACE: < OK
0000037446 [ncp.at] TRACE: > AT+CEREG?
0000037495 [ncp.at] TRACE: < AT+CEREG?
0000037495 [ncp.at] TRACE: < +CEREG: 2,2
0000037496 [ncp.at] TRACE: < OK
0000038696 [ncp.at] TRACE: < +CEREG: 3
0000052496 [ncp.at] TRACE: > AT+CEREG?
0000052545 [ncp.at] TRACE: < AT+CEREG?
0000052545 [ncp.at] TRACE: < +CEREG: 2,3
0000052546 [ncp.at] TRACE: < OK
0000061059 [sys.power] TRACE: re-enabling charging
0000061100 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000062226 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000067546 [ncp.at] TRACE: > AT+CEREG?
0000067601 [ncp.at] TRACE: < AT+CEREG?
0000067601 [ncp.at] TRACE: < +CEREG: 2,3
0000067602 [ncp.at] TRACE: < OK
0000082602 [ncp.at] TRACE: > AT+CEREG?
0000082651 [ncp.at] TRACE: < AT+CEREG?
0000082651 [ncp.at] TRACE: < +CEREG: 2,3
0000082652 [ncp.at] TRACE: < OK
0000097652 [ncp.at] TRACE: > AT+CEREG?
0000097701 [ncp.at] TRACE: < AT+CEREG?
0000097701 [ncp.at] TRACE: < +CEREG: 2,3
0000097702 [ncp.at] TRACE: < OK
0000112702 [ncp.at] TRACE: > AT+CEREG?
0000112751 [ncp.at] TRACE: < AT+CEREG?
0000112751 [ncp.at] TRACE: < +CEREG: 2,3
0000112752 [ncp.at] TRACE: < OK
0000122228 [sys.power] TRACE: re-enabling charging
0000122260 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000122424 [sys.power] TRACE: Battery state CHARGED -> CHARGING
0000122441 [sys.power] TRACE: Battery state CHARGING -> CHARGED
0000123386 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000127752 [ncp.at] TRACE: > AT+CEREG?
0000127801 [ncp.at] TRACE: < AT+CEREG?
0000127801 [ncp.at] TRACE: < +CEREG: 2,3
0000127802 [ncp.at] TRACE: < OK
0000142802 [ncp.at] TRACE: > AT+CEREG?
0000142851 [ncp.at] TRACE: < AT+CEREG?
0000142851 [ncp.at] TRACE: < +CEREG: 2,3
0000142852 [ncp.at] TRACE: < OK
0000157852 [ncp.at] TRACE: > AT+CEREG?
0000157901 [ncp.at] TRACE: < AT+CEREG?
0000157901 [ncp.at] TRACE: < +CEREG: 2,3
0000157902 [ncp.at] TRACE: < OK
0000172903 [ncp.at] TRACE: > AT+CEREG?
0000172951 [ncp.at] TRACE: < AT+CEREG?
0000172951 [ncp.at] TRACE: < +CEREG: 2,3
0000172952 [ncp.at] TRACE: < OK
0000183387 [sys.power] TRACE: re-enabling charging
0000183430 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000184556 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000187952 [ncp.at] TRACE: > AT+CEREG?
0000188001 [ncp.at] TRACE: < AT+CEREG?
0000188001 [ncp.at] TRACE: < +CEREG: 2,3
0000188002 [ncp.at] TRACE: < OK
0000203002 [ncp.at] TRACE: > AT+CEREG?
0000203051 [ncp.at] TRACE: < AT+CEREG?
0000203051 [ncp.at] TRACE: < +CEREG: 2,3
0000203052 [ncp.at] TRACE: < OK
0000218052 [ncp.at] TRACE: > AT+CEREG?
0000218101 [ncp.at] TRACE: < AT+CEREG?
0000218101 [ncp.at] TRACE: < +CEREG: 2,3
0000218102 [ncp.at] TRACE: < OK
0000233102 [ncp.at] TRACE: > AT+CEREG?
0000233151 [ncp.at] TRACE: < AT+CEREG?
0000233151 [ncp.at] TRACE: < +CEREG: 2,3
0000233152 [ncp.at] TRACE: < OK
0000244557 [sys.power] TRACE: re-enabling charging
0000244601 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000244765 [sys.power] TRACE: Battery state CHARGED -> CHARGING
0000244782 [sys.power] TRACE: Battery state CHARGING -> CHARGED
0000245728 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000248153 [ncp.at] TRACE: > AT+CEREG?
0000248202 [ncp.at] TRACE: < AT+CEREG?
0000248202 [ncp.at] TRACE: < +CEREG: 2,3
0000248203 [ncp.at] TRACE: < OK
0000263204 [ncp.at] TRACE: > AT+CEREG?
0000263252 [ncp.at] TRACE: < AT+CEREG?
0000263252 [ncp.at] TRACE: < +CEREG: 2,3
0000263254 [ncp.at] TRACE: < OK
0000278254 [ncp.at] TRACE: > AT+CEREG?
0000278302 [ncp.at] TRACE: < AT+CEREG?
0000278303 [ncp.at] TRACE: < +CEREG: 2,3
0000278304 [ncp.at] TRACE: < OK
0000293305 [ncp.at] TRACE: > AT+CEREG?
0000293352 [ncp.at] TRACE: < AT+CEREG?
0000293352 [ncp.at] TRACE: < +CEREG: 2,3
0000293353 [ncp.at] TRACE: < OK
0000305728 [sys.power] TRACE: re-enabling charging
0000305774 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000306900 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000308358 [ncp.at] TRACE: > AT+CEREG?
0000308409 [ncp.at] TRACE: < AT+CEREG?
0000308409 [ncp.at] TRACE: < +CEREG: 2,3
0000308410 [ncp.at] TRACE: < OK
0000308410 [hal] WARN: Resetting the modem due to the network registration timeout
0000308411 [gsm0710muxer] INFO: Stopping GSM07.10 muxer
0000308411 [gsm0710muxer] INFO: Gracefully stopping GSM07.10 muxer
0000308412 [gsm0710muxer] INFO: Closing all muxed channels
0000308412 [gsm0710muxer] INFO: Closing mux channel 1
0000308413 [gsm0710muxer] INFO: Muxed channel 2 already closed
0000308414 [gsm0710muxer] INFO: Muxed channel 3 already closed
0000308415 [gsm0710muxer] INFO: Muxed channel 4 already closed
0000308515 [gsm0710muxer] INFO: Sending CLD (multiplexer close down)
0000308565 [gsm0710muxer] INFO: Received response to CLD or timed out, exiting multiplexed mode
0000308565 [gsm0710muxer] INFO: GSM07.10 muxer thread exiting
0000308566 [gsm0710muxer] INFO: GSM07.10 muxer stopped
0000308566 [hal] TRACE: Hard resetting the modem
0000319567 [hal] TRACE: Powering modem on
0000319717 [hal] TRACE: Modem powered on
0000319717 [hal] TRACE: NCP state changed: 0
0000319718 [net.pppncp] TRACE: NCP event 1
0000319818 [hal] TRACE: Modem already on
0000319819 [hal] TRACE: Setting UART voltage translator state 1
0000320820 [ncp.at] TRACE: > AT
0000321820 [ncp.at] TRACE: > AT
0000322820 [ncp.at] TRACE: > AT
0000323820 [ncp.at] TRACE: > AT
0000323822 [ncp.at] TRACE: < AT
0000323823 [ncp.at] TRACE: < OK
0000324823 [hal] TRACE: NCP ready to accept AT commands
0000324823 [ncp.at] TRACE: > AT+UGPIOC?
0000324826 [ncp.at] TRACE: < AT+UGPIOC?
0000324827 [ncp.at] TRACE: < +UGPIOC:
0000324828 [ncp.at] TRACE: < 16,255
0000324829 [ncp.at] TRACE: < 19,255
0000324829 [ncp.at] TRACE: < 23,0
0000324830 [ncp.at] TRACE: < 24,255
0000324831 [ncp.at] TRACE: < 25,255
0000324831 [ncp.at] TRACE: < 42,255
0000324832 [ncp.at] TRACE: < OK
0000324832 [ncp.at] TRACE: > AT+UGPIOR=23
0000324837 [ncp.at] TRACE: < AT+UGPIOR=23
0000324838 [ncp.at] TRACE: < +UGPIOR: 23,0
0000324839 [ncp.at] TRACE: < OK
0000324839 [hal] INFO: Using external Nano SIM card
0000324840 [ncp.at] TRACE: > AT+CPIN?
0000324843 [ncp.at] TRACE: < AT+CPIN?
0000324844 [ncp.at] TRACE: < +CPIN: READY
0000324845 [ncp.at] TRACE: < OK
0000324845 [ncp.at] TRACE: > AT+CCID
0000324849 [ncp.at] TRACE: < AT+CCID
0000324852 [ncp.at] TRACE: < +CCID: 89011703278213679148
0000324852 [ncp.at] TRACE: < OK
0000324853 [ncp.at] TRACE: > AT+COPS=2
0000324857 [ncp.at] TRACE: < AT+COPS=2
0000324865 [ncp.at] TRACE: < OK
0000324866 [ncp.at] TRACE: > AT+CEDRXS=0
0000324873 [ncp.at] TRACE: < AT+CEDRXS=0
0000324873 [ncp.at] TRACE: < OK
0000324874 [ncp.at] TRACE: > AT+CPSMS=0
0000324878 [ncp.at] TRACE: < AT+CPSMS=0
0000324879 [ncp.at] TRACE: < OK
0000324880 [ncp.at] TRACE: > AT+CEDRXS?
0000324883 [ncp.at] TRACE: < AT+CEDRXS?
0000324885 [ncp.at] TRACE: < +CEDRXS: 2,"1001"
0000324887 [ncp.at] TRACE: < +CEDRXS: 5,"1001"
0000324888 [ncp.at] TRACE: < OK
0000324888 [ncp.at] TRACE: > AT+CPSMS?
0000324892 [ncp.at] TRACE: < AT+CPSMS?
0000324895 [ncp.at] TRACE: < +CPSMS:0,,,"01100000","00000000"
0000324897 [ncp.at] TRACE: < OK
0000324898 [ncp.at] TRACE: > AT+CMUX=0,0,,1509,,,,,
0000324904 [ncp.at] TRACE: < AT+CMUX=0,0,,1509,,,,,
0000324905 [ncp.at] TRACE: < OK
0000324906 [gsm0710muxer] INFO: Starting GSM07.10 muxer
0000324907 [gsm0710muxer] INFO: Openning mux channel 0
0000324908 [gsm0710muxer] INFO: GSM07.10 muxer thread started
0000324959 [gsm0710muxer] INFO: Resuming channel 0
0000324959 [gsm0710muxer] INFO: Openning mux channel 1
0000325060 [gsm0710muxer] INFO: Resuming channel 1
0000325060 [gsm0710muxer] INFO: Resuming channel 1
0000325061 [ncp.at] TRACE: > AT
0000325112 [ncp.at] TRACE: < AT
0000325112 [ncp.at] TRACE: < OK
0000325113 [hal] TRACE: NCP state changed: 1
0000325114 [net.pppncp] TRACE: NCP event 1
0000325115 [hal] TRACE: Muxer AT channel live
0000325117 [hal] TRACE: PPP thread event LOWER_DOWN
0000325117 [hal] TRACE: PPP thread event ADM_DOWN
0000325119 [hal] TRACE: State READY -> NONE
0000325121 [hal] TRACE: PPP thread event ADM_UP
0000325122 [hal] TRACE: State NONE -> READY
0000325120 [ncp.at] TRACE: > AT+CGDCONT=1,"IP","m2m.com.attz"
0000325162 [ncp.at] TRACE: < AT+CGDCONT=1,"IP","m2m.com.attz"
0000325163 [ncp.at] TRACE: < OK
0000325164 [ncp.at] TRACE: > AT+CEREG=2
0000325212 [ncp.at] TRACE: < AT+CEREG=2
0000325212 [ncp.at] TRACE: < OK
0000325213 [hal] TRACE: NCP connection state changed: 1
0000325213 [net.pppncp] TRACE: NCP event 2
0000325214 [net.pppncp] TRACE: State changed event: 1
0000325215 [ncp.at] TRACE: > AT+COPS=0
0000325216 [hal] TRACE: PPP thread event LOWER_DOWN
0000325262 [ncp.at] TRACE: < AT+COPS=0
0000325263 [ncp.at] TRACE: < OK
0000325264 [ncp.at] TRACE: > AT+CEREG?
0000325265 [ncp.at] TRACE: < +CEREG: 2
0000325312 [ncp.at] TRACE: < AT+CEREG?
0000325312 [ncp.at] TRACE: < +CEREG: 2,2
0000325314 [ncp.at] TRACE: < OK
0000340314 [ncp.at] TRACE: > AT+CEREG?
0000340362 [ncp.at] TRACE: < AT+CEREG?
0000340362 [ncp.at] TRACE: < +CEREG: 2,2
0000340363 [ncp.at] TRACE: < OK
0000355363 [ncp.at] TRACE: > AT+CEREG?
0000355412 [ncp.at] TRACE: < AT+CEREG?
0000355412 [ncp.at] TRACE: < +CEREG: 2,2
0000355413 [ncp.at] TRACE: < OK
0000356814 [ncp.at] TRACE: < +CEREG: 3
0000366900 [sys.power] TRACE: re-enabling charging
0000366941 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000368067 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000370414 [ncp.at] TRACE: > AT+CEREG?
0000370462 [ncp.at] TRACE: < AT+CEREG?
0000370462 [ncp.at] TRACE: < +CEREG: 2,3
0000370463 [ncp.at] TRACE: < OK
0000385463 [ncp.at] TRACE: > AT+CEREG?
0000385512 [ncp.at] TRACE: < AT+CEREG?
0000385512 [ncp.at] TRACE: < +CEREG: 2,3
0000385513 [ncp.at] TRACE: < OK

here is the setup program that I use. I have compiled it for all versions 9.0, 8.0.27, 8.0.25 with their corresponding firmware on the Boron: hybrid-0.9.0-boron, hybrid-0.8.0-rc.27-boron, and hybrid-0.8.0-rc.25-boron.

#include "Particle.h"

#include "dct.h"

SYSTEM_MODE(SEMI_AUTOMATIC);


void setup() {
    Cellular.setActiveSim(EXTERNAL_SIM);
    Cellular.setCredentials("m2m.com.attz");

    // 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);
    Cellular.on();
}

void loop() {
    
    if (Particle.connected() == false && Cellular.connecting() == false)
    Cellular.connect();
}

I also tried the clouddebug program. Not sure if there is anything helpful in the data. This running with the 8.0.27 firmware running on the Boron

starting tests...
turning cellular on...
0000015002 [system.nm] INFO: State changed: DISABLED -> IFACE_DOWN
0000020247 [hal] INFO: Using external Nano SIM card
0000020309 [gsm0710muxer] INFO: Starting GSM07.10 muxer
0000020310 [gsm0710muxer] INFO: Openning mux channel 0
0000020311 [gsm0710muxer] INFO: GSM07.10 muxer thread started
deviceID=e00fce68d994211d1ffdbabf
0000020361 [gsm0710muxer] INFO: Resuming channel 0
0000020362 [gsm0710muxer] INFO: Openning mux channel 1
0000020462 [gsm0710muxer] INFO: Resuming channel 1
0000020463 [gsm0710muxer] INFO: Resuming channel 1
manufacturer=u-blox
model=SARA-R410M-02B
firmware version=L0.0.00.00.05.06 [Feb 03 2018 13:00:41]
ordering code=SARA-R410M-02B
IMEI=352753090247725
IMSI=u-blox
ICCID=89011703278213679148
0000020865 [app] INFO: enabling trace logging
attempting to connect to the cellular network...
0000020868 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
0000020868 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
0000020869 [hal] TRACE: PPP netif -> 8
0000020870 [net.ifapi] INFO: Netif pp3 state UP
0000020870 [net.ifapi] INFO: Netif pp3 state UP
0000020871 [hal] TRACE: PPP thread event LOWER_DOWN
0000020872 [hal] TRACE: PPP thread event ADM_DOWN
0000020873 [hal] TRACE: PPP thread event ADM_UP
0000020874 [hal] TRACE: State NONE -> READY
0000020876 [ncp.at] TRACE: > AT+CGDCONT=1,"IP","m2m.com.attz"
0000020877 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
0000020877 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
0000020914 [ncp.at] TRACE: < OK
0000020915 [ncp.at] TRACE: > AT+CEREG=2
0000020964 [ncp.at] TRACE: < OK
0000020965 [hal] TRACE: NCP connection state changed: 1
0000020965 [net.pppncp] TRACE: NCP event 2
0000020966 [net.pppncp] TRACE: State changed event: 1
0000020967 [ncp.at] TRACE: > AT+COPS=0
0000020967 [hal] TRACE: PPP thread event LOWER_DOWN
0000021014 [ncp.at] TRACE: < OK
0000021015 [ncp.at] TRACE: > AT+CEREG?
0000021016 [ncp.at] TRACE: < +CEREG: 2
0000021064 [ncp.at] TRACE: < +CEREG: 2,2
0000021065 [ncp.at] TRACE: < OK
0000036065 [ncp.at] TRACE: > AT+CEREG?
0000036114 [ncp.at] TRACE: < +CEREG: 2,2
0000036115 [ncp.at] TRACE: < OK
0000051115 [ncp.at] TRACE: > AT+CEREG?
0000051164 [ncp.at] TRACE: < +CEREG: 2,2
0000051165 [ncp.at] TRACE: < OK
0000051965 [ncp.at] TRACE: < +CEREG: 3
0000062087 [sys.power] TRACE: re-enabling charging
0000062121 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000062251 [sys.power] TRACE: Battery state CHARGED -> CHARGING
0000062285 [sys.power] TRACE: Battery state CHARGING -> CHARGED
0000063062 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000066265 [ncp.at] TRACE: > AT+CEREG?
0000066321 [ncp.at] TRACE: < +CEREG: 2,3
0000066322 [ncp.at] TRACE: < OK
0000081323 [ncp.at] TRACE: > AT+CEREG?
0000081371 [ncp.at] TRACE: < +CEREG: 2,3
0000081372 [ncp.at] TRACE: < OK
0000096472 [ncp.at] TRACE: > AT+CEREG?
0000096521 [ncp.at] TRACE: < +CEREG: 2,3
0000096522 [ncp.at] TRACE: < OK
0000111622 [ncp.at] TRACE: > AT+CEREG?
0000111671 [ncp.at] TRACE: < +CEREG: 2,3
0000111672 [ncp.at] TRACE: < OK
0000123062 [sys.power] TRACE: re-enabling charging
0000123103 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000123976 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000126672 [ncp.at] TRACE: > AT+CEREG?
0000126721 [ncp.at] TRACE: < +CEREG: 2,3
0000126722 [ncp.at] TRACE: < OK
Serial connection closed.

here is the clouddebug with 9.0 firmware running on the Boron

starting tests...
turning cellular on...
0000015002 [system.nm] INFO: State changed: DISABLED -> IFACE_DOWN
0000020219 [hal] INFO: Using external Nano SIM card
0000020279 [gsm0710muxer] INFO: Starting GSM07.10 muxer
0000020280 [gsm0710muxer] INFO: Openning mux channel 0
0000020280 [gsm0710muxer] INFO: GSM07.10 muxer thread started
deviceID=e00fce68d994211d1ffdbabf
0000020332 [gsm0710muxer] INFO: Resuming channel 0
0000020333 [gsm0710muxer] INFO: Openning mux channel 1
0000020434 [gsm0710muxer] INFO: Resuming channel 1
0000020434 [gsm0710muxer] INFO: Resuming channel 1
manufacturer=u-blox
model=SARA-R410M-02B
firmware version=L0.0.00.00.05.06 [Feb 03 2018 13:00:41]
ordering code=SARA-R410M-02B
IMEI=352753090247725
IMSI=u-blox
ICCID=89011703278213679148
0000020837 [app] INFO: enabling trace logging
attempting to connect to the cellular network...
0000020841 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
0000020841 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
0000020843 [hal] TRACE: PPP netif -> 8
0000020843 [net.ifapi] INFO: Netif pp3 state UP
0000020843 [net.ifapi] INFO: Netif pp3 state UP
0000020845 [hal] TRACE: PPP thread event LOWER_DOWN
0000020846 [hal] TRACE: PPP thread event ADM_DOWN
0000020848 [hal] TRACE: PPP thread event ADM_UP
0000020850 [hal] TRACE: State NONE -> READY
0000020850 [ncp.at] TRACE: > AT+CGDCONT=1,"IP","m2m.com.attz"
0000020854 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
0000020854 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
0000020887 [ncp.at] TRACE: < OK
0000020887 [ncp.at] TRACE: > AT+CEREG=2
0000020937 [ncp.at] TRACE: < OK
0000020937 [hal] TRACE: NCP connection state changed: 1
0000020938 [net.pppncp] TRACE: NCP event 2
0000020940 [net.pppncp] TRACE: State changed event: 1
0000020941 [ncp.at] TRACE: > AT+COPS=0
0000020941 [hal] TRACE: PPP thread event LOWER_DOWN
0000020987 [ncp.at] TRACE: < OK
0000020988 [ncp.at] TRACE: > AT+CEREG?
0000020989 [ncp.at] TRACE: < +CEREG: 2
0000021037 [ncp.at] TRACE: < +CEREG: 2,2
0000021037 [ncp.at] TRACE: < OK
0000036038 [ncp.at] TRACE: > AT+CEREG?
0000036087 [ncp.at] TRACE: < +CEREG: 2,2
0000036087 [ncp.at] TRACE: < OK
0000051187 [ncp.at] TRACE: < +CEREG: 3
0000051188 [ncp.at] TRACE: > AT+CEREG?
0000051237 [ncp.at] TRACE: < +CEREG: 2,3
0000051237 [ncp.at] TRACE: < OK
0000060794 [sys.power] TRACE: re-enabling charging
0000060823 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000061663 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000066338 [ncp.at] TRACE: > AT+CEREG?
0000066387 [ncp.at] TRACE: < +CEREG: 2,3
0000066387 [ncp.at] TRACE: < OK
0000081488 [ncp.at] TRACE: > AT+CEREG?
0000081537 [ncp.at] TRACE: < +CEREG: 2,3
0000081537 [ncp.at] TRACE: < OK
0000096538 [ncp.at] TRACE: > AT+CEREG?
0000096587 [ncp.at] TRACE: < +CEREG: 2,3
0000096587 [ncp.at] TRACE: < OK
0000111588 [ncp.at] TRACE: > AT+CEREG?
0000111637 [ncp.at] TRACE: < +CEREG: 2,3
0000111637 [ncp.at] TRACE: < OK
0000121663 [sys.power] TRACE: re-enabling charging
0000121695 [sys.power] TRACE: Battery state DISCONNECTED -> CHARGED
0000122079 [sys.power] TRACE: Battery state CHARGED -> CHARGING
0000122111 [sys.power] TRACE: Battery state CHARGING -> CHARGED
0000122517 [sys.power] TRACE: Battery state CHARGED -> DISCONNECTED
0000126638 [ncp.at] TRACE: > AT+CEREG?
0000126687 [ncp.at] TRACE: < +CEREG: 2,3
0000126687 [ncp.at] TRACE: < OK
0000141788 [ncp.at] TRACE: > AT+CEREG?
0000141837 [ncp.at] TRACE: < +CEREG: 2,3
0000141837 [ncp.at] TRACE: < OK
0000156938 [ncp.at] TRACE: > AT+CEREG?
0000156987 [ncp.at] TRACE: < +CEREG: 2,3
0000156987 [ncp.at] TRACE: < OK
0000172088 [ncp.at] TRACE: > AT+CEREG?
0000172137 [ncp.at] TRACE: < +CEREG: 2,3
0000172137 [ncp.at] TRACE: < OK
Serial connection closed.

@rickkas7 perhaps you can help?

I’ve also noticed that the LED on D7 is dimmly lit. Could this be an indication of some kind of faulty hardware? I absolutely can not get these Borons to connect

Also note, this picture is when the Boron is flashing green the picture just happened to catch the exact moment between green flashes

0000021015 [ncp.at] TRACE: > AT+CEREG?
0000021016 [ncp.at] TRACE: < +CEREG: 2
0000021064 [ncp.at] TRACE: < +CEREG: 2,2
0000021065 [ncp.at] TRACE: < OK
0000036065 [ncp.at] TRACE: > AT+CEREG?
0000036114 [ncp.at] TRACE: < +CEREG: 2,2
0000036115 [ncp.at] TRACE: < OK
0000051115 [ncp.at] TRACE: > AT+CEREG?
0000051164 [ncp.at] TRACE: < +CEREG: 2,2
0000051165 [ncp.at] TRACE: < OK

That sequence indicates that no cell tower is accepting a connection from your Boron. Unfortunately the Boron LTE modem (u-blox SARA-R410M-02-B) doesn't allow a carrier scan like the 2G/3G modems do, it it's really hard to determine whether it's no towers, no compatible towers, or what.

There is a possibility that LTE carrier auto-detection is not working with your AT&T SIM. You might need to set it explicitly like you do with Hologram SIMs on LTE. It's explained in this post, just use mnoProf = 2 for AT&T instead of the Verizon setting used for Hologram.

Thanks for your reply @rickkas7 I added this to my setup code

void setup() {
    
    Cellular.on();
    int mnoProf = 2;
    Cellular.command("AT+COPS=2\r\n");
    Cellular.command("AT+UMNOPROF=%d\r\n", mnoProf);
    Cellular.command("AT+CFUN=15\r\n");
    Cellular.connect();
    while (Cellular.ready() == false){
        
    }
    Particle.connect();
}

and I still get flashing green. How can I add serial debugging to my user code? I tried SerialLogHandler logHandler(LOG_LEVEL_ALL); but I don’t get any output on the serial port

You should remove the Boron from the anti-static sponge.

2 Likes

All of my tests were done in a breadboard or just by themselves. I put the Boron back into the static sponge to put them back away into storage and pulled it back out in the sponge just for the picture to elaborate on the LED I noticed earlier that I thought might be worth mentioning. Not sure what else to try. I’m wondering if it is a problem with AT&T sim that they sent me as it is the only constant thing between the borons and I don’t have a spare to test with at the moment
Note: that does fix the LED being lit

@Slimfetz, Try AT+COPS=1,2,“310410” instead of COPS=2

@pmjackson so “AT+COPS=1,2\r\n” ? I don’t understand the 310410. I tried
Cellular.command(“AT+COPS=1,2"310410”\r\n");
blinking green always

@Slimfetz sorry… try Cellular.command(“AT+COPS=1,2,\“310410\”\r\n”); use escape \ char for enclosed quotes

Cellular.command(“AT+COPS=1,2"310410”\r\n");------ Don’t forget second comma.

@pmjackson so is there a comma after the 2? the first line says “AT+COPS=1,2,\“310410\”\r\n” the second says “AT+COPS=1,2"310410”\r\n" and yes I was using the escape characters when I used it in the code. For some reason when I post it in the comments it removes the \ on my comment.

I tried with the comma after the 2 and I did use the escape characters and It makes the Boron breath dark blue for a while now before flashing green, but unfortunately I never get cyan :frowning:

Try running the code without AT+CFUN=15.

You are in SEMI_AUTOMATIC mode?
with…
Cellular.setActiveSim(EXTERNAL_SIM);
Cellular.setCredentials(“hologram”);

@pmjackson I’m not using hologram I’m using AT&T

Oh Yeah, I see in your earlier posts.
But still run without AT+CFUN=15 and see what happens.

I have been using a AT Command pass thru app and see immediately what happens when using AT commands and then using AT+COPS=1,2,“310410” (setting to ATT network)… immediately went from Flashing green to Breathing Green.

I just tried it. It breaths dark blue, then flashes green forever. I don’t know how to use the serial debug into my user code. Do the AT commands stay in the memory? For instance once I’ve called these commands to change these settings if I now upload tinker onto the Boron will it use these settings or do I have to resend the AT commands into tinker somehow? The reason being is I want to see the serial output from tinker when using these new AT commands

@pmjackson what SIM are you using? Any chance you can run tinker with serial or the cloud debug so I can compare the serial output log?

@Slimfetz …Here is a simple AT Pass thru program to play with…
You will need to set APN, as you know, for your Sim…

Compile and Download firmware to Boron using DFU…

After initialization,Open serial monitor — set to 115200 baud.
You should be able to type in AT commands using Terminal monitor.
And see responses…
Try AT and Enter…should see OK reply.

AT+cgatt=1 is good to see what happens…
AT+COPS=1,2,“310410” also.
Look over AT command set for SARA R4100…

The ` key does a Particle.connect()
The ~ key does a Particle.disconnect()

// This #include statement was automatically added by the Particle IDE.

#include "Particle.h"

SYSTEM_MODE(SEMI_AUTOMATIC);
SYSTEM_THREAD(ENABLED);

char cellular_data[200] = "";
String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete

int cb(int type, const char* buf, int len, char* cellular_data);

void setup() {
    
  Cellular.setActiveSim(EXTERNAL_SIM);
  Cellular.setCredentials("hologram"); // Set to your APN
 //Cellular.setActiveSim(INTERNAL_SIM);
  //  Cellular.clearCredentials();

delay(2000);
	Serial.begin(11520);
	Cellular.on();
	delay(2000);
	Cellular.connect();
	
}


void loop(){
    
   
  while (Serial.available()) {
    // get char:
    char inChar = (char)Serial.read(); 
    Serial.print(inChar);  // Show it in monitor
    // add it to inputString:
    inputString += inChar;
    // if a return, set a flag
    // so the main loop can do something about it:
    if (inChar == '\r') {
      stringComplete = true;
          } 
          
    if (inChar == '`'){
        doConnect();
    }
    
    if (inChar == '~'){
        disConnect();
    }
    
     
    
  }

    
    if (stringComplete) {
        
        if ((inputString.startsWith("at"))||(inputString.startsWith("AT"))){
          Serial.print("Sending command: "+inputString +"\r\n");

    RESP_OK == Cellular.command(cb, cellular_data, 10000, inputString);
}
   else{
       Serial.print("Bad command:");
   }
   
    // clear the string:
    inputString = "";
    stringComplete = false;
  }
    delay(1);
    
 }
//#############################################################
int doConnect(){
    Particle.connect();
    inputString = "";
    return 1;
}

int disConnect(){
    Particle.disconnect();
    inputString = "";
    return 1;
}

int cb(int type, const char* buf, int len, char* cellular_data)
{
    Serial.printlnf("Reply: %s\r\n", buf);
    return WAIT;
}