GPRS sleep mode DTR issue with Seeedstudio Shield

Hi,

I use GPRS shield from SeeedStudio with an arduino to post data to a website. In order to put SIM900 into sleepmode , i tried the following as a part of a code:

void loop()
{ 

    //Code to upload data goes here

    //Enabling sleep mode in SIM900
    GPRS_Serial.println("AT+CSCLK=1"); //Enable Sleep mode, slowclock

    //D3 pin of Atmega used to drive DTR pin of SIM900
     pinMode(3, OUTPUT);

    //Pull DTR high to put it into sleep
    digitalWrite(3, HIGH);
    delay(100);

    delay(30000); // 30sec delay where the SIM will go to sleep

    digitalWrite(3, LOW); //wake up SIM900
    delay(100);// a minimim of 50msec is req

}

I had a wire going from DTR on J11 connector to Arduino D3 to toggle DTR pin. I am using Softserial interface.

After the execution a few times, i cannot get any reponse to any AT commands and looks like GPRS board is not responding to basic AT commands anymore. I dont get an OK from AT command anymore. I had the upload code working without putting SIM900 into sleep but not anymore since there is no response from GPRS shield for the AT commands.

Anyone tried to put SIM900 into sleep mode by using this approach ? I am concerned if i have damaged the serial interface of GPRS board. But I can see that the network registration is done from the flashing time of LEDs.

Any help is appreciated.

anyone with ideas ?

Hello, have you solved the problem? I would bring the GPRS to sleep.

Thanks

I use Arduino UNO + SIM900 and following command in arduino Setup() to make GSM module sleep and wake up:

// activate sleep mode
mySerial.println([b]"AT+CSCLK=2"[/b]); //2:Module decides itself if go to sleep mode if no data on serial port.
delay(500);
while (mySerial.available() != 0)
   Serial.write(mySerial.read());

Then, when I need in the Loop(), I wake up my module by sending two same messages. Module not always answet the first message. That means for me, that it is in sleep mode:

//confirm wake up from the sleep mode
Serial.println("Wake up (1) GSM by senging AT");
mySerial.println([b]"AT"[/b]);
delay(500);
while (mySerial.available() != 0)
   Serial.write(mySerial.read());

Serial.println("Wake up (2) GSM by senging AT");
mySerial.println([b]"AT"[/b]);
while (mySerial.available() != 0)
   Serial.write(mySerial.read());

Hello hubajs, i’m french, :wink:
i contact you cause i can see you have so many expérience on UDP/TCP working together
sorry i’m not realy here to help you in your topic but i need help for mine

can you have a look on my topic talking about UDP/TCP working together …i think you can help me and i think also i miss something to run my project, please help me ! :sob:

my topic

Hi.. Hubajs

I was trying with AT+CSCLK=2 and then the response from the Sim900 started becoming some funny response and then it gives no more response no matter how I spam "AT".

I tried with ur code that u have posted and the Sim900 module seemed like not giving response. Is it possible that the Rx pin of the board is burnt? If it is, is there any way I can check it?

Hi, to solve this. Try connecting the DTR pin to the ground of your SIM900 device. Reason is, according to the datasheet, to jump out of the sleep mode you can use about 3 methods. One of which involves pulling down the DTR pin to ground. Using the comman digitalWrite won't do that, except you interface it with a transistor.

binbot: Hi,

I use GPRS shield from SeeedStudio with an arduino to post data to a website. In order to put SIM900 into sleepmode , i tried the following as a part of a code:

void loop()
{ 

    //Code to upload data goes here

    //Enabling sleep mode in SIM900     GPRS_Serial.println("AT+CSCLK=1"); //Enable Sleep mode, slowclock

    //D3 pin of Atmega used to drive DTR pin of SIM900     pinMode(3, OUTPUT);

    //Pull DTR high to put it into sleep     digitalWrite(3, HIGH);     delay(100);

    delay(30000); // 30sec delay where the SIM will go to sleep

    digitalWrite(3, LOW); //wake up SIM900     delay(100);// a minimim of 50msec is req

}




I had a wire going from DTR on J11 connector to Arduino D3 to toggle DTR pin. I am using Softserial interface.

After the execution a few times, i cannot get any reponse to any AT commands and looks like GPRS board is not responding to basic AT commands anymore. I dont get an OK from AT command anymore. I had the upload code working without putting SIM900 into sleep but not anymore since there is no response from GPRS shield for the AT commands.

Anyone tried to put SIM900 into sleep mode by using this approach ? I am concerned if i have damaged the serial interface of GPRS board. But I can see that the network registration is done from the flashing time of LEDs.

Any help is appreciated.