I have an Arduino GSM shield and I plan to purchase an Adafruit GPS shield. The GPS module uses Pin 7 & 8 for Rx and Tx, but the GSM shield uses Pin 7 for Modem Reset.

Will the overlap on pin 7 affect it in any way? If it does cause issues, how can the problem be avoided?

  • 1
    This looks like a duplicate of a question you asked a few days ago (here). Are you wanting to ask something specific that wasn't covered there? Commented May 7, 2014 at 12:04
  • Yes, there they suggested me to go for the adafruit GPS shield. But the shied overlaps with Pin 7. I want to know, If I place this shield on the modem reset pin, how it will affect my application.
    – Manihatty
    Commented May 7, 2014 at 13:51
  • You might want to ask on the Adafruit forums.
    – Craig
    Commented May 7, 2014 at 21:05

1 Answer 1


Looking at the PDF for the Adafruit GPS shield, pin 7 is indeed hard wired to Rx and pin 8 is hard wired to Tx.

Adafruit GPS shield PCB

These can not be changed.

Looking at the guide for the Arduino GSM shield pin 7 is indeed reserved for modem reset:

Digital pins 2, 3 and 7 are reserved for communication between the Arduino and modem and cannot be used by your sketches. Communication between the moden and Arduino is handled by the Software Serial library on pins 2 and 3. Pin 7 is used for the modem reset.

As this is the case, should you stack the two shields together, without modification, then the overlap of the Rx pin on the GPS shield will cause resets to the modem on the GSM shield.

So, it seems that your best option is to use the solution provided by RedGrittyBrick, to your previous question Arduino shield stacking, the Go-Between Shield

You hear it all the time in the Arduino community, “will this shield work with my other shield?.” I think we’ve all been disappointed to find that two of our favorite shields compete for control of a digital pin here or a serial pin there. While there are sometimes some clever workarounds from elegant code modifications to aggressive ‘greenwiring,’ Mayhew Labs may have come up with the simplest solution thus far: The Go-Between Shield.

Once you have used the Go-Between shield to reassign the Rx pin to something that the GSM shield does not use, (as 2, 3 and 7 are already used, let's say you use pin 6), then in the File -> Examples -> Adafruit_GPS -> Parsing sketch, you will need to change the line

SoftwareSerial mySerial(3,2);


SoftwareSerial mySerial(8,6);

instead of

SoftwareSerial mySerial(8,7);

which is recommended in the PDF.

I hope that this answers your question(s). Let us know how you get on.


The schematic of the Arduino GSM shield: enter image description here

The schematic of the Adafruit GPS shield: schematic of the Adafruit GPS shield

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.