EFCom GPRS/GSM Shield
Try to connect "Pin RX on Mega to Pin RX on Shield" an "Pin TX on Mega to Pin TX on Shield":


Pin 50 (Rx)  on Mega &lt;==> Pin 2 GSM Rx on Shield
Pin 51 (Tx)  on Mega &lt;==> Pin 3 GSM Tx on Shield


I use an Geeetech Shield with a Mega 2560 and connect RX to Rx and TX to TX. Works fine.

Another solution is to use Serial1 instead of using SoftwareSerial ...

First connect:


Pin 19 (Rx1)  on Mega &lt;==> Pin 2 GSM Rx on Shield 
Pin 18 (Tx1)  on
Mega &lt;==> Pin 3 GSM Tx on Shield



    //Serial Relay
    unsigned char buffer[64];  // buffer array for data receive over serial port
    int count=0;               // counter for buffer array

void setup()
{
  Serial1.begin(19200);
  Serial.begin(19200);
}

void loop()
{
  if (Serial1.available())
  {
    while(Serial1.available())
    {
      buffer[count++]=Serial1.read();
      if(count == 64)break;
    }
    Serial.write(buffer,count);
    clearBufferArray();
    count = 0;
  }
  if (Serial.available())
    Serial1.write(Serial.read());
}

void clearBufferArray()
{
  for (int i=0; i&lt;count;i++)
  {
    buffer[i]=NULL;
  }
}




You can use a Arduino IDE's Serial Monitor, Serial Terminals(sscom32) or Bray++ Terminal to send AT commands to the Shield, communicate with it.

I hope this information is helpful.