-
-
Notifications
You must be signed in to change notification settings - Fork 204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Portenta CAT.M1/NB IoT GNSS Shield connecting failure #970
Comments
@brinata I think I was able to reproduce your issue and I've proposed a fix in #975 . The PR needs to be used with some other changes in the Arduino_ConnectionHandler arduino-libraries/Arduino_ConnectionHandler#131 Do you mind give it a spin on your hardware? Thanks |
I've made some test, with these results: moduel non connected yet setting the timeout value at 1000 ms and calling the shutdown(), it seems that the library is able to re-try the connection procedure with success module already connected if you call the GSM.disconnect() function, then the library is not able to recover its initial state and the only way to re-initialize the Gsm Interface is reboot the cpu |
@brinata can you share the sketch to reproduce this scenario? |
@brinata also make sure to call |
here the sketch GSMClient.txt please note that: ... please help |
Hi @brinata I've also updated the connectionHandler PR arduino-libraries/Arduino_ConnectionHandler#131 including a test sketch that is doing the following:
|
Hi Pennam, Was you able to verify if the GSM library works when an "Asynchronous" disconnection happens ? for instance, when the account credit is expired or when the signal strenght is poor ? Moreover, very often Network operators allow the connection with no account credit, even if the connection will not work.... how is it possibile to check these condition ? As writtend in the CINTERION dos, About the ^SYSSTART, I suggest to use it to generate an event that signals the modem startup. for the shutdown , reset, and re-start , the manual suggest the software fast shutdown command AT^SMSO="fast" to power off the module and the AT+CFUN=1,1 to reset it About Hardware reset, the docs say: Warning: |
Hi @brinata,
I've made some test about this disconnecting the antenna from the modem. As soon as the modem detects there is no network the +CGEV: NW DET urc is triggered and the network status is updated. You can check this condition from the application calling GSM.isConnected() like is done in the connectionHandler.
In this condition GSM.isConnected() is returning |
Hi Pennam, After several tests I discovered that sometimes some modules didn’t reply after a fast startup like after a hardware reset of the EDGE CONTROL board. Is it possible that in some condition the module was kept in permanent shutdown in a "bad" internal state ? I modified the start-up procedure as follow: end();
void arduino::GSMClass::on() { } I added a double power on edge because I found on some Cinterion document that was a workaround to have a sure startup. The off() call can be useful only if you want to power off the module because this command the module stop communicating Can you verify this behaviour on the project documentation ? regards |
Hi @brinata |
Hello,
I'm using the Portenta CAT.M1/NB IoT GNSS Shield with the EDGE CONTROL board.
if the application fails the initial connection process because the signal strength is low or because the general latency of the GSM network, the GSM library in not able to reconnect: when I try to run the GSM.begin() again, the application program stop working after receiving the "^SYSSTART" string from the modem:
The board was not able to register to the network...
[000270[INFO][CELL]: AT TX ( 2): AT
[000270[INFO][CELL]: AT TX ( 1):
[000303[INFO][CELL]: AT RX ( 2):
[000303[INFO][CELL]: AT RX (11): ^SYSSTART
[000304[INFO][CELL]: AT RX ( 2):
[000304[INFO][CELL]: AT RX ( 6): +CIEV:
[000304[INFO][CELL]: AT RX (14): prov,0,"fallb
[000304[INFO][CELL]: AT RX ( 7): 3gpp"
The only way to re-start is reset the board.
I'm using the mbed 4.1.15
to simulate the problem I forced the following retry table in the GSM.h file:
const uint16_t _retry_timeout[3] = {1, 2, 4};
Please help me because I can't reset the whole application program to re-start the connectivity ....
GSMClient.txt
sketch_yaml.txt
The text was updated successfully, but these errors were encountered: