# Adafruit Shield Compatibility Guide

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/010/448/medium800/adafruit_products_store.jpg?1396906018)

This guide documents compatibility of a variety of Adafruit shields against a number of mainstream Arduino boards. Workarounds are provided for certain otherwise-incompatible cases.  
  
This guide does <u>not</u> cover every esoteric Arduino spinoff out there; **just because a board uses the Arduino shield pinout is no guarantee of compatibility.** The provided libraries work primarily with AVR-based Arduinos (and occasionally the Arduino Due), but aren’t supported on alternative architecture boards like Netduino, chipKIT or Maple. You might find a compatible library elsewhere, but that’s some Wild West stuff and we can’t help debug this.

# Common Troubleshooting Issues
If a shield is not working with a board listed as “compatible,” check the following:  

- If the shield arrived in kit form, or required adding headers, double-check all components and solder connections (look for solder bridges between pads, “cold” solder joints, etc.). [Here’s a tutorial on good soldering technique](http://learn.adafruit.com/adafruit-guide-excellent-soldering/making-a-good-solder-joint).
- Test the shield using the example code first. More complex software might exceed available RAM. If your code is behaving unexpectedly and you suspect the Arduino’s memory is full, [this guide can help you understand and trim memory usage](http://learn.adafruit.com/memories-of-an-arduino).  
- Are you having trouble compiling the code? The library might not be installed correctly. [Here’s a guide to doing it right](http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use "Link: http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use").
- Multiple shields may be trying to use the same pin(s). Check the Pin & Address Reference section of each shield page, looking for any overlap. Many shields can be reconfigured by cutting trace(s) with an X-acto knife and installing a wire jumper to a different pin, then making the corresponding changes in the code.
- Are you using either a genuine Arduino board, or a reputable firm’s compatible board? Counterfeit Arduino boards look like the real deal, but often cut corners that lead to compatibility headaches. [Here’s a guide to spotting fakes](http://arduino.cc/en/Products/Counterfeit "Link: http://arduino.cc/en/Products/Counterfeit").  
- Adafruit shields get badly copied too! Did your shield come from either Adafruit or one of our distributors? If you found a “too good to be true” deal on a discount electronics or auction site, it probably <u>is</u> too good to be true!
- If nothing else helps, visit the [Adafruit Customer Support Forums](http://forums.adafruit.com). You can search past posts to see if others have a solution…or, if not, you can discuss your specific issues with support staff.

# Regarding “Soft” SPI and the Arduino Mega
Some shields (those with SD cards) can operate with the Arduino Mega one of two ways:  

- Use the [Adafruit SD library](https://github.com/adafruit/SD), which allows SPI pin numbers to be specified in one’s sketch (usually easier).
- Modify the stock Arduino SD library to use “soft” SPI.

The latter requires editing one file included in the Arduino distribution. This is relatively straightforward with Windows and Linux:  
Alongside the Arduino application executable you’ll find a folder called “libraries.” Look in libraries\SD\utility to find the file Sd2Card.h, which can be opened with Notepad or any simple text editor.

![adafruit_products_winEdit.png](https://cdn-learn.adafruit.com/assets/assets/000/010/463/medium640/adafruit_products_winEdit.png?1396906281)

There’s an extra step required on the Mac, where the Arduino application appears as a unified package:

Right-click on the Arduino application and select “Show Package Contents” from the pop-up menu.

![adafruit_products_macEdit1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/464/medium640/adafruit_products_macEdit1.jpg?1396906290)

Navigate through the sub-folders Contents/Resources/Java/libraries/SD/utility and open the file Sd2Card.h using TextEdit or any simple text editor.

![adafruit_products_macEdit2.png](https://cdn-learn.adafruit.com/assets/assets/000/010/465/medium640/adafruit_products_macEdit2.png?1396906333)

Once editing that file (on all systems — Windows, Mac or Linux), locate and change the following line:

```
#define MEGA_SOFT_SPI 0
```

to instead read:

```
#define MEGA_SOFT_SPI 1
```

Save the changes to the file, then re-compile your code.  
  
Reverse this change if you want to use the library with non-Mega boards.  
  
This folder is for stock libraries distributed with the Arduino IDE, and will be overwritten any time a new version is installed. <u>Do not</u> install other libraries (such as those from Adafruit) here! They should instead go in your <u>personal</u> sketchbook/libraries folder.

![](https://cdn-learn.adafruit.com/assets/assets/000/010/466/medium800/adafruit_products_libinstall.png?1396906363)

# Adafruit Shield Compatibility Guide

## Shield List

Select a shield for specific compatibility guidelines.

- [16-Channel 12-bit PWM/Servo Shield](http://learn.adafruit.com/adafruit-shield-compatibility/16-channel-12-bit-pwm-slash-servo-shield)  
- [Data Logging Shield (Assembled)](http://learn.adafruit.com/adafruit-shield-compatibility/data-logging-shield-assembled)  
- [Motor/Stepper/Servo Shield (Version 2)](http://learn.adafruit.com/adafruit-shield-compatibility/motor-slash-stepper-slash-servo-shield-v2)  
- [NeoPixel Shield](http://learn.adafruit.com/adafruit-shield-compatibility/neopixel-shield)  
- [PN532 NFC/RFID Controller Shield](http://learn.adafruit.com/adafruit-shield-compatibility/rfid)  

# Adafruit Shield Compatibility Guide

## 16-Channel 12-bit PWM/Servo Shield

![](https://cdn-learn.adafruit.com/assets/assets/000/010/441/medium800/adafruit_products_ServoShield.jpg?1396905900)

Driving servo motors with the Arduino Servo library is pretty easy, but each one consumes a precious pin - not to mention some Arduino processing power. The Adafruit 16-Channel 12-bit PWM/Servo Driver Shield will drive up to 16 servos over I2C with only 2 pins. The on-board PWM controller will drive all 16 channels simultaneously with no additional Arduino processing overhead. What's more, you can stack up to 62 of them to control up to 992 servos - all with the same 2 pins!  
  
The Adafruit PWM/Servo Driver is the perfect solution for any project that requires a lot of servos!  
# Plug-and-Play Compatible Boards
The PWM/Servo Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Leonardo**  
- **Arduino Mega 2560 R3** (<u>not</u> R2 or earlier, see below)
- **Arduino Mega ADK**
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip
- **Arduino Due**

# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps:  
## Arduino Mega 2560 R2

- Add jumper wire from **SDA** on shield to **pin 20** on Mega board.  
- Add jumper wire from **SCL** on shield to **pin 21** on Mega board.  

# Pin and Address Reference
The shield uses the following pins:  

- +5V or +3.3V (selectable w/solder pads)  
- GND  
- SDA and SCL (on boards that have these pins)  
- Analog pins 4 and 5 (see notes below)

This an I²C device (uses the Wire library) and can usually be stacked or shared with other I²C shields and devices (including multiple PWM/Servo Shields), provided that each has a unique address. Solder pads on this shield allow selection of one of 62 addresses (0x40-0x7E). Default address (no solder jumpers) is 0x40.  
  
**Do not use Analog pins 4 or 5 with your project in combination with this shield** , even on Arduino boards that use different pins for I²C communication (Leonardo, Mega, Due). For compatibility with “classic” (pre-R3) Arduino boards, the shield connects SDA and SCL to Analog pins 4 and 5, respectively; communication and analog readings would mutually interfere. Leonardo users should likewise avoid Digital pins 2 and 3 when using I²C.  
# Untested Boards and Other Notes

- **Arduino Mega 1280:** compatibility should be similar to the Mega 2560 R2; extra jumper wires would be required as explained above for that board.  
- **Adafruit Menta:** equivalent to Arduino Duemilanove w/328 chip; almost certainly compatible.
- **Arduino Duemilanove and Diecimila w/ATmega168 chip:** electrically and mechanically compatible with 328 chip, but has only half the RAM and program space. The library is not especially memory hungry, so this is _very likely_ compatible but _not 100% assured._  
- **Arduino NG or older:** possibly compatible, memory constraints permitting.  

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com "Link: http://forums.adafruit.com") for assistance.

# Adafruit Shield Compatibility Guide

## Data Logging Shield (Assembled)

![](https://cdn-learn.adafruit.com/assets/assets/000/010/442/medium800/adafruit_products_LogShield.jpg?1396905918)

Have your Arduino save data to files on any FAT16 or FAT32 formatted SD card, to be read by any plotting, spreadsheet or analysis program. The included Real Time Clock timestamps all your data with the current time and date, so that you know precisely what happened when!

 

**This page covers the <u>preassembled</u> version of this board, <u>not</u> the original kit version.**

# Plug-and-Play Compatible Boards
The Data Logging Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip

# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps: ## Arduino Leonardo
The RTC is compatible. For the SD card, the following may be tried, in <u>decreasing order</u> of recommendation:  

- Use the Adafruit SD library, specifying **pin 10** for **chip select** , **11** for **MOSI** , **12** for **MISO** and **13** for **SCK**.
- Edit the file utility/Sd2Card.h in the default Arduino SD library, adding the line "#define SOFTWARE\_SPI" (<u>not</u> MEGA\_SOFT\_SPI) at the top.
- Add jumper wires from **pin 11** on the shield to **ICSP pin 4** on the board (on the 6-pin header), pin **12** to **ICSP-1** and pin **13** to **ICSP-3** , then use the standard library in its default state (no SOFTWARE\_SPI). This is difficult due to the shield obscuring the ICSP header and is not much recommended.

## Arduino Mega 2560 R3 or Mega ADK
The RTC is compatible. For the SD card, the following may be tried, in <u>decreasing order</u> of recommendation:  

- Use the Adafruit SD library, specifying **pin 10** for **chip select** , **11** for **MOSI** , **12** for **MISO** and **13** for **SCK**.
- Edit the file utility/Sd2Card.h in the default Arduino SD library, changing line 42 to read "#define MEGA\_SOFT\_SPI 1" (default is 0).

## Arduino Mega 2560 R2 & Earlier
RTC:  

- Add jumper wire from SDA on shield to pin 20 on Mega board.  
- Add jumper wire from SCL on shield to pin 21 on Mega board.

For the SD card, the following may be tried, in <u>decreasing order</u> of recommendation:
- Use the Adafruit SD library, specifying **pin 10** for **chip select** , **11** for **MOSI** , **12** for **MISO** and **13** for **SCK**.
- Edit the file utility/Sd2Card.h in the default Arduino SD library, changing line 42 to read "#define MEGA\_SOFT\_SPI 1" (default is 0).  

## Arduino Due
The RTC is compatible (when using latest library). Accessing the SD card is _possible_ with the addition of some jumper wires, but _difficult_ due to the fact that the shield obscures the ICSP header where these wires must be connected.  

- Add jumper wire from **pin 11** on shield to ICSP **pin 4**.
- Add jumper wire from **pin 12** to ICSP **pin 1**.
- Add jumper wire from **pin 13** to ICSP **pin 3**.

Use the standard SD library (<u>not</u> the Adafruit fork). <u>Do NOT</u> #define SOFTWARE\_SPI or MEGA\_SOFT\_SPI in the library. # Pin and Address Reference
The shield uses the following pins:  

- +5V  
- GND  

For SD card:  

- Digital pins 10-13 (Chip Select, MOSI, MISO, SCK, respectively)

For RTC:  

- SDA and SCL (on boards that have these pins)  
- Analog pins 4 and 5 (see notes below)

This shield can usually be stacked with others (including those using SPI or I²C), provided that each has a unique Chip Select pin (for SPI) and address (I²C), or is not using these interfaces. The RTC has a fixed address of 0x68.  
  
**Do not use Analog pins 4 or 5 with your project in combination with this shield** , even on Arduino boards that use different pins for I²C communication (Leonardo, Mega, Due). For compatibility with “classic” (pre-R3) Arduino boards, the shield connects SDA and SCL to Analog pins 4 and 5, respectively; communication and analog readings would mutually interfere. Leonardo users should likewise avoid Digital pins 2 and 3 when using I²C.# Untested Boards and Other Notes

- **Arduino Mega 1280:** compatibility should be similar to the Mega 2560 R2; extra jumper wires would be required for the RTC, and library changes for the SD card.  
- **Adafruit Menta:** equivalent to Arduino Duemilanove w/328 chip; almost certainly compatible.
- **Arduino Duemilanove and Diecimila w/ATmega168 chip, and Arduino NG or older:** electrically and mechanically compatible with 328 chip, but has only half the RAM and program space. The RTC library is not especially memory hungry and is likely compatible. The SD libraries require a lot of RAM; chances of compatibility are slim.

The original kit version of this shield did not use the “R3” pins for I²C, but did include separate SDA and SCL pads. Thus the RTC on the original kit <u>will not work</u> directly with some newer boards like the Leonardo, but could be adapted with some hardware know-how.If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## Motor/Stepper/Servo Shield (Version 2)

![](https://cdn-learn.adafruit.com/assets/assets/000/010/443/medium800/adafruit_products_MotorShield.jpg?1396905934)

The original Adafruit Motorshield kit is one of our most beloved kits, which is why we decided to make something even better. We have upgraded the shield kit to make the bestest, easiest way to drive DC and Stepper motors. This shield will make quick work of your next robotics project! We kept the ability to drive up to 4 DC motors or 2 stepper motors, but added many improvements.  
# Plug-and-Play Compatible Boards
The Motor/Stepper/Servo Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Leonardo**  
- **Arduino Mega 2560 R3** (<u>not</u> R2 or earlier, see below)
- **Arduino Mega ADK**
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip
- **Arduino Due** - Change "Logic" jumper for 3.3v operation!

# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps: ## Arduino Mega 2560 R2

- Add jumper wire from **SDA** on shield to **pin 20** on Mega board.  
- Add jumper wire from **SCL** on shield to **pin 21** on Mega board.

# Pin and Address Reference
The shield uses the following pins:  

- +5V or +3.3V (selectable w/solder pads)  
- GND  
- SDA and SCL (on boards that have these pins)  
- Analog pins 4 and 5 (see notes below)
- Digital pins 9 and 10 (if using Servo 1 and 2, respectively)

This an I²C device (uses the Wire library) and can usually be stacked or shared with other I²C shields and devices (including multiple Motor/Stepper/Servo Shields), provided that each has a unique address. Solder pads on this shield allow selection of one of 32 addresses (0x60-0x7F). Default address (no solder jumpers) is 0x60.  
  
**Do not use Analog pins 4 or 5 with your project in combination with this shield** , even on Arduino boards that use different pins for I²C communication (Leonardo, Mega, Due). For compatibility with “classic” (pre-R3) Arduino boards, the shield connects SDA and SCL to Analog pins 4 and 5, respectively; communication and analog readings would mutually interfere. Leonardo users should likewise avoid Digital pins 2 and 3 when using I²C. # Untested Boards and Other Notes

- **Arduino Mega 1280:** compatibility is likely similar to the Mega 2560 R2; extra jumper wires would be required as explained above for that board.  
- **Adafruit Menta:** equivalent to Arduino Duemilanove w/328 chip; almost certainly compatible.
- **Arduino Duemilanove and Diecimila w/ATmega168 chip:** electrically and mechanically compatible with 328 chip, but has only half the RAM and program space. The library is not especially memory hungry, so this is _very likely_ compatible but _not 100% assured._  
- **Arduino NG or older:** possibly compatible, memory constraints permitting.

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## NeoPixel Shield

![](https://cdn-learn.adafruit.com/assets/assets/000/010/444/medium800/adafruit_products_NeoPixelShield.jpg?1396905952)

Put on your sunglasses before putting this shield onto your 'duino - 40 eye-blistering RGB LEDs adorn the NeoPixel shield for a blast of configurable color. Arranged in a 5x8 matrix, each pixel is individually addressable. Only one pin (Digital #6) is required to control all the LEDs. You can cut a trace and use nearly any other pin if you need some customization.  
# Plug-and-Play Compatible Boards
The NeoPixel Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Leonardo**  
- **Arduino Mega 2560, 1280 and ADK** (all revisions)
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip  
- **Arduino Due**

# Pin and Address Reference
The shield uses the following pins:  

- +5V (external 5V connection recommended)  
- GND  
- Digital pin 6 (can be changed by cutting trace on shield and adding jumper wire)

This shield can be stacked atop most others.  
  
Because only a few connections are needed (+5V, ground and data), this shield is easy to use as a standalone LED matrix with alternate Arduino form-factors (Arduino Micro, FIO, etc.).# Untested Boards and Other Notes

- **Adafruit Menta:** equivalent to Arduino Duemilanove w/328 chip; almost certainly compatible.  
- **Arduino Duemilanove and Diecimila w/ATmega168 chip:** electrically and mechanically compatible with 328 chip, but has only half the RAM and program space. NeoPixels use a fair amount of RAM, but there’s _probably_ space for this to work (possibly even chaining an extra NeoPixel shield or two), provided other code is not terribly complex.
- **Arduino NG or older:** possibly compatible, memory constraints permitting.  

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## PN532 NFC/RFID Controller Shield

![](https://cdn-learn.adafruit.com/assets/assets/000/010/445/medium800/adafruit_products_NFCshield.jpg?1396905968)

The Adafruit NFC shield uses the PN532 chip-set (the most popular NFC chip on the market) and is what is embedded in pretty much every phone or device that does NFC. This chipset is very powerful, and can pretty much do it all, such as read and write to tags and cards, communicate with phones (say for payment processing), and 'act' like a NFC tag. While the controller has many capabilities, our Arduino library currently only supports reading/writing tags, and does not support phone-to-shield communication, tag emulation (which requires an external 'secure element' only available from NXP) or other more advanced features at this time.  
# Plug-and-Play Compatible Boards
The NFC/RFID Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Mega 2560 R3** (<u>not</u> R2 or earlier, see below)  
- **Arduino Mega ADK**
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip
- **Arduino Due** (with latest library)

The form-factor of this shield blocks the extended I/O pins on the Mega and Due, possibly limiting its usefulness with those boards.  
# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps: ## Arduino Mega 2560 R2

- Add jumper wire from **SDA** on shield to **pin 20** on Mega board.  
- Add jumper wire from **SCL** on shield to **pin 21** on Mega board.

The form-factor of this shield blocks the extended I/O pins, so the above modification requires right-angle connections.  
## Arduino Leonardo

- Cut trace between **IRQ** and **pin 2** on shield.  
- Add a jumper wire from **IRQ** to a different pin (not 2 or 3), e.g. **pin 6**.
- Modify the Arduino sketch to reference the new IRQ pin number.

# Pin and Address Reference
The shield uses the following pins:  

- +5V  
- GND  
- Digital pin 2 (except w/Leonardo modification described above)
- SDA and SCL (on boards that have these pins)
- Analog pins 4 and 5 (see notes below)

This an I²C device (uses the Wire library) and can usually be stacked or shared with other I²C shields and devices, provided that each has a unique address. This shield has a fixed address of 0x24.  
  
**Do not use Analog pins 4 or 5 with your project in combination with this shield** , even on Arduino boards that use different pins for I²C communication (Leonardo, Mega, Due). For compatibility with “classic” (pre-R3) Arduino boards, the shield connects SDA and SCL to Analog pins 4 and 5, respectively; communication and analog readings would mutually interfere. Leonardo users should likewise avoid Digital pins 2 and 3 when using I²C. # Untested Boards and Other Notes

- **Arduino Mega 1280:** compatibility is likely similar to the Mega 2560 R2; extra jumper wires would be required as explained above for that board, but the shape may make that difficult.  
- **Adafruit Menta:** equivalent to Arduino Duemilanove w/328 chip; almost certainly compatible. However, the shape of the shield will require removing the board from its tin.
- **Arduino Duemilanove and Diecimila w/ATmega168 chip:** electrically and mechanically compatible with 328 chip, but has only half the RAM and program space. The library is not especially memory hungry, so this is _very likely_ compatible but _not 100% assured._  
- **Arduino NG or older:** possibly compatible, memory constraints permitting.

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## Ultimate GPS Logger Shield

![](https://cdn-learn.adafruit.com/assets/assets/000/010/449/medium800/adafruit_products_gpsShield.jpg?1396906033)

Brand new and better than ever, we've replaced our Adafruit GPS shield kit with this assembled shield that comes with an Ultimate GPS module. This GPS shield works great with either UNO or Leonardo Arduinos and is designed to log data to an SD card. Or you can leave the SD card out and use the GPS for a geocaching project, or maybe a music player that changes tunes depending on where you are in the city.  
  
**This page covers the Ultimate GPS Logger Shield, <u>not</u> the original GPS Shield.**

# Plug-and-Play Compatible Boards
The Ultimate GPS Logger Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip
- **Adafruit Menta** (remove from tin for GPS antenna to work)

# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps: ## **Arduino Leonardo**
GPS:  

- Use 'Soft Serial' switch setting.  

For the SD card, the following may be tried, in <u>decreasing order</u> of recommendation:  

- Use the [Adafruit SD library](https://github.com/adafruit/SD), specifying **pin 10** for **chip select** , **11** for **MOSI** , **12** for **MISO** and **13** for **SCK**.  
- Edit the file utility/Sd2Card.h in the default Arduino SD library, adding the line "#define SOFTWARE\_SPI" (<u>not</u> MEGA\_SOFT\_SPI) at the top.  
- Add jumper wires from **pin 11** on the shield to **ICSP pin 4** on the board (on the 6-pin header), pin **12** to **ICSP-1** and pin **13** to **ICSP-3** , then use the standard library in its default state (no SOFTWARE\_SPI). This is difficult due to the shield obscuring the ICSP header and is not much recommended.  

## **Arduino Mega (all variants)**
GPS:  

- Use 'Soft Serial' switch setting.
- Jumper from pin 8 on the shield to RX1 on the Mega
- Jumper from pin 7 on the shield to TX1 on the Mega
- In your code, don't use SoftwareSerial. Instead, define mySerial as Serial1:

```
//SoftwareSerial mySerial(8, 7);
#define mySerial Serial1
Adafruit_GPS GPS(&amp;mySerial);
```

For the SD card, the following may be tried, in <u>decreasing order</u> of recommendation:

- Use the [Adafruit SD library](https://github.com/adafruit/SD), specifying **pin 10** for **chip select** , **11** for **MOSI** , **12** for **MISO** and **13** for **SCK**.  
- Edit the file utility/Sd2Card.h in the default Arduino SD library, changing line 42 to read "#define MEGA\_SOFT\_SPI 1" (default is 0).  

## **Arduino Due**
 **Follow instructions for Arduino Mega**  

**- Use "Due" versions of example sketches**  

## **Arduino Diecimila** w/ATmega168 chip, Arduino NG or older
**Does not work;** insufficient RAM and flash program space.# Pin and Address Reference
The shield uses the following pins:  

- +5V  
- GND  

For SD card:  

- Digital pins 10-13 (Card Select, MOSI, MISO, SCK, respectively)

For GPS:  

- Digital pins 0 (RX) and 1 (TX) when using 'Direct' switch setting  
- Digital pins 7 (RX) and 8 (TX) when using 'Soft Serial' setting

This shield can usually be stacked with others (including those using SPI), provided that each has a unique Chip Select pin.  
# Untested Boards and Other Notes

- **Arduino Mega 1280:** compatibility should be similar to the Mega 2560; use 'Direct' switch setting for GPS, and library changes for the SD card.

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## Wave Shield

![](https://cdn-learn.adafruit.com/assets/assets/000/010/450/medium800/adafruit_products_waveShield.jpg?1396906049)

Adding quality audio to an electronic project is surprisingly difficult. Here is a shield for Arduinos that solves this problem. It can play up to 22KHz, 12bit uncompressed audio files of any length. It's low cost, available as an easy-to-make kit. It has an onboard DAC, filter and op-amp for high quality output. Audio files are read off of an SD/MMC card, which are available at nearly any store. Volume can be controlled with the onboard thumbwheel potentiometer.

# Plug-and-Play Compatible Boards
The Wave Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Duemilanove and Diecimila** (ATmega328 chip recommended)
- **Adafruit Menta** (removed from tin for component clearances)

# Incompatible Boards
This shield does not work with the following:- **Arduino Mega 1280, 2560, ADK**  
- **Arduino Leonardo**  
- **Arduino Due**  

This is a complex product with limited compatibility. Additional boards _may_ be supported as the code evolves, but there is no established timeframe nor guarantee that specific boards will ever be included.  
# Pin Reference
The shield uses the following pins:  

- +5V  
- GND  

For SD card:  

- Digital pins 10-13 (Card Select, MOSI, MISO, SCK, respectively)

For DAC (digital-to-analog converter):  

- Digital pins 2-5 (Chip select, clock, data, latch) — these pins may be changed by soldering wire jumpers to different pin locations than those shown in the build tutorial. Edit the file WavePinDefs.h to match.

This shield can usually be stacked with others (including those using SPI), provided that each has a unique Chip Select pin.  
# Untested Boards and Other Notes

- **Arduino NG or older:** this _might_ work, but would be a tight squeeze; the SD library is especially RAM-hungry.  

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## LCD Shield Kit w/16x2 Character Display

![](https://cdn-learn.adafruit.com/assets/assets/000/011/005/medium800/adafruit_products_ID714_LRG.jpg?1379461717)

We wanted to make it easy for people to add LCDs to their projects, so we devised this shield that lets you control a 16x2 character LCD, up to 3 backlight LEDs (red, green, blue) AND 5 keypad buttons using only the two I2C pins on the Arduino. You don't really lose those two pins either, since you can share the bus with I2C-based sensors, realtime clocks, etc. This is a super slick way to add a display without all the wiring hassle.
# Plug-and-Play Compatible Boards
The LCD Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)  
- **Arduino Leonardo**
- **Arduino Mega 2560 R3** (<u>not</u> R2 or earlier, see below)
- **Arduino Mega ADK**
- **Arduino Duemilanove and Diecimila** (all revisions)  
- **Arduino Due** (using latest library)
- **Adafruit Menta**  

# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps:## Arduino Mega 2560 R2

- Add jumper wire from **SDA** or **Analog Pin 4** on shield to **pin 20** on Mega board.  
- Add jumper wire from **SCL** or **Analog Pin 5** on shield to **pin 21** on Mega board.

# Pin and Address Reference
The shield uses the following pins:  

- +5V  
- GND  
- SDA and SCL (on boards that have these pins)
- Analog pins 4 and 5 (see notes below)

This an I²C device (uses the Wire library) and can usually be stacked or shared with other I²C shields and devices, provided that each has a unique address. This shield has a fixed address of 0x20.  
  
**Do not use Analog pins 4 or 5 with your project in combination with this shield** , even on Arduino boards that use different pins for I²C communication (Leonardo, Mega, Due). For compatibility with “classic” (pre-R3) Arduino boards, the shield connects SDA and SCL to Analog pins 4 and 5, respectively; communication and analog readings would mutually interfere. Leonardo users should likewise avoid Digital pins 2 and 3 when using I²C.  
# Untested Boards and Other Notes

- **Arduino Mega 1280:** compatibility is likely similar to the Mega 2560 R2; extra jumper wires would be required.  
- **Arduino NG or older:** possibly compatible, memory constraints permitting.  

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## CC3000 WiFi Shield

![](https://cdn-learn.adafruit.com/assets/assets/000/011/040/medium800/adafruit_products_WiFiShield.jpg?1379518592)

For years we've seen all sorts of microcontroller-friendly WiFi modules but none of them were really Adafruit-worthy. Either they were too slow, or too difficult to use, or required signing an NDA, or had limited functionality, or too expensive, or too large. So we shied away from creating or developing a WiFi Arduino shield.  
  
**NO LONGER!**  
  
The CC3000 hits that sweet spot of usability, price and capability. It uses SPI for communication so you can push data as fast as you want. It has a proper interrupt system with IRQ pin so you can have asynchronous connections. It supports 802.11b/g, open/WEP/WPA/WPA2 security, TKIP & AES. A built in TCP/IP stack with a "BSD socket" interface. TCP and UDP in both client and server mode, up to 4 concurrent sockets. It does not support "AP" mode, it can connect to an access point but it cannot be an access point.
# Plug-and-Play Compatible Boards
The CC3000 WiFi Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip
- **Adafruit Menta** (remove from tin for WiFi to work)
- **Arduino Mega 2560** (install 6-pin SPI header on shield, see notes below)
- **Arduino Mega ADK** (install 6-pin SPI header on shield, see notes below)

This is a complex product and released only recently; compatibility is therefore limited. Additional boards _may_ be supported as the code evolves, but there is no established timeframe nor guarantee that specific boards will ever be included. # Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps:  

## Arduino Mega 2560, Mega ADK
Both the WiFi and SD card work if 6-pin SPI header and solder jumpers are added [as explained in CC3000 guide](http://learn.adafruit.com/adafruit-cc3000-wifi/cc3000-shield). With the header installed, you do <u>not</u> need to alter the SD library.  

## Arduino Leonardo
**Does not work;** WiFi library has not been adapted for this chip.  

## Arduino Due
**Does not work;** WiFi library has not been adapted for this chip.  

## **Arduino Diecimila** w/ATmega168 chip
**Does not work;** insufficient RAM and flash program space.# Pin Reference
The shield uses the following pins:  

- +5V  
- GND  
- Digital pin 3: IRQ for WiFi
- Digital pin 4: Card Select for SD card
- Digital pin 5: WiFi enable
- Digital pin 10: Chip Select for WiFi
- Digital pins 11, 12, 13 for SPI communication (both WiFi and SD). Even if optional 6-pin SPI header is used, these pins are unavailable for other use.

# Untested Boards and Other Notes

- **Arduino Mega 1280:** compatibility should be similar to the Mega 2560; 6-pin SPI header and solder jumpers required as explained above for that board.
- **Arduino NG or older:** not expected to work due to limited RAM and flash space.

If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## 2.8" TFT Touch Shield v1

Info: 

![](https://cdn-learn.adafruit.com/assets/assets/000/011/050/medium800/adafruit_products_tftshield_LRG.jpg?1379640272)

Spice up your Arduino project with a beautiful large touchscreen display shield with built in microSD card connection. This TFT display is big (2.8" diagonal) bright (4 white-LED backlight) and colorful (18-bit 262,000 different shades)! 240x320 pixels with individual pixel control. It has way more resolution than a black and white 128x64 display. As a bonus, this display has a resistive touchscreen attached to it already, so you can detect finger presses anywhere on the screen.

# Plug-and-Play Compatible Boards
Before using the shield with <u>any</u> Arduino, the library file Adafruit\_TFTLCD.h must be edited to enable (un-comment) the following line:
```
#define USE_ADAFRUIT_SHIELD_PINOUT
```

  
The 2.8" TFT Touch Shield is then fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip
- **Adafruit Menta**

# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps:  **Arduino Leonardo:** graphics-only sketches (such as tftpaint\_shield) will work without modification. Code that accesses the SD card (such as tftbmp\_shield) requires editing the stock Arduino SD card library: in utility/Sd2Card.h, add this line at the very top: ```
#define SOFTWARE_SPI
```

 **Arduino Mega 2560, Mega ADK:** graphics-only sketches (such as tftpaint\_shield) will work without modification. Code that accesses the SD card (such as tftbmp\_shield) requires editing the stock Arduino SD card library: in utility/Sd2Card.h, change this line: ```
#define MEGA_SOFT_SPI 0
```

to:

```
#define MEGA_SOFT_SPI 1
```

 **IMPORTANT:** some iterations of Mega 2560 R3 boards are NOT COMPATIBLE with this shield unless modifications are made to the Arduino itself. This requires fine soldering and is a **warranty-voiding operation.** Not recommended for the inexperienced. A problem board can be identified by the large solid white area silkscreened on the back. Other versions of the Mega 2560 (such as the R2 and ADK) are not affected by this problem; easy to spot, they have different silkscreens.

![adafruit_products_mega-r3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/011/051/medium640/adafruit_products_mega-r3.jpg?1379642669)

Solder a 0.1 μF capacitor across the unpopulated pads shown here. This usually requires a surface-mount capacitor, but you might be able to get creative with tacking down the leads on a through-hole part.  
  
**If your board already has a capacitor here, no modification is needed; it’s ready to go.**

![adafruit_products_mega-pads.jpg](https://cdn-learn.adafruit.com/assets/assets/000/011/052/medium640/adafruit_products_mega-pads.jpg?1379642793)

 **Arduino Due:** this should be regarded as “experimental only” at this stage. Simple graphics-only sketches _may_ work. The examples using the touchscreen and the SD card do not yet work.  **Arduino Duemilanove and Diecimila w/ATmega168 chip:** simple graphics-only sketches _may_ work, but code accessing the SD card is too large for the available program space on these boards; upgrade to an ATmega328 chip. # Pin Reference
The shield uses the following pins:  

- +5V  
- GND  
- Digital pins 4, 6–11, 13 (communication with TFT and SD card, touchscreen)
- Digital pin 5 (SD card select)
- Digital pin 12 (SD card communication)
- Analog pins A0-A3 (TFT control lines, touchscreen)

This shield can be stacked with others (including those using SPI), provided that each has a unique Chip Select pin, and that other pins don't interfere. This can be difficult; the shield uses nearly everything. Digital pins 2 and 3 are untouched, as are Analog 4 and 5 — this shield will not interfere with I²C operation on most Arduino boards.  
# Untested Boards and Other Notes
**Arduino Mega 1280:** compatibility should be similar to the Mega 2560; MEGA\_SOFT\_SPI must be set in the SD library to use the SD card.  
**Arduino NG or older:** simple graphics-only sketches _may_ work, but code accessing the SD card is too large for the available program space on these boards.  
If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.

# Adafruit Shield Compatibility Guide

## 1.8" TFT Shield w/Joystick

![](https://cdn-learn.adafruit.com/assets/assets/000/011/049/medium800/adafruit_products_tft18.jpg?1379637340)

This lovely little shield is the best way to add a small, colorful and bright display to any project. We took our popular 1.8" TFT breakout board and remixed it into an Arduino shield complete with microSD card slot and a 5-way joystick navigation switch (with a nice plastic knob)! Since the display uses only 4 pins to communicate and has its own pixel-addressable frame buffer, it can be used easily to add a display & interface without exhausting the memory or pins.

# Plug-and-Play Compatible Boards
The 1.8" TFT Shield is tested and fully compatible with the following boards:  

- **Arduino Uno** (all revisions)
- **Arduino Duemilanove and Diecimila** w/ATmega328 chip
- **Adafruit Menta**

# Incompatible or Partially-Compatible Boards
This shield may work with other boards with some additional steps: ## Arduino Mega 2560, Mega ADK
Connect jumper wires from Arduino Mega **Pin 50** to **DI** on shield, **Pin 51** to **DO** and **Pin 52** to **SCK**. You do <u>not</u> need to change the SD library for Mega usage in this configuration.  

## Arduino Leonardo
**Will not work;** incompatible pinout between Leonardo and shield.  

## Arduino Due
**Will not work;** library has not yet been adapted to this chip.
## Arduino Duemilanove and Diecimila w/ATmega168 chip
Upgrade to ATmega328 chip, otherwise code is too large for available program space.  

## Arduino NG or older
**Will not work;** code is too large for available program space.  
# Pin Reference
The shield uses the following pins:  

- +5V  
- GND  
- Digital pin 4 (SD chip select)
- Digital pin 8 (TFT data/command)  
- Digital pin 10 (TFT chip select)
- Digital pins 11-13 for SPI communication (MOSI, MISO, SCK respectively)
- Digital pins 50-52 for SPI on Arduino Mega boards (all types)
- Analog pin 3 (joystick input)  

This shield can usually be stacked with others (including those using SPI), provided that each has a unique Chip Select pin, and that other pins don't interfere.  
  
Most pin functions above are available on vias adjacent to the original shield header pins; you can cut traces and re-route to other pins, provided the necessary changes are made in software.  
# Untested Boards and Other Notes
**Arduino Mega 1280:** compatibility should be similar to the Mega 2560; extra jumper wires would be required.  
If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!  
  
If experiencing trouble with a board listed as “compatible,” review the [introduction](http://learn.adafruit.com/adafruit-shield-compatibility/introduction) for tips and visit the [Adafruit Forums](http://forums.adafruit.com) for assistance.


## Related Guides

- [Adafruit ST25DV16K I2C RFID EEPROM Breakout](https://learn.adafruit.com/adafruit-st25dv16k-i2c-rfic-eeprom-breakout.md)
- [Adafruit MCP9808 Precision I2C Temperature Sensor Guide](https://learn.adafruit.com/adafruit-mcp9808-precision-i2c-temperature-sensor-guide.md)
- [Adafruit Qualia High Res Displayport Desktop Monitor](https://learn.adafruit.com/qualia-high-res-displayport-desktop-monitor.md)
- [Adafruit PiCowbell Camera Breakout](https://learn.adafruit.com/adafruit-picowbell-camera-breakout.md)
- [Adafruit Metro RP2350](https://learn.adafruit.com/adafruit-metro-rp2350.md)
- [Adafruit Audio FX Sound Board](https://learn.adafruit.com/adafruit-audio-fx-sound-board.md)
- [Adafruit Si5351 Clock Generator Breakout](https://learn.adafruit.com/adafruit-si5351-clock-generator-breakout.md)
- [Introducing Pro Trinket](https://learn.adafruit.com/introducing-pro-trinket.md)
- [Adafruit VCNL4040 Proximity Sensor](https://learn.adafruit.com/adafruit-vcnl4040-proximity-sensor.md)
- [Adafruit INA219 Current Sensor Breakout](https://learn.adafruit.com/adafruit-ina219-current-sensor-breakout.md)
- [DS1307 Real Time Clock Breakout Board Kit](https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit.md)
- [Adafruit WINC1500 WiFi Shield for Arduino](https://learn.adafruit.com/adafruit-winc1500-wifi-shield-for-arduino.md)
- [Adafruit SCD-30 - NDIR CO2 Temperature and Humidity Sensor](https://learn.adafruit.com/adafruit-scd30.md)
- [Adafruit GA1A12S202 Log-scale Analog Light Sensor](https://learn.adafruit.com/adafruit-ga1a12s202-log-scale-analog-light-sensor.md)
- [FTDI Friend](https://learn.adafruit.com/ftdi-friend.md)
