You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Set serial for debug console (to the Serial Monitor, default speed 115200)
#define SerialMon Serial
// Set serial for AT commands (to the module)
// Use Hardware Serial on Mega, Leonardo, Micro
#ifndef AVR_ATmega328P
#define SerialAT Serial1
// or Software Serial on Uno, Nano
#else
#include <SoftwareSerial.h>
SoftwareSerial SerialAT(2, 3); // RX, TX
#endif
// Increase RX buffer to capture the entire response
// Chips without internal buffering (A6/A7, ESP8266, M590)
// need enough space in the buffer for the entire response
// else data will be lost (and the http library will fail).
#if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 650
#endif
// Define the serial console for debug prints, if needed
#define TINY_GSM_DEBUG SerialMon
// Add a reception delay, if needed.
// This may be needed for a fast processor at a slow baud rate.
#define TINY_GSM_YIELD() { delay(20); }
// Uncomment this if you want to use SSL
// #define USE_SSL
// Define how you're planning to connect to the internet.
// This is only needed for this example, not in other code.
#define TINY_GSM_USE_GPRS true
#define TINY_GSM_USE_WIFI false
// set GSM PIN, if any
#define GSM_PIN ""
// Your GPRS credentials, if any
const char apn[] = "apn"; // changed to "apn" for privacy
const char gprsUser[] = "";
const char gprsPass[] = "";
// Your WiFi connection credentials, if applicable
const char wifiSSID[] = "YourSSID";
const char wifiPass[] = "YourWiFiPass";
// Just in case someone defined the wrong thing..
#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS
#undef TINY_GSM_USE_GPRS
#undef TINY_GSM_USE_WIFI
#define TINY_GSM_USE_GPRS false
#define TINY_GSM_USE_WIFI true
#endif
#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI
#undef TINY_GSM_USE_GPRS
#undef TINY_GSM_USE_WIFI
#define TINY_GSM_USE_GPRS true
#define TINY_GSM_USE_WIFI false
#endif
// Restart takes quite some time
// To skip it, call init() instead of restart()
SerialMon.println("Initializing modem...");
modem.restart();
// modem.init();
delay(15000);
// modem.factoryDefault(); // Non existent for SIM7600
Some additional info:
When sending AT+COPS=? It returns a list of operators. Just as it should.
When sending AT+COPS? Returns +COPS: 2.
When sending AT+CPSI? Returns +CPSI: NO SERVICE,Online
With the register AT commands I get:
+CEREG: 0,4
+CGREG: 0,0
+CREG: 0,0
[ x] I have read the Troubleshooting section of the ReadMe
What type of issues is this?
[ ] Request to support a new module
[ ] Bug or problem compiling the library
[ ] Bug or issue with library functionality (ie, sending data over TCP/IP)
[x ] Question or request for help
What are you working with?
Modem:
Main processor board:
TinyGSM version:
Code: <!--
#define TINY_GSM_MODEM_SIM7600
#define DUMP_AT_COMMANDS
// Set serial for debug console (to the Serial Monitor, default speed 115200)
#define SerialMon Serial
// Set serial for AT commands (to the module)
// Use Hardware Serial on Mega, Leonardo, Micro
#ifndef AVR_ATmega328P
#define SerialAT Serial1
// or Software Serial on Uno, Nano
#else
#include <SoftwareSerial.h>
SoftwareSerial SerialAT(2, 3); // RX, TX
#endif
// Increase RX buffer to capture the entire response
// Chips without internal buffering (A6/A7, ESP8266, M590)
// need enough space in the buffer for the entire response
// else data will be lost (and the http library will fail).
#if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 650
#endif
// Define the serial console for debug prints, if needed
#define TINY_GSM_DEBUG SerialMon
// Add a reception delay, if needed.
// This may be needed for a fast processor at a slow baud rate.
#define TINY_GSM_YIELD() { delay(20); }
// Uncomment this if you want to use SSL
// #define USE_SSL
// Define how you're planning to connect to the internet.
// This is only needed for this example, not in other code.
#define TINY_GSM_USE_GPRS true
#define TINY_GSM_USE_WIFI false
// set GSM PIN, if any
#define GSM_PIN ""
// Your GPRS credentials, if any
const char apn[] = "apn"; // changed to "apn" for privacy
const char gprsUser[] = "";
const char gprsPass[] = "";
// Your WiFi connection credentials, if applicable
const char wifiSSID[] = "YourSSID";
const char wifiPass[] = "YourWiFiPass";
// Server details
const char server[] = "";
const char resource[] = "";
#include <TinyGsmClient.h>
// Just in case someone defined the wrong thing..
#if TINY_GSM_USE_GPRS && not defined TINY_GSM_MODEM_HAS_GPRS
#undef TINY_GSM_USE_GPRS
#undef TINY_GSM_USE_WIFI
#define TINY_GSM_USE_GPRS false
#define TINY_GSM_USE_WIFI true
#endif
#if TINY_GSM_USE_WIFI && not defined TINY_GSM_MODEM_HAS_WIFI
#undef TINY_GSM_USE_GPRS
#undef TINY_GSM_USE_WIFI
#define TINY_GSM_USE_GPRS true
#define TINY_GSM_USE_WIFI false
#endif
#ifdef DUMP_AT_COMMANDS
#include <StreamDebugger.h>
StreamDebugger debugger(SerialAT, SerialMon);
TinyGsm modem(debugger);
#else
TinyGsm modem(SerialAT);
#endif
#if defined(TINY_GSM_MODEM_HAS_SSL)
#define USE_SSL
#endif
#ifdef USE_SSL
TinyGsmClientSecure client(modem);
const int port = ;
#else
TinyGsmClient client(modem);
const int port = ;
#endif
#define RX 17
#define TX 16
//#define RI 32 // Not in use
void setup() {
// Set console baud rate
SerialMon.begin(115200);
delay(10);
SerialMon.println("Iniciando seriales");
SerialAT.begin(115200, SERIAL_8N1, RX, TX, false);
delay(1000);
// Restart takes quite some time
// To skip it, call init() instead of restart()
SerialMon.println("Initializing modem...");
modem.restart();
// modem.init();
delay(15000);
// modem.factoryDefault(); // Non existent for SIM7600
String modemInfo = modem.getModemInfo();
delay(3000);
SerialMon.print("Modem Info: ");
SerialMon.println(modemInfo);
delay(5000);
modem.setPhoneFunctionality(1);
modem.setNetworkMode(2);
delay(10000);
esp_sleep_enable_ext0_wakeup(GPIO_NUM_34, HIGH);
}
void loop() {
#if TINY_GSM_USE_GPRS
// GPRS connection parameters are usually set after network registration
SerialMon.print(F("Connecting to "));
SerialMon.print(apn);
if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
SerialMon.println(" fail");
delay(10000);
return;
}
SerialMon.println(" success");
delay(2000);
}
-->
Scenario, steps to reproduce
Trying to connect using the library function gprsConnect(). It loops trying to connect and fails everytime.
Expected result
Module registered and connected to network
Actual result
Module can't connect. NETOPEN returns 1 and loops trying to connect with the same result every time.
Debug and AT command log
Initializing modem...
AT
OK
AT+CRESET
OK
[25361] ### TinyGSM Version: 0.12.0
[25362] ### TinyGSM Compiled Module: TinyGsmClientSIM7600
AT
AT
AT
AT
AT
AT
AT
AT
AT
RDY
+CPIN: READY
AT
OK
ATE0
ATE0
OK
AT+CMEE=2
PB DONE
OK
AT+CGMI
SIMCOM INCORPORATED
OK
AT+CGMM
SIMCOM_SIM7600SA-MNSE
OK
[30635] ### Modem: SIMCOM INCORPORATED SIMCOM_SIM7600SA-MNSE
[30635] ### Modem: SIMCOM INCORPORATED SIMCOM_SIM7600SA-MNSE
AT+CTZR=0
OK
AT+CTZU=1
OK
AT+CPIN?
+CPIN: READY
OK
Modem reiniciado
ATI
Manufacturer: SIMCOM INCORPORATED
Model: SIMCOM_SIM7600SA-MNSE
Revision: SIM7600M11_A_V2.0
IMEI: 863427044693423
+GCAP: +CGSM
OK
Modem Info: Manufacturer: SIMCOM INCORPORATED Model: SIMCOM_SIM7600SA-MNSE Revision: SIM7600M11_A_V2.0 IMEI: 863427044693423 +GCAP: +CGSM
AT+CFUN=1
OK
AT+CNMP=2
OK
Connecting to xxxxx
AT+NETCLOSE
+NETCLOSE: 2
ERROR
AT+CGDCONT=1,"IP","xxxxx","0.0.0.0",0,0
OK
AT+CIPMODE=0
OK
AT+CIPSENDMODE=0
OK
AT+CIPCCFG=10,0,0,0,1,0,75000
OK
AT+CIPTIMEOUT=75000,15000,15000
OK
AT+NETOPEN
OK
+NETOPEN: 1
[144027] ### Unhandled: OK
+NETOPEN: 1
fail
Connecting to xxxxx
AT+NETCLOSE
+NETCLOSE: 2
ERROR
AT+CGDCONT=1,"IP","xxxxx","0.0.0.0",0,0
OK
AT+CIPMODE=0
OK
AT+CIPSENDMODE=0
OK
AT+CIPCCFG=10,0,0,0,1,0,75000
OK
AT+CIPTIMEOUT=75000,15000,15000
OK
AT+NETOPEN
OK
+NETOPEN: 1
[230423] ### Unhandled: OK
+NETOPEN: 1
fail
The text was updated successfully, but these errors were encountered: