telit / arduino-tlt-library

GNU Lesser General Public License v2.1
3 stars 1 forks source link

Ok awesome I get the first issue :-(. Network scanner never returning, begin never returning #2

Open rchancey opened 2 years ago

rchancey commented 2 years ago

@fabiopi-tlt I purchased the Charlie after getting stuck with the MKR 1500 and their firmware issues.. got this board today and very excited. I installed the telit library from here : https://github.com/telit/arduino-charlie and got the board recognized. I am able to do the blink and fade no problem. Those work.

I am working to send an SMS. I have a valid SIM card and my APN is mobilenet. (I was able to send from the MKR 1500 but not receive.. which is what I need). I updated my APN in the sample and pushed it.. and it gets stuck on the TLTAccess.begin(). I attach my entire sketch below.

Please help.. anything I can do to debug this? since I am the first I think whatever we do for me will help others. There are other folks in the same situation looking at this Charlie board.

I am located in Texas in the US and using SpeedTalk SMS card also tried my Hologram SIM card

I get the same 'stuck' where it never gets past TLTAccess.begin()

I really want to get this working on the Charlie board. Please help!

Here is my sketch and the Serial output: NB IoT/LTE Cat M1 networks scanner Connecting...

` Sketch: /Copyright (C) 2020 Telit Communications S.p.A. Italy - All Rights Reserved./ / See LICENSE file in the project root for full license information. /

/** @file

// initialize the library instance

include "TLTMDM.h"

ME310* myME310 = new ME310();

TLT TLTAccess(myME310); // include a 'true' parameter to enable debugging TLTScanner scannerNetworks(myME310);

// Save data variables String IMEI = "";

// serial monitor result messages String errortext = "ERROR";

char APN[] = "mobilenet";

void setup() { // initialize serial communications and wait for port to open: Serial.begin(115200); myME310->begin(115200); delay(2000); Serial.println("NB IoT/LTE Cat M1 networks scanner"); scannerNetworks.begin();

// connection state boolean connected = false;

// Start module // If your SIM has PIN, pass it as a parameter of begin() in quotes Serial.println("Connecting..."); while (!connected) { if (TLTAccess.begin(NULL, APN, true) == READY) { connected = true; } else { Serial.println("Not connected"); delay(1000); } }

// get modem parameters // IMEI, modem unique identifier Serial.print("Modem IMEI: "); IMEI = myME310->request_imei_software_version(); IMEI.replace("\n", ""); if (IMEI != NULL) { Serial.println(IMEI); } }

void loop() { // currently connected carrier Serial.print("Current carrier: "); Serial.println(scannerNetworks.getCurrentCarrier());

// returns strength and BER // signal strength in 0-31 scale. 31 means power > 51dBm // BER is the Bit Error Rate. 0-7 scale. 99=not detectable Serial.print("Signal Strength: "); Serial.print(scannerNetworks.getSignalStrength()); Serial.println(" [0-31]");

// scan for existing networks, displays a list of networks Serial.println("Scanning available networks. May take some seconds."); Serial.println(scannerNetworks.readNetworks()); // wait ten seconds before scanning again delay(10000); } `

rchancey commented 2 years ago

@fabiopi-tlt Can someone in the product team offer a suggestion here? is there a way to debug the underlying board to ensure it is functioning correctly?

fabiopi-tlt commented 2 years ago

Hello, Since the charlie modem might be trying to register in NBIoT (which may take a lot of time), how much did you wait in the TLTAccess.begin() call?

things you can do to try and debug:

Serial.println("Connecting..."); TLTAccess.setTimeout(20000); /set a 20 seconds timeout/

while (!connected) { if (TLTAccess.begin(NULL, APN, true, false) == READY) { /disable the syncronous flag/ connected = true; } else { Serial.println("Not connected"); delay(1000); } }

also, before line https://github.com/telit/arduino-tlt-library/blob/main/src/TLT.cpp#L226 add a Serial.println(_readyState);

to check in which state the library is.

We will add additional debug prints in the library in a future release.

In any case, if you plan to send an SMS, you should look also at the example sketches:

https://github.com/telit/arduino-tlt-library/tree/main/examples/SendSMS_example https://github.com/telit/arduino-tlt-library/tree/main/examples/ReceiveSMS_example

rchancey commented 2 years ago

Ok... I am using the sketch you pasted.. all I did was add my APN. I tried what you suggested and getting not connected. Here is a screen shot:

Screen Shot 2021-10-12 at 9 47 54 AM

:

Is there a way we can check to ensure the board is actually working? I added the prinln to the cpp but nothing printed.

rchancey commented 2 years ago

@fabiopi-tlt is there a basic sketch I can run, and others, that does a simple self test of the board? I am sure these were tested but this simple use case should work right out of box. I have a feeling perhaps a component is bad. Perhaps a set of commands?

fabiopi-tlt commented 2 years ago

hello, can you keep pressed the on_off button on the board for 3-4 seconds? My feeling is that the modem is not on.

fabiopi-tlt commented 2 years ago

@fabiopi-tlt is there a basic sketch I can run, and others, that does a simple self test of the board? I am sure these were tested but this simple use case should work right out of box. I have a feeling perhaps a component is bad. Perhaps a set of commands?

you can use the examples directly from ME310 library:

https://github.com/telit/arduino-me310-library/tree/main/examples/M2M_example

or https://github.com/telit/arduino-me310-library/blob/main/examples/ME310_AT_Test/ME310_AT_Test.ino

rchancey commented 2 years ago

I tried that and the led next to the power connector started blinking a little but still no connection. .. but that led was not blinking before. How can I test to ensure the modem is on? this a great thing to test.. sure feels like something simple going on here. Thank you for helping.. .. hope we can fix it.

fabiopi-tlt commented 2 years ago

@rchancey I replied above, maybe there was a clash in the responses timing.

In any case, the sketch does not seem to automatically turn the modem on, we will look into it in the next release.

To perform manual tests on the hardware, you can connect the USB cable on the other port, which connects directly to the ME310 modem on the board. You will need to install the proper USB drivers, then two USB modem ports will be available to send AT commands. you can find the drivers at the link https://www.telit.com/developer-zone/charlie/ (Windows 10 drivers)

then keep pressed the on_off button for 5 seconds and you should see the USB modem ports.

rchancey commented 2 years ago

@fabiopi-tlt Well, the sketch is still not connecting. I am on a mac and do not have a windows machine. I moved off windows many years ago I guess. I unplugged the board and reconnected thinking maybe it needed a reset but still not connecting. I change the timeout to 30 seconds but still not connecting. Still feels like something is missing. Something simple?

rchancey commented 2 years ago

@fabiopi-tlt Here are the results from those 2 tests I performed. Any thing look suspect?

Screen Shot 2021-10-12 at 10 20 36 AM

ME310 ON

AT Command AT

VALID answer from ME310 MODULE

Soft Reset Command : VALID

Display Config Profile : DTE SPEED : 115200 DTE FORMAT : 8N1 GSM DATA MODE : Not Transparent AUTOBAUD : +IPRxxx00=NO
COMMAND ECHO : E1=YES
RESULT MESSAGES : Q0=YES
VERBOSE MESSAGES : V1=YES
EXTENDED MESSAGES : X1=YES
LINE SPEED : F0=autodetect
CONSTANT DTE SPEED : YES
FLOW CONTROL OPTIONS : &K0=NO
ERROR CORRECTION MODE : RLP
CTS (C106) OPTIONS : &B2=OFF while disc. DSR (C107) OPTIONS : &S3=PHONE ready->ON DTR (C108) OPTIONS : &D0=ignored
DCD (C109) OPTIONS : &C1=follows carrier RI (C125) OPTIONS : \R1=OFF dur. off-hk C108/1 OPERATION : &D0=NO
POWER SAVING ON DTR : +CFUN:1=NO
DEFAULT PROFILE : &Y0=user profile 1

Query SIM Status : OK

Read Query SIM Status :

QSS: 0,1

SIM is inserted PIN not required

Print ICCID : [8944501207218288823] Print IMSI : 234500093828882

List Capabilities : +GCAP: +CGSM

Manufacturer Identification : Telit Model Identification : ME310G1-WW Revision Identification : M0C.200001 Serial Number : 0027091 Request Manufacturer Ident. : Telit Request Model Ident. : ME310G1-WW Request Revision Ident. : M0C.200001 Product Serial Number : 359205100307893 Product Code : MWW_21_00

Software Package Version : 37.00.212-P0C.210000 M0C.200001 P0C.210000 A0C.210000

Transparent Bridge Started

fabiopi-tlt commented 2 years ago

ok, the modem is OK. If you run the first sketch now, what output do you get? Please consider that if you are using a NBIoT SIM card, the registration can take a while. Have you plugged the LTE antenna?

rchancey commented 2 years ago

@fabiopi-tlt yes I have the LTE antenna plugged in. I tried the first test and still not connected. Do I need to increase the timeout for some reason? or does the connect happen async?

rchancey commented 2 years ago

@fabiopi-tlt thank you for helping me.. I know it is hard debugging remote.. but sure feels like something simple is preventing this from connecting... but still not connecting.

fabiopi-tlt commented 2 years ago

try to leave it without timeout (remove the line TLTAccess.setTimeout(20000); ) and wait for some time. If you added the println in the cpp file, you should see the prints of the current state in the state machine, and this could help understanding what is happening.

If it still does not connect after a while (again, in NBIoT it can take minutes), please open a ticket to ts-emea@telit.com so we can give you the proper support about the cellular part.

In any case, you should have the modem ports in /dev/ (e.g. /dev/tty.usbserial-XXXX ) if you want to try and communicate with the modem directly

lastly, will release shortly an update with some improvements that simplify the debug

rchancey commented 2 years ago

Ok.. I removed the timeout and letting it run for a long time.. hope it connects. I the led is blinking a bit every so often not sure that matters. I am not seeing my print outs perhaps I need to find a way to force it to recompile it?

Screen Shot 2021-10-12 at 10 39 54 AM
fabiopi-tlt commented 2 years ago

in theory, the library should be recompiled by the IDE every time a file is changed. Are you referring to the red LED?

rchancey commented 2 years ago

It is not .. or the print is not working. I pasted a screen shot of the led.. its the one near the power connection.

Screen Shot 2021-10-12 at 10 50 57 AM Screen Shot 2021-10-12 at 10 49 02 AM
fabiopi-tlt commented 2 years ago

that LED is the battery charger one, the modem status is on the red LED (close to the debug port). In any case, do you know if your SIM supports NBIoT and CatM1? It might not work with a generic LTE SIM

rchancey commented 2 years ago

I have 2 different SIM Cards.. one from Speedtalk and one from Hologram.. they 'should' work.. I will investigate.

rchancey commented 2 years ago

I am using this: https://www.hologram.io/discover/hardware/global-iot-simcard?utm_source=google&utm_medium=cpc&utm_campaign=branded-usa&utm_source=google&utm_medium=cpc&utm_campaign=branded-usa&utm_term=hologram%20sim&gclid=EAIaIQobChMIn4PjzafF8wIVAGpvBB36zQgWEAAYASAAEgKts_D_BwE and it does support CATM but I wonder if just no coverage where I am

Humancell commented 2 years ago

I'm also getting started with the Charlie board. I was reading this issue just to learn about the experience and am having the exact same experience. I am trying the Scan Networks example. I do not believe it is the SIM, since I am also not getting past:

if (TLTAccess.begin(NULL, APN, true, true) == READY)

It is hanging on this call. I have also tried all of the things you suggest above.

rchancey commented 2 years ago

yes.. I think it something with the board. I have 4 different SIM cards and none work on the board.. I thought it might be no coverage in my area but this board is even a certified device on the Verizon network, and I am getting that added to my personal account but they got stuck and are trying to figure it out.

I think @fabiopi-tlt has been helpful but what we need is a way to test the modem to make sure it is working.. I don't think it is.

I am also having a hard time finding a battery for this.. .. the manual is very confusing as to if it will work with the temp sensor wire or not.. and the connection is not the normal jst .. quite confusing. @fabiopi-tlt any suggestions on a battery?

Humancell commented 2 years ago

Ok ... I made SOME progress with ScanNetworks!

  1. I removed and reinserted my SIM to ensure that it was in correctly and seated well.

  2. I re-ran the software and nothing occurred again.

  3. I pressed and held the ON_OFF button for 4+ seconds and released.

  4. After several seconds all of the sudden the board came alive!

  5. I am using a Twilio Super SIM, and it provides access to both AT&T and T-Mobile networks.

  6. It did display:

    Modem IMEI: 0
    Current carrier: T-Mobile
    Signal Strength:  [0-31]
    Scanning available networks. May take some seconds.
  7. It didn't display the signal strength, and is now just repeating:

Current carrier: 
Signal Strength:  [0-31]
Scanning available networks. May take some seconds.

But SOME progress!

rchancey commented 2 years ago

Heck that is progress.. I have not gotten even that. Try the sms send and receive examples!! :) .. exciting!

I cant tell if the modem is on or off.. I think the sample needs to add that as a check.

Humancell commented 2 years ago

Well ... the magic incantations expired. I'm back to nothing again. Can't get anything to work, no blinky lights or anything. Very frustrating that there is no consistency.

rchancey commented 2 years ago

:-( .. dang.. I had my fingers and toes crossed...maybe @fabiopi-tlt can share more insight. I think we are the first so expect some issues but I did expect it to at least work.. I am excited to see that Verizon has certified this.. still not sure if that helps but at least it was tested.

Humancell commented 2 years ago

Yeah, I'm done for today. No matter what I do I can't get the green blinky light working any more. I had that one partial success, and now nothing no matter what I do. I look forward to some feedback from the Telit team. So close.

rchancey commented 2 years ago

At least there are a couple of us trying.. the board has potential. We need a sketch that does a more rigorous test of the components somehow. Or send our boards to @fabiopi-tlt and he can test and figure out what the issue is :-(

rchancey commented 2 years ago

@fabiopi-tlt any ideas what we can try next?

fabiopi-tlt commented 2 years ago

Hello, sorry for the late reply (there is a big time gap between us since I am located in Europe).

The sketch by default does not turn the modem on automatically, but it requires the user to do so (by pressing the on_off button for 5 seconds). we will change the code so the sketch itself does it. To test the modem, please load this sketch:

#include <ME310.h>

#ifndef ARDUINO_TELIT_SAMD_CHARLIE
#define ON_OFF 6 /*Select the GPIO to control ON_OFF*/
#endif

using namespace me310;
/*
 * If a Telit-Board Charlie is not in use, the ME310 class needs the Uart Serial instance in the constructor, that will be used to communicate with the modem.\n 
 * Please refer to your board configuration in variant.h file.
 * Example:
 * Uart Serial1(&sercom4, PIN_MODULE_RX, PIN_MODULE_TX, PAD_MODULE_RX, PAD_MODULE_TX, PIN_MODULE_RTS, PIN_MODULE_CTS);
 * ME310 myME310 (Serial1); 
 */
ME310 myME310;
ME310::return_t rc;     //Enum of return value  methods

void setup() {
  pinMode(ON_OFF, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);

  Serial.begin(115200);
  myME310.begin(115200);
  delay(1000);

  Serial.println("TURN ON ME310");
  myME310.powerOn();
  Serial.println("ME310 TURNED ON");
  Serial.println("Bridge Communication Enabled");
}

void loop() {
  while (SerialModule.available()) {
    Serial.write(SerialModule.read());
  }
  while (Serial.available()) {
    SerialModule.write(Serial.read());
  }
}

It will make a bridge between the serial from the arduino and the ME310 modem, allowing us to communicate directly with it (the alternative would be using one of the USB modem ports generated from the other USB connector, as I mentioned in another message above).

once there is the bridge enabled, please try the following commands (ensure the lines end with a carriage return):

AT AT#SWPKGV AT+CPIN?

(the command above should reply READY when the SIM card is inserted)

AT+CCID AT+CGSN AT+CGDCONT?

and then send the following commands in a loop. AT+COPS? AT+CREG? AT+CEREG? AT+CGCONTRDP=1 AT+CSQ AT+CESQ AT#MONI

when the modem is attached, AT+CREG? or AT+CEREG? should reply 0,1 or 0,5

However please for further tests I would ask you to write to the technical support to receive proper help, giving the info provided by the commands below AT#SWPKGV AT+CPIN?
AT+CCID AT+CGSN AT+CGDCONT?

send an email to ts-americas@telit.com if you are in the Americas region, to ts-emea@telit.com if you are in EMEA, or to ts-apac@telit.com if you are in APAC.

rchancey commented 2 years ago

@fabiopi-tlt here are my results from the above: TURN ON ME310 ME310 TURNED ON Bridge Communication Enabled AT

OK AT#SWPKGV

37.00.212-P0C.210000 M0C.200001 P0C.210000 A0C.210000

OK AT+CPIN?

+CPIN: READY

OK AT+CCID

+CCID: 8944501207218288823

OK AT+CGSN

359205100307893

OK AT+CGDCONT?

+CGDCONT: 1,"IP","mobilenet","",0,0,0,0 +CGDCONT: 2,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 3,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 4,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 5,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 6,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0

OK AT+COPS?

+COPS: 0

OK AT+CREG?

+CREG: 0,0

OK AT+CEREG?

+CEREG: 0,0

OK AT+CGCONTRDP=1

OK AT+CSQ

+CSQ: 17,99

OK AT+CESQ

+CESQ: 17,99,255,255,255,255

OK AT#MONI

OK

I have emailed support.. twice. Once to ask about what battery and once to ask about this issue. I also provided the link this discussion. No response. I will send another note with the results from above as well. .. and a link to this discussion. I did not get a 0,1 or a 0,5.. I got 0,0.. does that mean anything?

rchancey commented 2 years ago

I have created a support case: Charlie issue | Case Number: 00268743

rchancey commented 2 years ago

@fabiopi-tlt here are teh results from the commands that support asked me to run: This is using my hologram SIM card.. can see it is able to talk to the towers somehow

Does this help you any as well?

TURN ON ME310 ME310 TURNED ON Bridge Communication Enabled AT

OK AT+CMEE=2

OK AT+CGMM

ME310G1-WW

OK AT#SWPKGV

37.00.212-P0C.210000 M0C.200001 P0C.210000 A0C.210000

OK AT+CIMI

234500093828882

OK AT+CGSN

359205100307893

OK AT#FWSWITCH?

FWSWITCH: 2

OK AT+CEREG=2

OK AT+CEREG?

+CEREG: 2,0

OK AT+COPS?

+COPS: 0

OK AT+COPS=?

+COPS: (1,"T-Mobile","T-Mobile","310260",0),,(0-4),(0-2)

OK AT+CGDCONT?

+CGDCONT: 1,"IP","mobilenet","",0,0,0,0 +CGDCONT: 2,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 3,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 4,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 5,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0 +CGDCONT: 6,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0

OK

Humancell commented 2 years ago

Hello,

Thank you for the new script ... but I think there must be some hardware issue with the board. :-(

I had to adjust the script but changing the initial delay to delay(2000); (Line 25) and then after doing that I get TURN ON ME310 and nothing else ... ever.

I'm guessing that the modem on my board is dead?

I have emailed the ts-americas email address, and now have Case Number: 00269414

fabiopi-tlt commented 2 years ago

@rchancey, this is not, unfortunately, the place to solve this problem, as it is not related to the library itself but specifically to the cellular network. You are already in contact with the proper support team, in the proper timezone, which will be able to help you better than I could, I am sorry.

@Humancell try keeping pressed the on_off button for 5 seconds, then press the mcu_reset button to restart the sketch.

rchancey commented 2 years ago

@fabiopi-tlt that is fair but it could still be a software issue.. I will keep everyone posted as support is having me run more commands. Thanks for your help so far

Humancell commented 2 years ago

@fabiopi-tlt I have been trying this again. The red LED is blinking VERY slowly ... on for 5 seconds, and then off for 10.

After doing this about a dozen times, I finally got:

TURN ON ME310
ME310 TURNED ON
Bridge Communication Enabled

But trying to send any AT commands at all does not work.

Humancell commented 2 years ago

Just to add, there appears to be NO consistency at all. I've attempted to align my button presses with the red LED on or off, and held for various amounts of time. It seems that I can get it to work as described above maybe 1 in 50 tries.

When it does indicate it entered the Bridge mode, there is no response to the AT Commands.

Also, I am able to monitor for any interaction between the modem and our mobile core, and there has been nothing at all since the one success yesterday.

Humancell commented 2 years ago

@fabiopi-tlt I am curious ... do you have a battery attached to your board?

rchancey commented 2 years ago

@Humancell I have no battery on mine. Support thinks it is my SIM Card provider and I am waiting on a response from them. I did have to set that command that I mentioned.

btw.. were you able to find the right battery? I am not able to find one with the J17 connection and 2 wires since the temp wire is not supposed to be supported yet? What did you find? or @fabiopi-tlt if you have a battery recommendation?

Humancell commented 2 years ago

I do know your SIM provider is a T-Mobile MVNO, and they might not be letting you use the T-Mobile Cat-M network as I think they reserve that for specific SIMs/Customers.

I haven't found a battery yet, as I can't find anything from Telit recommending batteries.

I started to wonder if it is a USB power issue.

rchancey commented 2 years ago

Yah, starting to think something like that is going on.. then I would fault Speedtalk and Hologram for not warning customers. I> am currently waiting on Verizon to active my plan.. that one should work. Also getting very inaccurate GNSS data from this dude .. but I hope once Verizon activates it will start to work.. getting just crazy numbers.. over in tibet or something.

enricomarongiu commented 2 years ago

Hi guys, afaik Cat.M is deployed almost everywhere in US, while NB-IoT is not fully supported and not by all MNOs. Other countries have different network setups and may need a different troubleshooting approach. I would take this example to sketch a checklist for newcomers, something like this: 1) is our SIM capable of connecting with Cat.M or NB-IoT? 2) am I in an area that has that technology deployed for that SIM MNO? 3) have I connected the antenna correctly? It's a shark antenna if you've the same package I have 4) for GNSS: am I outdoor? (bc indoor, under the trees, or even in narrow valleys/city canyons there's no way I can get a fix) 5) (now let's put some expectations on the various technologies: devices connect much faster when already in coverage, than when entering coverage for the first time: I like this example https://support.digitalmatter.com/support/solutions/articles/16000086467-cellular-battery-powered-device-upload-timeouts) 6) unless configured to attempt connection on one specific technology (with AT+WS46 and AT#WS46, please see Telit doc 80617ST10991A ), the modem will run full technology+network scan. 7) on the Arduino sketch let's suggest to have more error catching (will require some updates on the lib to be more verbose)

How do you see this?

fabiopi-tlt commented 2 years ago

hello, we pushed a new version of the library, it allows to print additional debug info if the TLTAccess constructor is called as in the new ScanNetworks example:

TLT TLTAccess(myME310, true);

Also, all the examples now automatically turn the ME310 on at the beginning of the code.