user6471: I have an EFCom GPRS/GSM Shield 
http://www.elecfreaks.com/wiki/index.php?title=EFCom_GPRS/GSM_Shield
and I am using it with a mega 2560. The problem is that the code in the wiki page 
//Serial Relay - Arduino will patch a  
//serial link between the computer and the GPRS Shield 
//at 19200 bps 8-N-1 
//Computer is connected to Hardware UART 
//GPRS Shield is connected to the Software UART 

#include <SoftwareSerial.h>   
SoftwareSerial mySerial(2, 3);   
void setup() {   
  mySerial.begin(19200);               // the GPRS baud rate
  Serial.begin(19200);                 // the GPRS baud rate    
}   

void loop() {   
  if (mySerial.available())
    Serial.write(mySerial.read());   
  if (Serial.available())
    mySerial.write(Serial.read()); 
}

makes use of software serial but mega 2560 cannot use software serial on pin 2, as in the arduino reference, thus I changed the pins to 50 and 51 and used external female-male headers to connect s_tx to pin 50 "rx" , and s_rx to pin 51 "tx", still no response with the AT command...
code after update is :
#include <SoftwareSerial.h>   
SoftwareSerial mySerial(50, 51);   
void setup() {   
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop() {  
  if (mySerial.available())
    Serial.write(mySerial.read());   
  if (Serial.available())
    mySerial.write(Serial.read());    
}

Note that I am using the Arduino IDE serial monitor.

user6845: 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 <==> Pin 2 GSM Rx on Shield
Pin 51 (Tx)  on Mega <==> 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 <==> Pin 2 GSM Rx on Shield 
Pin 18 (Tx1)  on
Mega <==> 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<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. 

6471: <p>I have an EFCom GPRS/GSM Shield 
<a href="http://www.elecfreaks.com/wiki/index.php?title=EFCom_GPRS/GSM_Shield" rel="nofollow">http://www.elecfreaks.com/wiki/index.php?title=EFCom_GPRS/GSM_Shield</a>
and I am using it with a mega 2560. The problem is that the code in the wiki page </p>

<pre><code>//Serial Relay - Arduino will patch a  
//serial link between the computer and the GPRS Shield 
//at 19200 bps 8-N-1 
//Computer is connected to Hardware UART 
//GPRS Shield is connected to the Software UART 

#include &lt;SoftwareSerial.h&gt;   
SoftwareSerial mySerial(2, 3);   
void setup() {   
  mySerial.begin(19200);               // the GPRS baud rate
  Serial.begin(19200);                 // the GPRS baud rate    
}   

void loop() {   
  if (mySerial.available())
    Serial.write(mySerial.read());   
  if (Serial.available())
    mySerial.write(Serial.read()); 
}
</code></pre>

<p>makes use of software serial but mega 2560 cannot use software serial on pin 2, as in the arduino reference, thus I changed the pins to 50 and 51 and used external female-male headers to connect s_tx to pin 50 "rx" , and s_rx to pin 51 "tx", still no response with the AT command...</p>

<p>code after update is :</p>

<pre><code>#include &lt;SoftwareSerial.h&gt;   
SoftwareSerial mySerial(50, 51);   
void setup() {   
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop() {  
  if (mySerial.available())
    Serial.write(mySerial.read());   
  if (Serial.available())
    mySerial.write(Serial.read());    
}
</code></pre>

<p>Note that I am using the Arduino IDE serial monitor.</p>
 6845: <p>Try to connect "Pin RX on Mega to Pin RX on Shield" an "Pin TX on Mega to Pin TX on Shield":</p>

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

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

<p>Another solution is to use Serial1 instead of using SoftwareSerial ...</p>

<p>First connect:</p>

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

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

<code>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;
  }
}
</code></pre>

<p></p>

<p>You can use a Arduino IDE's Serial Monitor, <a href="http://musicshield.googlecode.com/files/sscom32E.exe" rel="nofollow">Serial Terminals(sscom32)</a> or <a href="http://sites.google.com/site/terminalbpp/" rel="nofollow">Bray++ Terminal</a> to send AT commands to the Shield, communicate with it.</p>

<p>I hope this information is helpful. </p>
