1. Bill Perry
  2. openGLCD


Clone wiki

openGLCD / Home



openGLCD is an open source project for use in open source projects.

openGLCD makes it easy to use Graphical LCDs (GLCD) with Arduino. The library supports several different Arduino platforms and is easy to integrate with different glcd panels. The configuration mechanism allows using a broad range of GLCD panels and Arduino controllers.

Latest Status

openGLCD 1.0rc3 has a change that can break backward compatibility. IDE 1.6.10 has added new PIN_A0 to PIN_A7 defines which created some issues for defining raw port names for AVRs that use PORTA. Unfortunately, to avoid any future issues and maintain a consistency moving forward, the PIN_Pb syntax has been changed to AVRPIN_Pb notation. This is a painful change as it breaks all configuration files that were using raw AVR pin definitions. This will happen prior to the 1.0.0 release.

IDE 1.6.6 breaks some of the sketches in the rc2 and earlier releases. See the issues list #15 for details.

The code at this point is stable and has been tested quite a bit on several platforms; however, since not all platforms have been fully tested, there still may be some minor issues.

For those using openGLCD for the fist time, I would encourage you to read through the wiki and then the library html documentation, particularly if using the Teensy3.

--- bill


The Arduino openGLCD library files are part of the openGLCD project. openGLCD is an open source project for use in open source projects. Those wishing to create closed projects should seek an alternate solution. openGLCD is licensed under the terms of the GNU General Public License v3.0 as opposed to the more liberal licensing terms of the GNU Lesser General Public License (LGPL), modified BSD, Apache, etc..

See the License.txt file included in the library or the HTML documentation for additional details.


WARNING: It should be noted that while the VCS tree can be checked out and used "in place" for development, the VCS tree is NOT a distribution. Only the build scripts can build a distribution image because certain files and directories don't exist in the VCS tree and are created/modified as needed when building a distribution.

Newer Arduino Releases

On newer Arduino releases (1.0.5 and newer) the library can be installed using the IDE.


[Sketch]->[Import Library]->[Add Library...]

to install the library from a downloaded pre-built zip file from the downloads area.

Older Arduino Releases

This library should be unziped into a folder named openGLCD in the libraries directory. If you already have a folder called libraries in your Arduino sketchbook directory, unzip the glcd files there. If not, create a folder called libraries in the sketchbook folder, and drop the library folder here.

To locate your sketchbook directory bring up the IDE and click on [File]->Preferences

You sketchbook directory can be anywhere you want. The location where the IDE is looking for your sketchbook directory is in the text box right there at the top of the "preferences" dialog.

Wherever that directory is, you will need to create a directory called "libraries", if it doesn't already exist, then extract the zip image into that directory. So you will end up with {sketchbook directory}/libraries/opgnGLCD ...

Alternatively you can install the openGLCD library directly in the Arduino distribution by placing it in the libraries directory where the Arduino distribution was installed. For Arduino release 0019 and later that would be: {Arduino install directory}/libraries So you will end up with {Arduino install directory}/libraries/openGLCD ...

Then re-start the Arduino programming environment (IDE), and you should see the openGLCD library in the Sketch > Import Library menu.


The documentation can be found in the doc directory under the openGLCD directory once the library is installed. There is detailed reference material in openGLCDref.htm.


Configuration files for defining pins and panel characteristics are in the config folder. The library is capable of auto-configuring when using a standard processor and panel with the suggested wiring. If you need to modify the configuration see the documentation for details on how to do this.


The example sketches are in the examples folder and can be accessed from the IDE menu by selecting File > Examples > openGLCD

Within the examples folder is a subfolder called APIexamples that has an example sketch for most of each of the openGLCD functions.

GLCDdiags is a test sketch to help get things up and running and provides diagnostic information that can help with troubleshooting.

Other example sketches and demos are provided that show how to use various capabilities of the library.

The subfolder GLCDv3Demos contains subfolders with the demos from the GLCDv3 library.

  • GLCDv3 are the demos running in GLCDv3 compability mode (some have issues)
  • openGLCD are the same GLCDv3 demos updated and converted over to openGLCD (all work)


The library is supplied with fixed and variable width font definitons located in the fonts subfolder. See the documentation for information on adding your own fonts to this folder.


Bitmap images are stored in the bitmaps subfolder. The documentation describes how to create you own bitmaps using a utility provided in the bitmaps/glcdMakeBitmaps folder


Download the latest pre-built images here: Downloads

Each distribution has 3 zip images:

  • Full release which includes local documentation in a doc subdirectory
  • HTML Documentation only which has a DocOnly suffix
  • Release with local documentation removed which has a NoDoc suffix.

The NoDoc release has the identical capabilities as the full release. The only difference is that the local documentation has been removed to create a smaller image.