# 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:

```auto
#define MEGA_SOFT_SPI 0
```

to instead read:

```auto
#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)

- [Next Page](https://learn.adafruit.com/adafruit-shield-compatibility/shield-list.md)

## Related Guides

- [Adafruit SHT31-D Temperature & Humidity Sensor Breakout](https://learn.adafruit.com/adafruit-sht31-d-temperature-and-humidity-sensor-breakout.md)
- [Adafruit MCP23017 I2C GPIO Expander](https://learn.adafruit.com/adafruit-mcp23017-i2c-gpio-expander.md)
- [Introducing Adafruit Feather RP2040](https://learn.adafruit.com/adafruit-feather-rp2040-pico.md)
- [Adafruit Metro ESP32-S2](https://learn.adafruit.com/adafruit-metro-esp32-s2.md)
- [Adafruit 5x5 NeoPixel Grid BFF](https://learn.adafruit.com/adafruit-5x5-neopixel-grid-bff.md)
- [LED Sewing Kit](https://learn.adafruit.com/led-sewing-kit.md)
- [Adafruit PCF8574 I2C GPIO Expander](https://learn.adafruit.com/adafruit-pcf8574.md)
- [Adafruit MLX90640 IR Thermal Camera](https://learn.adafruit.com/adafruit-mlx90640-ir-thermal-camera.md)
- [Adafruit Wiz5500 Ethernet Co-Processor Breakout Board](https://learn.adafruit.com/adafruit-wiz5500-ethernet-co-processor-breakout-board.md)
- [Adafruit LED Arcade Button 1x4 STEMMA QT](https://learn.adafruit.com/adafruit-led-arcade-button-qt.md)
- [Adafruit MacroPad RP2040](https://learn.adafruit.com/adafruit-macropad-rp2040.md)
- [Submitting an open-source project to OSHWA](https://learn.adafruit.com/submitting-an-open-source-project-to-oshwa.md)
- [Playing Arduboy Games on Arcada](https://learn.adafruit.com/playing-arduboy-games-on-arcada.md)
- [Adafruit ADS7830 8-Channel 8-Bit ADC](https://learn.adafruit.com/adafruit-ads7830-8-channel-8-bit-adc.md)
- [Adafruit Simple Soil Moisture Sensor](https://learn.adafruit.com/adafruit-simple-soil-moisture-sensor.md)
