GSM SIM900 shield; cannot reset the shield board?

Hi,
I've got China-grade arduino board. They are Arduino UNO R3 and GSM SIM900 shield.
Physically, I connect both UNO and GSM shield together, use the USB as the power supply, set jumper on the shield as shown in the attached photo.

With no any running code, I physically reset power button on the GSM shield then the shield successfully connects to the GSM network. I test by making my phone call to the shield board. There is a ringing tone in my phone.

At this point, it means that the GSM shield works well.

However, if I write a code asking UNO to reset the shield board. Nothing happens. The shield doesn't reset (I try to make a call to GSM shield, the GSM network responds "This number is unreachable").

Here is my simple code.

#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8); // configure software serial port

const unsigned int SERIAL_DELAY= 5;
const unsigned int BAUD_RATE= 19200;

void setup()
{
Serial.begin(BAUD_RATE);
Serial.println("Serial is Ready!!");

SIM900.begin(19200);
Serial.println("Turn ON the shield: Pin 9 = HIGH for 1 sec.");
// Restart the board
digitalWrite(9, HIGH);
delay(2000);
digitalWrite(9, LOW);
Serial.println("Set pin 9 low and wait 5 secs.");
delay(5000);
//Searching the network
Serial.println("Searching the network: Wait for 15 secs....");
//delay(15000);
}

Obviously, I cannot go on with those AT command (send sMS, make a call from GSM shield to normal mobile phone).

What should I check or fix?

Thank you in advance.

11796230_10200802427700935_1438390171255254859_n.jpg

// Restart the board
digitalWrite(9, HIGH);
delay(2000);
digitalWrite(9, LOW);
Serial.println("Set pin 9 low and wait 5 secs.");
delay(5000);

If setting the pin HIGH then LOW is supposed to reset the shield, then the print statement is pointless.

Pictures are nowhere near as useful as links.

Thanks, PaulS.

I print the statement so that I would know the code has run through these lines. I can remove those print statement.

The attached link is my GSM shield photos. It shows the jumper setting TX=7, RX= 8.

The code sets pin 9 ON --> OFF, but the shield doesn't reset.

Any suggestion?

Take a look at the page in my signature - it may offer some assistance.

Thanks, dannable. I've read through your page. It is very useful.

There is one sentence on your information
"When your project is up and running you may want to incorporate software control. If so, solder the two pads together and add the following section to your code"

What does it mean "solder two pads together"?

Do I need to do any additional solding? what for?

11796230_10200802427700935_1438390171255254859_n.jpg

That instruction is only for that particular shield. If yours doesn't have it then no need to do anything.

Can you provide a link to the shield you have?

Thanks, dannable.

Yes...I got from http://www.aliexpress.com/item/SIM900-GPRS-GSM-Shield-Development-Board-Quad-Band-For-Arduino-Compatible-High-Quality-Free-Shipping/32384656530.html

This link shows you the GSM shield's photo.

Currently, I set my shield's jumper at D8(Rx), D7(Tx).

I do some more test.

I connect the PIN9 from GSM shield to a LED to check if there is any current comes to GSM shield's PIN9.

When I run the code; PIN9 ON and OFF. I can see the LED On, then off.
That means Arduino-UNO already send some current to PIN9 on GSM shield.

I just solved the problem.

I check the schematic and see that I must solder two pads together. see attached photo (the yellow circle).

This soft switch is a toggle switch.

digitalWrite(9, HIGH);
delay(2000);
digitalWrite(9, LOW);
delay(3000);

means turn ON.

digitalWrite(9, HIGH);
delay(2000);
digitalWrite(9, LOW);
delay(3000);

command it again means turn OFF

Currently, I can send SMS, make a phone call, receive a phone call from GSM shield to other mobile phone.

Thank you everyone. :slight_smile: