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 not 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.
  • 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.
  • Are you having trouble compiling the code? The library might not be installed correctly. Here’s a guide to doing it right.
  • 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.
  • 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 is too good to be true!
  • If nothing else helps, visit the Adafruit Customer Support Forums. 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, 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.
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.
Navigate through the sub-folders Contents/Resources/Java/libraries/SD/utility and open the file Sd2Card.h using TextEdit or any simple text editor.
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. Do not install other libraries (such as those from Adafruit) here! They should instead go in your personal sketchbook/libraries folder.
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 (not 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 for tips and visit the Adafruit Forums for assistance.

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 preassembled version of this board, not the original kit version.

Product Link: http://www.adafruit.com/products/1141
Libraries: Real time clock: https://github.com/adafruit/RTClib
SD card read/write: https://github.com/adafruit/SD (Or the default SD library included in the Arduino IDE is sufficient in many situations — see notes below)
Tutorial: http://learn.adafruit.com/adafruit-data-logger-shield/overview

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 decreasing order 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" (not 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 decreasing order 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 decreasing order 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 (not the Adafruit fork). Do NOT #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 will not work 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 for tips and visit the Adafruit Forums for assistance.
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 (not 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 for tips and visit the Adafruit Forums for assistance.
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 for tips and visit the Adafruit Forums for assistance.
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 (not 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 for tips and visit the Adafruit Forums for assistance.
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, not 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 decreasing order 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" (not 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(&mySerial);
For the SD card, the following may be tried, in decreasing order 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

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 for tips and visit the Adafruit Forums for assistance.

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 for tips and visit the Adafruit Forums for assistance.
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 (not 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 for tips and visit the Adafruit Forums for assistance.
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. With the header installed, you do not 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 for tips and visit the Adafruit Forums for assistance.
This page is for the V1 of the 2.8" TFT touch shield! We've actually upgraded this shield to solve compatibility problems it's now called V2 and uses the ICSP header for SPI access.
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 any 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.
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.
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 for tips and visit the Adafruit Forums for assistance.
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 not 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 for tips and visit the Adafruit Forums for assistance.

This guide was first published on Aug 14, 2013. It was last updated on Sep 19, 2013.