Go Down

Topic: Graphic LCD (KS0108) library now available (Read 115597 times) previous topic - next topic


ok, i have a general idea,

my question is that my board has Vcc, Vdd, and V0

I would guess that V0 is GND or -

Vcc is +5v? what's the other one? lol

Im new to all this...Thanks!

which one is the contrast>?


Vcc and Vdd are both terms for the positive supply. If you have a multimeter you should check if they are connected together.

Vss or Gnd are the usual terms for ground.

If Vcc is connected to pin 1 and Vo is connected to pin 2 then you have a type A board, if Vcc is connected to pin 2  you have a type B board.

See the playground article linked earlier for the correct wiring for these types.


I don't mean to be rude Metalfan1185, but did you even try to find any information about this? I Googled your part number and found the full datasheet, including the pinout! First link on the list.

Datasheet direct link for EW13B30GLY:


Jun 21, 2009, 03:22 pm Last Edit: Jun 21, 2009, 03:23 pm by Metalfan1185 Reason: 1
Actually, I did look for information quite intensively for this LCD because even out of the trash, it was brand new.  I looked for about 3 weeks and couldn't find anything (that wasn't in chinese) so I threw it in a box, and packed it up and moved it to my new apartment, where i found it and decided to give it a second try after finding this thread.

thank you so much, i believe i checked that site, maybe i entered the part number incorrectly.

So another question, I read the thread from the beginning and I dont understand how to tell wether my GLCD is a A pinout or a B one. I suppose it doesn't matter, as long as the corresponding arduino pins go to the correct places.

This has regained my interest.  GLCD's are pretty neat! :)

i hope i can get mine to work!


It does matter! You can destroy your LCD panel if you wire it using the diagram in the playground (the picture is for type A only). As the playground article says, you must check if you have a type A or type B panel and wire then appropriately You do this by checking the datasheet interface (it's the diagram on page 8 of your datasheet, did you actually read through the datasheet?). Your Panel is type B so you need to wire it using the playground information for pinout B.

Have fun!


OK, I understand now.  so in my case, pin 1 is GND and 2 is +5v.

im going to tinker with this this weekend, im going to try and make use out of this thing ;)


todotani said:
For more performance tuning, I added frame buffer (FB)  function. As FB consume 1KB of SRAM, it is applicable only for Mega. With modified code, I got 14 FPS with delay = 1 . It marked 12 FPS with delay = 4, so performance increase of FB was 4 FPS.

The followings are codes that I modified.

Is there any chance you could post the entire .cpp and .h files with your modifications? The code modifications that you posted appear to be incomplete. Of course, it could just be me...


Ok, I hooked my glcd up, I followed the b pinout and I can make out the sample sketch barely, but its garbled. The circle is all messed up and hardly make out the fps.

I checked the wires like. 5 times and all that, I think I need to slow it down like you guys are saying, but I'm not sure exactly how.

I'm soooo close! Someone help me out?


Jul 01, 2009, 06:24 pm Last Edit: Jul 01, 2009, 06:25 pm by mem Reason: 1
download the beta version of the library from the playground (the link to the file is after the GLCD pinout table).

If you need to slow it down, in the file ks0108_Panel.h  change:
 #define EN_DELAY_VALUE 6
from 6 to some higher value.

You must delete ks0108.o and recompile the sketch for changes to take affect.


I get an error reffering to


Here is a screen shot of what im lookin at. (btw, i changed the 6 to a 10 and deleted the "o" file)


are you running the Beta version from the link at the end of the 'Wiring and Configuration' table in the playground?

if you look in the ks0108.cpp file  you should see a comment indicating the version as 1.2 May 26th. If not, download the beta version and that. If you have that verison, make sure you delete the ks0108.o before compiling the sketch.


Jul 02, 2009, 12:18 am Last Edit: Jul 02, 2009, 12:21 am by Metalfan1185 Reason: 1
Thanks for working with me on this btw...

Yup, the one i downloaded is the one you say i should have.

I tried it again and i get the same message.

here's what im doing step by step:

**Downloaded Mega code from link DIRECTLY following the pinout table.

navigate to ".h" file located in the ks1080 folder and change the 6 to a 10 on the line you stated earlier.

Open Arduino IDE
Open sketch-> navigate to ks1080 folder -> examples -> GLCDexample.pde (or whatever that example file is called)

While that open dialog box is open, i click on the ks1080.o file just before the examples folder and delete it.

go to arduino IDE, click on "Verify/Compile" and thats where i get the error.


Jul 02, 2009, 12:40 am Last Edit: Jul 02, 2009, 12:49 am by Metalfan1185 Reason: 1
Ok, I got it now.

All I did was delete everything i had that had to do with the GLCD stuff and started from scratch.

I downloaded the Beta code again, extracted to libraries, deleted the ".o" file, and compiled it and it ran.  That delay value is still at 6, so, i guess that fixed it.

It must have gotten garbled up somewhere...

Anyways, Im using a Arduino Duemilanove with 328 and my display is a

Emerging Display Technologies (EDT)
EW13B30GLY (type B pinout)

Works Great!

thank you for all your hard work. and everyone else too...

now its tinkerin time lol ;D


Hi randoma,

Is there any chance you could post the entire .cpp and .h files with your modifications? The code modifications that you posted appear to be incomplete. Of course, it could just be me...

Here is a link to download entre code.
For your information, this code is optimized for Arduino Maga, and dose not work with other Arduino board like Duemilanove.

Here is other optimization.
In this version, instead to write data to GLCD in each column address, block transfer entire 8 lines when call GLCD.Update() function.
When I call Update() function 5ms interval (equivalent to 24Hz refresh rate), this version can mark 20 FPS.

Here is link to my blog to explain above modifications. Sorry it written in  Japanese only, but you may find what I'm writing with machine translation.


Jul 02, 2009, 06:06 pm Last Edit: Jul 03, 2009, 12:15 am by mem Reason: 1
I have just updated  the playground with Releae 2 of the library : http://www.arduino.cc/playground/Code/GLCDks0108.

This is a release version of the Beta code that has been on the site for the last month or so.

This version makes it easier to integrate slower panels, supports the Mega and Sanguino boards, and has the following new features:
- Supports fixed width fonts that provides up to 8 x 21 character display with the supplied system font.
- CursorTo method to position the cursor to a given font location (fixed width fonts only)
- DrawBitmap function to display bitmap images stored in Flash memory. A Processing utility is provided in the download to convert a monochrome bitmap file to a header file automatically stores the image in flash for use by the DrwBitmap method.

Even if are already running the recent beta code you may still want to get the download for the updated example sketch and the Processing app that creates bitmap files.


have fun!

Go Up