Go Down

Topic: GLCD library version 3 (end of life - no longer supported) (Read 188403 times) previous topic - next topic


Mar 27, 2011, 08:21 pm Last Edit: Apr 15, 2015, 03:12 pm by bperrybap Reason: Clarify that GLCDv3 has reached end of life and is no longer supported.
Update: 2015-03-25
The glcdv3 library has not been updated since late 2011.
It will not work with more recent IDEs and newer Arduino boards like
Arduino Leonardo, Due, Teensy 3.0/3.1/LC, Chipkit pic32 boards, AVR 1284 Bobuino,
AVR 1284 SleepingBeauty, as well as many others.
Also, Google has decided to terminate the google code site.
Sometime in 2015 Google is disabling all downloads, so glcdv3 library downloads will no longer be available from the glcdv3 repository and sometime in 2016, the Google code site is scheduled to be turned off.
Until then, see the glcdv3 main project page for alternative libraries.

Essentially, glcdv3 has reached end of life.

For questions or support for other libraries such as openGLCD or u8glib start new threads.

This thread is a replacement for the older/original glcd v3 library thread
that became locked/read-only when the new forum was created.
Here is the link to the original thread:

The latest build of the GLCDv3 library can be found here:

--- bill


Apr 23, 2011, 10:21 pm Last Edit: Apr 23, 2011, 10:24 pm by bperrybap Reason: 1
RC2 is now available for downloading.

This release is minor fixes and updates.
There are no new API functions.
See the download for details.

--- bill




Would it be possible to include the T6963C library's into this ?
It seems like more people are getting these LCD's and can't find a suitable library ?


By "include the T6963C library's into this" I assume you mean to write
new code for the glcd library to support the T6963C so
it can be one of the chips supported by the glcd library?

Keep in mind that the v3 glcd library is just now about to be pushed into final release.

The existing glcd library code does have kind of a framework to support alternate chips and
there are a few others like the sed1520 that are already supported, but the framework
isn't completely generic. It depends on the glcd having a particular memory to pixel mapping.

Chips like the T6963C don't fit very well into the existing framework.
Also the T6963C has some additional more intelligent features and capabilities not in the simpler
graphic chips like the ks0108. It becomes a bit of a challenge to support the more advanced features
when they are  available.

Michael and I have discussed the possibility of redoing how the various internal layers of the
library fit together to make it easier to add in support for new chips.

So while this may some day happen, we currently don't have it scheduled and are not looking
at it yet.

--- bill


Just got one of my LCD's working using the latest GLCD
Thank you very much.

It is the following display:

SED1520 compatible chips in it, so changed glcd.h to include the Modvk5121_Manual_Config.h config.
Had to modify the Modvk5121_Manual_Config.h file as m display is 122x32 rather than 120x32 which was default. It just made a gap between the two sides, and one on the end.

Works great running the GLCDdiags sketch. Very valuable sketch as I had it wired wrong to start with, and the Serial printout the sketch gave detailing the pins showed me I had 4 wires in the wrong order.
Was brilliant.

GLCDdiags stated:
K Setdot/s: 18.27

Running this on standard Arduino Duemilanove.
I hope to incorporate 2 of these displays on a 644P or 1284P for my project. I posted in the topic regarding 2 displays. (http://arduino.cc/forum/index.php/topic,56043.msg436479.html#msg436479)
Hopefully the library will work ok for the 1284P, running the core from Mark S.
Time will tell.

Thanks again


May 11, 2011, 10:35 pm Last Edit: May 11, 2011, 10:47 pm by pixelk Reason: 1
Added my tested B-type panel 12864J-1 to the playground model listing

(Full Size picture)

Walking 1s data test
Diag Loop: 1
Initializing GLCD
Displaying ChipSelect Screens
Wr/Rd Chip Select Test
Testing GLCD memory pages
Horizontal Page Test Chip: 0 Pixels 0-63
Vertical Page Test Chip: 0 Pixels 0-63
Horizontal Page Test Chip: 1 Pixels 64-127
Vertical Page Test Chip: 1 Pixels 64-127
Full Module Horizontal Page Test:Pixels 0-127
Full Module Vertical Page Test:Pixels 0-127
GLCD.SetDot() speed (K ops/sec): 19.10
Reported Arduino Revision: 22
GLCD Lib Configuration: glcd ver: 3 glcd_Device ver: 1 gText ver: 1
GLCD Lib build date: Sat 04/23/2011 15:01:49.03
GLCD Lib build number: 421
Panel Configuration:ks0108
Pin Configuration:ks0108-Arduino
GLCD:ks0108 DisplayWidth:128 DisplayHeight:64
Chips:2 ChipWidth:64 ChipHeight:64
CSEL1:14(PIN_C0) CSEL2:15(PIN_C1)
RW:16(PIN_C2) DI:17(PIN_C3) EN:18(PIN_C4)
D0:8(PIN_B0) D1:9(PIN_B1) D2:10(PIN_B2) D3:11(PIN_B3)
D4:4(PIN_D4) D5:5(PIN_D5) D6:6(PIN_D6) D7:7(PIN_D7)
Delays: tDDR:320 tAS:140 tDSW:200 tWH:450 tWL:450
ChipSelects: CHIP0:(14,0x1, 15,0x0) CHIP1:(14,0x0, 15,0x1)
Data mode:
d0-d3:nibble mode-Non-Atomic
d4-d7:nibble mode-Non-Atomic


May 17, 2011, 11:33 am Last Edit: May 17, 2011, 11:35 am by Zitman Reason: 1
Just bought a 128x64 display and downloaded the library.  Excellent library and the documentation was extremely useful in connecting the display.

Just one query, I am trying to run the ClockFace sketch and am getting a number of error when I try to compile it for a Mega2560:

clockFace.cpp:13:82: error: Time.h: No such file or directory
clockFace.cpp: In function 'void setup()':
clockFace:31: error: 'setTime' was not declared in this scope
clockFace.cpp: In function 'void loop()':
clockFace:37: error: 'now' was not declared in this scope
clockFace:48: error: 'hour' was not declared in this scope
clockFace:48: error: 'minute' was not declared in this scope
clockFace:48: error: 'second' was not declared in this scope
clockFace.cpp: In function 'void checkSetButton(int, int)':
clockFace:66: error: 'adjustTime' was not declared in this scope
clockFace:71: error: 'hour' was not declared in this scope
clockFace:71: error: 'minute' was not declared in this scope
clockFace:71: error: 'second' was not declared in this scope

What am I doing wrong?



Looks like you need the Time library from the playground.  http://www.arduino.cc/playground/Code/Time


I tried to use a Pacific Display Devices 12232-10, a 122x32 module that uses 2x sed1520, but I don't think it can be made to work with the current version on glcd without a lot of work. Please correct me if I'm wrong.

I figured out that 122x32 modules using the sed1520 fall roughly into two types:

The first type has an internal oscillator, brings out 2 enable lines (E1 and E2). It's a 68-Family MPU style interface. The VK5121 module in the example provided with the library is this type.

The second type of module has separate chips selects (CS1 and CS2) and needs and external 2 kHz clock. It's a 80-Family MPU style interface. The Pacific Display Devices 12232-10 module is this type.

Support for this type (I think the specific sed1520 variant is called sed1520-faa) would be great but I understand it may be outside of the scope of the upcoming release. If so, it might be a good idea to put some comments about supported types in the documentation or maybe just comments in the code itself to prevent confusion.

As I find time, I'll look at the code again and see if I can figure out what modifications are necessary to make it work. If I can get it to work, I'll be happy to donate the code. Considering my work schedule and lack of familiarity with the current code, it may be a while.



its the sparkfun's GLCD


i have check the conections

i tried to change pin14 to A0 and 15 to A1 etc

but then its not compile

thanks a lot


I'm wondering if you can give a little help to an issue that isn't part of the official package. I'm trying to run the LCD via a shift register in order to free up some pins that I will need, following the instructions on this post. As you know, a lot of the codebase has changed, as well as some of the general layout, and as a result, these code changes don't work perfectly. In order to account for the layout changes this is in the glcd.cpp file.

The main problem I'm encountering is with the last piece of code in that post, the lcdDataShiftOut function. When compiling using the ks0108:: prefix, I get the error that ks0108 hasn't been declared, which is to be expected. When I run it with the glcd:: prefix, I get the error "no member function declared in class 'glcd'". When running without either prefix, it gives errors that FastWriteLow and FastWriteHigh weren't declared in that 'scope'. The problem is, I'm not sure where or how to declare them. Can anyone offer some advice for this? Thanks.


i found it

just a broken wire


this code


creates a vertical line not a horizontal

so it is GLCD.DrawLine(X0,Y0,Y1,X1);


This may be a really silly question. Is there a document that shows all the commands for these glcd screens? Or do you just have to pick apart the examples. IV got my screen working but im having trouble getting complex functions to materialize.

Thanks, swiffty

Go Up