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).
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"