Orangutan second display line fails

I am using the original Orangutan controller (purchased this summer). It started recently failing to display any characters on the second line. It takes 5 to 10 resets to make it work. Then it may fail again at the next reset. Also sometimes it shows garbled characters, this is also “cured” by reset. All other functions work OK regardless of display behavior.

Power supply is 5V stabilized and I bypass the diode at the connection so both processor and display get clean 5V.

Please help!

Hello.

What software are you using to control your LCD? Are you using routines you wrote yourself or something like Orangutan-lib? If it’s the former, my first suggestion would be to try using Orangutan-lib to see if your problem could be software-based. If you’re already using Orangan-lib, make sure you have the most recent version as I seem to remember hearing that earlier versions had a bug similar to what you’re observing now.

- Ben

I use the latest Orangutan lib (ver 0.3). I guess if this were a bug, the reset behavior would be the same. Also the problem started after some time into use of the board with generally same software.

That makes it sound like the problem is with the LCD itself, but I’m still not certain the problem isn’t due to something like improper timing of the LCD initialization software. Tomorrow I’ll try to post a short sample program that displays text on both lines of the Orangutan LCD. If that fails, we’ll have you send back your Orangutan for a replacement.

- Ben

Please program your Orangutan with the following two hex files and see if you continue to have issues with your LCD’s second line. One file will display text on both lines for a second or two after you power up or restart. The other file will simply display “line 1” on the first line and “line 2” on the second line.

OrangutanLCDTest1.hex
OrangutanLCDTest2.hex

- Ben

Ben,

I tried these tests and they work OK. It is a nice surprise - thank you for helping me to sort this out! I was so convinced that this was a hardware problem. Now I will go and review my code.

I’m very glad to hear it’s not a hardware problem! The first hex file is the test program that ships with the Orangutan and the second test hex file just uses lcd.c/lcd.h from the latest Orangutan-lib. The program essentially consists of:

#include "lcd.h"		// provides routines for using the LCD

int main()
{
    lcd_init();
    lcd_string(" line 1");	// display the string on the LCD
    lcd_gotoxy(0, 1);		// goto the start of LCD line 2
    lcd_string(" line 2");

    while (1)
        ;

    return 0;
}

The file lcd.c, which I include in the project as a source file, starts with the line:

- Ben

Oops, I forgot to include the “lcd_init()” call in the code snippet above. The LCD functions will not work if the LCD has not been initialized, so that was a pretty big omission on my part. I’ve edited my previous post to correct the problem.

- Ben