Large AT Command results ... Interface Crashes ... any Idea?

Dear experts,

I am trying to readout cell information of my cell provider through "AT+QENG?" (see simple script below).
This command is supposed to return information about the serving cell and 6 neighbour cells.

whenever I execute the command (through below code) my interface from my Arduino One to the GSM Shield gets stuck and I have to reboot my modem.

I looks like this behaviour is related to retrieving large result sets from GSM Shield.

Any idea on how I can eliminate the problem?

// ADDON - I tried the same code with softwareserial.h (without GSM.h) and it works ... looks like softwareserial implementation of gsm.h has problems with result sets > 128Byte size ... any idea on how to fix this is highly appreciated as I need to use GSM.h due to subsequent usage of MQTT.


#include <GSM.h>

// initialize the library instance
GSM gsmAccess(true); // GSM access: include a 'true' parameter for debug enabled

// you need modemAccess to access the function writeModemCommand
// that function allows you to specify a delay for getting the answer from the gsm module
GSM3ShieldV1DirectModemProvider modemAccess(true);

// PIN Number
#define PINNUMBER ""

void setup()
{
Serial.begin(38400);
Serial.flush();
boolean notConnected = true;

Serial.println("Connecting to the GSM network");

while (notConnected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
notConnected = false;
else {
Serial.println("Not connected, trying again");
delay(1000);
}
}

Serial.println("Connected.");

}

void loop()
{

String data;
data.reserve(350);

// Start Collecting Cell Information

Serial.println("Sending AT Command.");
Serial.println(modemAccess.writeModemCommand("AT+QENG=1,1", 1000));
modemAccess.flush();
delay(2000);

// Display Cell Information

data = modemAccess.writeModemCommand("AT+QENG?", 1000);
Serial.println(data);
modemAccess.flush();
delay (2000);

// Below command doesn't work anymore ... system hangs ... looks like interface is down
data = modemAccess.writeModemCommand("AT+QENG?", 1000);
Serial.println(data);
delay (2000);

while (true);
}

I've never tried anything with large results, but my modem used to hang on http requests until I got the right power to the board. How are you powering the module?

Hi

I am trying to run some AT command in GSM module 900 with arduino uno.i am using serial software library.
my problem is that when i run 3 command it respods O.k. ok. ok.but when i try to run more command it not response to all commad i see continuous AAAAAAAAAA is coming .plz solve my code to that i can run many commad .and i have also updated RX ,TX buffer t0 256 .i softwareserial.h and arduino core.h.my code is as follows.

#include<SoftwareSerial.h>
SoftwareSerial SIM900(9,10);

void setup() {
// put your setup code here, to run once:
SIM900.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
delay(1000);
SIM900.println("AT"); //Sets the GSM Module in Text Mode
delay(1000);
SIM900.println("AT+COPS?");
delay(1000);
SIM900.println("AT"); //Sets the GSM Module in Text Mode
delay(1000);
SIM900.println("AT+COPS?");
delay(1000);
/SIM900.println("AT"); //Sets the GSM Module in Text Mode
delay(2000);
SIM900.println("AT+COPS?");
delay(2000);
SIM900.println("AT"); //Sets the GSM Module in Text Mode
delay(2000);
SIM900.println("AT+COPS?");
delay(2000);
SIM900.println("AT"); //
delay(2000);
SIM900.println("AT+COPS?");
delay(2000);
//SIM900.println("ATI");//
//delay(1000);
//SIM900.println("AT+CGATT=1");
//delay(1000);
//SIM900.println("AT+CIPCSGP=1,"airtelgprs.com"");
// delay(1000);
//SIM900.println("AT+CLPORT="UDP","1234"");
//delay(1000);
/

}

void loop() {
// put your main code here, to run repeatedly:
if(SIM900.available() >0)

Serial.write(SIM900.read());

//Serial.write(SIM900.read());

}