Very strange problem with a 16x2 Sparkfun SerLCD

Hi guys, I'm having problems with sparkfun serLCD. Sometimes (I don't now why) when I power the Arduino and the LCD I get strange symbols on the screen like "xx||xx". This happens only sometimes but it's very annoying. If i turn on and off the power a few times finally the screen shows the correct text.

At the beginning i used the pin 0 RX and I thought that was the problem so changed to the pin 3. It worked for a few days but the problems started again.

I'm using the serLCD library and everything is properly connected. It seems that there is a problem of synchronization between Arduino and the LCD but i don't know how to solve it.

Thank you!

What baud rate are you running the serLCD at?

The serLCD library uses a baudrate of 9600 baudios.

What about program you loaded to your arduino? Does it print to the serial port too soon after arduino starts? If you are using UNO and the serLCD has Duemilanove bootloader, than your arduino boots faster than the serLCD, you are better off waiting say a few seconds before sending things to the serLCD.

Sometimes (I don't now why) when I power the Arduino and the LCD ...

If you are applying power to the two devices simultaneously (as in powering the LCD module from the Arduino) then most likely the Arduino is sending information to the LCD module before that module is ready to receive the information. This is what liudr was refering to in the previous post. The solution is to put a delay in your Arduino sketch.

You can verify that this is the problem by temporarily powering the LCD module from a different source. You should no longer get the strange symbols if you leave the LCD powered but turn the Arduino off and on again.

Don

I tried using the delay but it didn't work.

The only solution was to put a switch between the tx pin and the lcd screen.

I have a feeling that you are experiencing the side effects of how the bootloader functions. I think you will have to communicate with your LCD via a 'software' serial port to avoid having to interact with the bootloader each time the Arduino is powered up.

Don

guillermobarbadillo: I tried using the delay but it didn't work.

The only solution was to put a switch between the tx pin and the lcd screen.

This may help too:

http://arduino.cc/forum/index.php/topic,97455.0.html

6, bullet point 5.

floresta: I have a feeling that you are experiencing the side effects of how the bootloader functions. I think you will have to communicate with your LCD via a 'software' serial port to avoid having to interact with the bootloader each time the Arduino is powered up.

Don

Y'could also use a mosfet to switch power on to the LCD only after about 250 ms after the sketch loads, then a delay after the switch-on to keep the Arduino from doing anything until after the LCD module's up and ready.