Go Down

Topic: 16 Char LCD module (Read 3333 times) previous topic - next topic

Hi all,

This is probably a long shot, but I thought I should try anyway!

I just purchased an old (cheap) 16 character LCD module that I want to use with my Arduino board. The problem is, no documentation! I've searched all over Google & can't seem to find anything on this display.

Here are the details:
On the front there is a sticker with 123S00254
On the back there is a sticker with LM575
The two driver chips are HD44100H (I think the driver chip) and HD44780A46 (I think the controller)

If anyone knows anything about htis display, I'd be extremely grateful fo any shread of knowledge on it!

If I can get the specs on the controller chip, I can at least ohm out the connections ot the 14 pin header.


Feb 22, 2009, 05:25 pm Last Edit: Feb 22, 2009, 05:26 pm by MikMo Reason: 1
The HD44780 controller is very common and is supported by the LCD library for Arduino.

EDIT: rubbish deleted :-)

Thanks for the info!  :D

I did find some info on the HD44780U controller but was concernedthat there might be pin differences between that one and mine.

Oh well, I guss I'll just have to give it a try & hope I don't let the magic smoke out of the thing!  ;D

I hooked up my LCD and used the LiquidCrystal library to do a simple "Hello World" program, but I don't see anything on the display. [smiley=cry.gif]

Any suggestions for how to proceed to troubleshoot this?



Have you connected a potentiometer between 5V and ground, and connected the wiper to the LCD's contrast input pin?  Most LCD schematics show this.  The LCD won't work without it!  Beware that some (older) LCDs needed a negative contrast power supply.

Hmmmmm, I didn't seem to see anything that looked to be a contrast pin on the datasheet for the controller.

However, there was one pin that I was not able to determine the function. It's called V5 and it's labeled as "power supply for LCD drive." When I checked that pin (I didn't connect it) it had +5V on it.

I found some documentation on how the contrast is supposed to work.

I don't have the appropriate trim pot (10k - 20k) so I just used a bunch of resistors in series and moved the V5 line around. It turns out that shorting it directly to ground produced some visibilty on the display. So, it would seem that my display might need negative voltage on that pin.

Moving on, my sketch did not produce any output on the display. It just stayrd in a state with all of the pixels in an on state. Could not having a negative voltage for V5 be causing this?

If not what other things should I watch out for?


Feb 23, 2009, 11:32 am Last Edit: Feb 23, 2009, 11:34 am by mem Reason: 1
The voltage is unlikely to be negative. +0.7 volts or so is typical, although it does vary with LCD type. Your best bet is to try it with a pot. You can often find them in discarded computer components.  I think I got 3 or 4 10k preset pots from an old CD drive that was being thrown away. Old printers are another potential source.

Good luck!


Feb 28, 2009, 07:03 am Last Edit: Feb 28, 2009, 07:05 am by dnear1 Reason: 1
I was using the lcd4bit library successfully previously and now that I tried to switch to the liquidcrystal library, I get the same result with my newhaven 2x16lcd.. the top line is lit solid and no display.  when I re-load my old sketch the display resumes working.

I suspect there is a bug in the init of the lcd in this library...  it would be nice to get it to work, as it is 1k less code and appears to handle printing better.

As for the contrast pin, most lcd set to between 2-3vdc... easiest way is a 10k wiper.  adjust the voltage based on temperature..


If LCD4bit is working and LiquidCrystal is not then that sounds like a problem with LiquidCrystal.  Double check to make sure the sketch is using the correct pins, but if so it could be either the initialization or the timings for writing data and pulsing  the enable pin.  I wonder if you feel up to experimenting with the LiquidCrystal library by putting in delays so its similar to those used by LiquidCrystal.


Feb 28, 2009, 10:17 am Last Edit: Feb 28, 2009, 10:17 am by MikMo Reason: 1
Also remember that many 16 char one line LCD's has to be set up as 2 lines of 8 chars.


Mar 01, 2009, 04:04 am Last Edit: Mar 01, 2009, 04:32 am by dnear1 Reason: 1
When I hook an LED up to the enable pin.. it only blinks once.. even if I have a loop sending messages to the LCD every second..  I even switched to a 2x8 optrex lcd I used when I first started using lcd.. like before, it works in lcd4bit but not liquidcrystal.  I know the pins are correct and I even tried swapping the order of pins around physically and in code

When I compare lcd4bit to liquidcrystal they look quite different..  even adding some delay or delaymicrosecond doesn't seem to help.  I did delete the .o file before re-sending the sketch.

The upgrade notes for arduino.0012 says something about combining the print libraries... I don't understand how that relates..what it means or how it works..
the lcd4bit library has print command handler in it the liquidcrystal doesn't..  could this be a problem?
the example sketch for liquidcrystal shows lcd.print("Hello world!");


I don't think the print class is causing the problem. You can verify this by adding some Serial,print statements in your sketch and seeing if that is ok - Serial and LiquidCrystal share exactly the same print code.

Perhaps ask someone else to check the wiring, it can be surprisingly easy to miss a problem.

Because LiquidCrystal has worked for many people  (I use it on a couple of different display panels), if it's not the wiring it could be the timing not quite right for the display panel you are using.


When I hook an LED up to the enable pin

The pulses on the Enable line are very short, only a few microseconds.  You'll need to use a logic probe with a pulse stretching or pulse capture facility to see them.


".. the top line is lit solid and no display"

I'm getting the same as dnear1.

I've got the contrast right using a trimmer pot so I am not missing any text that would display.

The display uses a "KS0066 LSI controller"

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131