My GLCD code/hookup from arduino examples doesn't display text.

I would like to start off by giving all credit for any code or schematics to the original authors and if I don't quote the authors I deeply apologize, it is purely accidental.

I'm new to Arduino, but I've had courses in micro controllers specifically the pic16 and intro to C++ programming. I'm experienced in soldering and working with my hands.

I have a Arduino Uno R3 and I've gone through all the examples in 1. Basics. Now I'm trying to use a GLCD so I can output and continue learning and tinkering. I'm using a GLCD (https://www.sparkfun.com/products/710). The GLCD back light turns on and the DIP changes the brightness. However the program doesn't show any text or images. Below are the links i used to get the GLCD hooked up and coded.

I found a project that uses the GLCD I'm using below.
http://saki-tech.tumblr.com/post/509580787/this-is-my-christmas-project-for-my-little
http://saki-tech.tumblr.com/post/513311661/electric-scheme-of-s-m-s-project
The code i used below
http://playground.arduino.cc/Code/GLCDks0108

My questions are.

  1. Why won't it display the tutorial program or anything and what would i need to do to fix it?

  2. Should I be using this library and/or method to display things on this GLCD?

  3. This wire hookup uses all but one of the Analog inputs, is there a way to open more analog ports or should I multiplex the one input into several inputs with gates/relays.

  4. Could i replace the DIPS with a equivalent resistance at the desired contrast so I could only need a single resistor?

  5. Should I use a serial LCD instead that only requires 3 wires?

Thank you in advance for any help.

tumblr_l0pyjeuscE1qbpci0o1_500.png

test_lcd_sketch_jan02c.ino (1.64 KB)

Quick Hardware review:

Do not use a variable resistor for the backlight. Variable resistors (usually) can not handle the current and the risk of accidently destroying the backlight is high. Depending the current (which i did not found in the data sheet) the constant resistor value is:
r = (5V-4.1V) / current_in_A

The contrast variable resistor is connected wrong in the Fritzing picture. See the datasheet of your post on page 9: I think the third pin of the variable resistor must be connected to ground.

From a software perspective, you might consider
http://code.google.com/p/glcd-arduino/
or
https://bitbucket.org/bperrybap/openglcd/wiki/Home

Oliver

I tried the two libraries you linked and tried uploaded some of the examples and they didn't show anything on the GLCD. Is there a specific sketch i should try? Will the different libraries have different pin outs?

I changed the variable resistor for the back light to a 10K. Is that alright? Could i do that for the other variable resistor.

Do i have the data pins setup incorrectly?

The backlight will probably require 20mA or more. This will be
(5-4.1)/0.02 = 45 Ohm
This means 10K for the backlight is too much.

The GLCDv3 library contains a good documentation on how to connect the display.

Oliver

Can i put a resistor value instead a of variable resistor for the LCD?

I reconnected the circuit twice and I still get no result on the screen just a back light.

Can someone look at my circuit and tell me if there is miswired pin?

Can i put a resistor value instead a of variable resistor for the LCD?

One varpot is required for the contrast value. The wiper goes to V0.

Can someone look at my circuit and tell me if there is miswired pin?

Indeed i am not an expert on parallel monochrome displays :roll_eyes:. I personally prefer serial displays (less wires, less possible bugs...)

What i can say is this: After carefilly reading the documentation for GLCDv3 i was able to run my parallel KS0108 display in my lab. The GLCDv3 lib also as a diagnostics example, which might provide additional information.

Oliver

I'm seeing a few issues that need to be resoved.
NOTE: there are some wiring issues that need to be resolved before
any more testing is done.
i.e. turn off the power and correct some wiring before proceeding

First, the sample sketch you included in your first post is not including the proper header
files and is actually using headers from two different glcd libraries.
ks0108.h is from the ks0108 libary and glcd.h is from the glcd (GLCDv3) library.

My suggestion is to use the examples that come with the library before you start
to run your own.

In %99.99 percent of the cases, the reason the display is not working is that
the wiring is not correct. The other fractional case tend to be because the wiring
was incorrect at some point and something on the display got fried.
Usually that doesn't happen and it is simply a case of incorrect wiring.

I am the co author of the GLCDv3 library but I am no longer offering support for it.
I now am supporting openGLCD so that would be the library I can help with.
It is essentially a superset of GLCDv3 with many bug fixes and new features
but is licensed as GPL v3 vs LGPL 2.1+
If you are wanting to create a closed source project then you cannot use openGLCD
but can use GLCDv3 or u8glib libraries instead.
Not sure who will step up for GLCDv3 support but for u8glib support Oliver can help you.

Currently openGLCD uses the same wiring as GLCDv3.
Whether GLCDv3 or openGLCD both libraries have lots of documenation on
how to wire up the pins along with some special directions and warnings on how
to hookup the contrast circuit (potentiometer).
From looking at your photo you have deviated from that contrast circuit
wiring in some very siginificant ways.

Note: the sparkfun datasheet has an error on it with respect to the VEE signal.
(most ks0108 datasheets have errors so this is not unique to this one)
The VEE signal is an output voltage signal and does not vary it will be negative
with respect to ground in the -5 to -8 volt range.
Regardless of that, the documentation in GLCDv3 and openGLCD explain
the proper way to connect the pot for contrast control using the Vee signal.

You have two potentiomenters.
They are both incorrectly wired to the GLCD contrast circuit pins.
Most concerning is the pot on the right.
That pot has the wiper hooked up to (VEE, pin 18) which is a glcd output pin.
The VEE pin provides a negative voltage from the glcd on board negative
power supply, that is used along with pot to create the needed voltage to
feed into the V0, pin3 input pin which is the contrast input voltage which controls
the contrast.
The way you have it wired up, Vee is being treated as an input signal
and the concerning part is that if the pot is turned too far either way,
it might short out VEE to either VCC or ground which can potentially fry the onboard
negative powersupply which means you wouldn't be able to drive the Vo signal
to turn on the pixels even after the wiring is corrected.

So my suggestion at this point is remove both pots, and review the documenation
for the proper wiring for the contrast pot and rewire it correctly before any further testing
is done.

The data lines looked good.
I couldn't quite tell where the yellow wires hooked to the analog pins are going.
The reset line looked ok.

When using GLCDv3 or openGLCD, you will want to run the diagnostic sketch.
Until the hardware is working, there is little point in running anything else.
The included HTML documenation in both GLCDv3 and openGLCD have details and glcd display
screen shots along with the serial monitor log that shows the expected results.
They also include a section on troubleshooting which can help resolve some common issues.
If you are using openGLCD and after running the diag sketch and can't resolve it
from the troubleshooting guide, then please come back and post the diag serial output
as that will help diagnose the issue.

--- bill

Thank you all for replies and help so far. Sorry I left the topic unresolved, my Arduino Board failed and I had to reorder a new one to do more testing.

So I got a new RedBoard from sparkfun and a GLCD backpack for LCD.
LCD (https://www.sparkfun.com/products/710)
LCD Serial backpack (SparkFun Graphic LCD Serial Backpack - LCD-09352 - SparkFun Electronics)
RedBoard (https://www.sparkfun.com/products/11575)

So I soldered the backpack on as shown in the picture according to the website (SparkFun Serial Graphic LCD 128x64 - LCD-09351 - SparkFun Electronics) and tried running some serial GLCD demos using the sparkfun library and the GLCD-V3 library (Google Code Archive - Long-term storage for Google Code Project Hosting.).
Nothing is displayed on my LCD. I ran the diagnostics demo and posted the output in a file.
Can someone tell me what's wrong, I hope I didn't damage something on the LCD or Backpack.

Thank you in advance for any replies and help.

Diag log.rtf (15 KB)

You can't use GLCDv3, openGLCD, or U8glib with that serial backpack.
Those libraries drive the GLCD pins directly and are not compatible with the serial backpack.
You will have to use the sparkfun library or send your own serial commands to control the backpack.
Looks SparkFun didn't write any documenation for their product.
I did notice that they have a pre 1.x library zip image with their serial GLCD product
which uses the same backpack. While it may not work "as is" it would probably
work with minor tweaking for 1.x
It looks better (more features) than the more recent library.
So you may want to take a look at that as well as
look over the comments for the products.
From reading the comments, it looks like some there is some better 3rd party f/w available.
Sorry, that's all I can help.

--- bill