Open rchancey opened 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?
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
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:
:
Is there a way we can check to ensure the board is actually working? I added the prinln to the cpp but nothing printed.
@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?
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 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
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.
@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.
@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?
@fabiopi-tlt Here are the results from those 2 tests I performed. Any thing look suspect?
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 :
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
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?
@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?
@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.
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
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?
in theory, the library should be recompiled by the IDE every time a file is changed. Are you referring to the red LED?
It is not .. or the print is not working. I pasted a screen shot of the led.. its the one near the power connection.
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
I have 2 different SIM Cards.. one from Speedtalk and one from Hologram.. they 'should' work.. I will investigate.
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
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.
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?
Ok ... I made SOME progress with ScanNetworks!
I removed and reinserted my SIM to ensure that it was in correctly and seated well.
I re-ran the software and nothing occurred again.
I pressed and held the ON_OFF button for 4+ seconds and released.
After several seconds all of the sudden the board came alive!
I am using a Twilio Super SIM, and it provides access to both AT&T and T-Mobile networks.
It did display:
Modem IMEI: 0
Current carrier: T-Mobile
Signal Strength: [0-31]
Scanning available networks. May take some seconds.
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!
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.
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.
:-( .. 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.
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.
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 :-(
@fabiopi-tlt any ideas what we can try next?
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.
@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?
I have created a support case: Charlie issue | Case Number: 00268743
@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?
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
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
@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.
@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
@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.
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.
@fabiopi-tlt I am curious ... do you have a battery attached to your board?
@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?
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.
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.
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?
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.
@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
TLTMDM.h
@brief Scan Networks.
@details This example sketch prints the IMEI number of the modem, then check if it is connected to an operator.\n It then scans nearby networks and prints their signal strength. @version 1.0.0
@note
@author Cristina Desogus
@date 09/23/2021 */ // libraries
// 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); } `