LCDProc + Arduino UNO + HD44780 = Garbage

Howdy peeps!

I'm a newbie to the world of Arduino; so please be gentle!

For my first main project i'm trying to build a display for my home media server; i've purchased a HD44780 compliant LCD

And following the schematic which was included in my kit - I have managed to display text correctly.

Now the problem seems to arise from using LCDproc as advised by this post:

i'm using the same config and sketch as outlined here; my display is producing lots of garbage (i've adjusted the display sizes accordingly and am using 9600 baud rate via usb)

Could anyone shed any light as to why i'm experiencing so much garbage on the screen?


  • Bomski

Line 17 on the code you referred to, it should be lcd.begin(columns,rows); instead of (rows, columns). I don't know if that can result in garbage but correcting that mistake is certainly a step in the right direction.

thanks for the pointer liudr; I adjusted accordingly and still same garbage...

I had a brief search elsewhere on the web for a solution; and came across this video on Youtube which shows a very similar effect to what i'm experiencing:

If you disconnect the back light will you still see garbage?

tried removal of backlight; no imporvement... am really scratching my head with this...

do you know of any usb-enabled backpacks that work with lcdproc?? I may acquire one to eliminate the display as a potential problem...

The program basically relays serial input to the lcd without any type of interpretation except when it is a command. Can you provide me what was sent through the serial? That might be the reason the lcd is messed up. I have not seen any usb-enabled lcd backpacks. All I see are TTL serial enabled backpacks or complete units with displays. You can, on the other hand, purchase a USB/TTL converter for a few dollars to use the TTL serial enabled backpacks.

USB TTL converter:

There are lots of LCD back packs. I personally sell one, which I consider the best with keypads and buzzers etc all you can control with ASCII texts (around 2,000 lines of code can't be too bad). Sparkfun has their own version, very basic. Adafruit's backpack is an extender, you can't use it without an arduino or other MCU.

How about this part of the documentation - did you try a longer delay?

11.# If your display is slow and cannot keep up with the flow of data from
12.# LCDd, garbage can appear on the LCDd. Set this delay factor to 2 or 4
13.# to increase the delays. Default: 1.


Hi Floresta,

yes i've tried a longer delay; it seems to make no difference at all; @liudr - i'm unable to output the serial commands for some reason (lcdproc does not seem to have an easy method of doing this)

Running the example sketches all work completely fine; I think the issue is with LCDProc itself (i will try and ask on their forum)

Will postback anything that is suggested...

  • bomski

Please do get back in case you found a solution. Since the LcdProc uses standard liquidcrystal library, we'd be interested to see what code combination makes the library unstable (memory issue of the rest of the code?).

BTW, are you using the latest version of the arduino IDE (0022)?

I followed the same instructions with both diecemila and a duemilanove clones and was getting random numbers on the LCDs on both. I am using Arduino 1.0, and discovered that if I modify the original code from:

lcd.print(rxbyte); //Otherwise just dump it as text


lcd.write(rxbyte); //Otherwise just dump it as text

it worked as desired.

I am using a 16x2 HD44780 compatible LCD on a custom interface PCB connected to a RBBB with an ATmega168 and an ebay special FT232RL USB board. It is being used with LCDProc on a MythTV box.