F.A.Q.

I have a monochrome display and some of the buttons don't work.

The monochrome display only responds to backlight colors with RED in them.  Use "ON" and "OFF" instead.  See the code snippet under "Using with Monochrome Displays"

What pins are used? What pins are available?

The shield uses only the SCL and SDA i2c pins, and 5V power and ground. You can use the I2C pins for other I2C sensors/devices as long as they do not share the same address. If you are using an Arduino UNO, Analog 4 and Analog 5 are shared with SCL/SDA so you can't use them. Likewise, Arduino Leonardos share SCL/SDA with Digital 2 & Digital 3 so those would not be available.

I'm trying to compile and I'm getting error messages like "No such file or directory" or "does not name a type"

If you're seeing error messages that look like any (or all) of the following, it means that the Arduino IDE is not finding the Adafruit libraries
    • error: Adafruit_MCP23017.h: No such file or directory
    • error: Adafruit_RGBLCDShield.h: No such file or directory
    • error: 'Adafruit_RGBLCDShield' does not name a type
    • error: 'lcd' was not declared in this scope
    • error: 'BUTTON_UP' was not declared in this scope
    • error: 'BUTTON_DOWN' was not declared in this scope
    • error: 'BUTTON_LEFT' was not declared in this scope
    • error: 'BUTTON_RIGHT' was not declared in this scope
    • error: 'BUTTON_SELECT' was not declared in this scope

There are three possible causes for this:
1. You didn't download the library folder.
Adafruit has written some extra software to make it easy to use your shield. This software is contained in a library folder that you can download here:
https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library
You download the folder by clicking on the Downloads button in the top right. You will have the option of downloading the library in one of two compressed formats: '.zip' or '.tar.gz'. Windows and Mac users will probably want to select .zip, while Linux users may prefer .tar.gz.

MacOS will automatically uncompress the downloaded file into a folder, which you should find in the Downloads folder.

Windows users can double-click on the downloaded file. This will open an Explorer window which will allow you to extract the compressed library folder.
(Continue to the next paragraph to find out what to do with the uncompressed download)
2. The library folder has the wrong name.
After downloading and uncompressing the library folder, you must change the name of the folder to exactly "Adafruit_RGBLCDShield". Don't abbreviate, add any spaces, underscores or other characters. Make sure the capitalization is the same as shown here.
(Continue to the next paragraph to find out where to put the library folder)
3. The library folder is in the wrong place.
When you installed your Arduino IDE, it created a 'sketch folder' for you (if you don't already know where that sketch folder is, go into the Arduino application's 'Sketch' menu, and select 'Show Sketch Folder').

Inside of the sketch folder, there should be another folder called 'libraries'. If not, create a new folder inside of the sketch folder, and name it "libraries" (the name must be exactly "libraries" - not "library" or"librarys" - not even "Libraries" with a capital 'L' ! ).

Move your new Adafruit_RGBLCDShield folder into this libraries folder.

Once you've made sure the folder has the right name and is in the right place, you have to close and reopen the Arduino IDE, so that it will recognize the new library.

if you're curious, you can learn more about libraries here:
http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-libraries

Does the shield do the button de-bounce logic internally, or do I need to do that in software when reading the buttons?

The Adafruit_RGBLCDShield library handles button debouncing for you, when you use the readButtons() function.

Is this compatible with my Arduino? There are two extra pins on the header that don't plug into anything.

The shield will work fine with older Arduino boards.  Extra pins were added to the R3 version of the Uno and Mega.  These are duplicates of other header pins and are not required for proper operation of the shield.  

Does this work with the Raspberry Pi?

At this time, it does not! This shield is for Arduinos only!

I am using this detached from the Arduino and it doesn't seem to be getting any power.

Only the ground pin next to the VIN pin is used. You need to connect your ground wire to this pin.

Can I use this with 20x4 LCDs?

Technically, yes. The pinouts for 20x4 and 16x2 are identical. However, the screen is way bigger, and it covers the buttons up so we don't suggest it.
This guide was first published on Jul 29, 2012. It was last updated on Jul 29, 2012. This page (F.A.Q.) was last updated on Sep 17, 2019.