SIM900: GSM-Module is no longer working. How to reset?

Hello

I am using a SIM900 GSM shield in combination with an Arduino Uno and the open electronics library (Google Code Archive - Long-term storage for Google Code Project Hosting.).

Yesterday I send one new AT command in the GSM_GPSLibrary_AT example to the module. It was "AT+CSCLK=1" to disable slow clock which will cause, that the module will not go in the sleep mode.

But since then, my GSM library can not start the module. I tried a lot. Now I connect my computer direct the the UART port of the SIM900 and I log the commands. I send the following to reset the module:

    gsm.SimpleWriteln(F("AT+CSCLK=0"));    //DISABLE SLOW CLOCK
    delay(2000);
    gsm.SimpleWriteln(F("ATZ"));                //RESET DEFAULT CONFIGURATION
    delay(2000);
    gsm.SimpleWriteln(F("AT&F"));              //FACTORY DEFINED CONFIGURATION
    delay(2000);
    gsm.SimpleWriteln(F("AT+CFUN=1"));     //FULL PHONE FUNCTIONALIY

But it is no solution. The module will no communicate with the Arduino any longer. If I power up the SIM900 through the power on impuls, it will start and show this:

AT
AT
AT
AT
AT
AT&F
ATE0
AT+CLIP=1
AT+CMEE=0
AT+CMEE=0
AT+CMEE=0
AT+CMEE=0
AT+CMEE=0
AT+CMGF=1
AT+CMGF=1
AT+CMGF=1
AT+CMGF=1
AT+CMGF=1
AT+CNMI=2,0
AT+CNMI=2,0
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPMS="SM","SM","SM"
AT+CPBS="SM"
AT+CPBS="SM"
AT+CPBS="SM"
AT+CPBS="SM"
AT+CPBS="SM"
AT+CIPSHUT
AT+CIPSHUT
AT+CIPSHUT
AT+CIPSHUT
AT+CIPSHUT
ATE0
AT+CSCLK=0
AT+CSCLK=0
ATZ
AT&F
AT+CFUN=1

Is it destroyed? Or is it a bug of the firmware? I posted it as a bug in the Github->Issues of the library. Thank you for all hints:
https://code.google.com/p/gsm-shield-arduino/issues/detail?id=86

Felix

From reading comments in Russian and elsewhere I get the idea that you need to pull DTR high and then issue your AT commands. Until you reset with an AT&F and then issue an AT+CSCLK=0 the chip will always go to sleep until this happens. I don't own this device so it's hard to confirm.

Here's the info translated from Russian:
http://translate.googleusercontent.com/translate_c?depth=1&nv=1&rurl=translate.google.com&sl=auto&tl=en&u=http://electronix.ru/forum/lofiversion/index.php/t85857.html&usg=ALkJrhixkDj3_-_9HXPvTb5gctB4QnYL_g

This is a great idea. I will directly check it. With this hint I found the following information in the datasheet (file attached). This may also explain why I receive the information "ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp" from the SIM900 Library.

That says a lot about the quality of google translate.

I checked it and you gave me the solution. The things I had to do:

  • disconnect the Arduino from the SIM900 RX/TX pins
  • connect a Serial Adapter directly to the SIM900 RX and TX pins (pin 9 serial RX, pin 10 serial TX)
  • by default (in my case) choose terminal baud rate to 28800 baud + break line command (CR)
  • PULL DTR PIN TO HIGH!

To check if the serial communication is working start with command:
AT
the answer should be:
OK

Now I only had to type:
AT+CSCLK=0
OK
AT&W
OK

Ready.
Thank you for that great hint with DTR.

Hello,I have the same issue, It should be obviously, but How can "PULL DTR PIN TO HIGH"? where can I find de DTR PIN in SIM900 Shield?

Pin 3 (spot top left corner, third in down) on the SIM900 is the DTR pin. It may be broken out on your board somewhere.

I dont have a shield, just a breakout module. How do I access the dtr pin physically?