ST7656 Help It's only displaying garbage.

My ST7565 arrived about a week ago, wired it up to my arduino and level shifter as per ladyada's tutorial, and it worked the first boot, Great tutorial! The last 3 days I've been designing new layout screens and have been working on it displaying what I want and have been Very happy with it.

Today I Booted my Arduino, and nothing but Random garbage is coming up on the screen, a few pixels here , a few pixels there a line or two here or there, like still static snow on an analog TV. It was working fine the last time i turned it off, and I hadn't loaded any new code or changed the hardware since the last time it was working. In my code I have some serial out and its still being passed to my PC, so I know the arduino is running.

After I removed the arduino and level shifter I OHM'ed out Every trace, It appears to be no loose wires and all the traces are connected and none are shorted.

I AM VERY STUMPED. Continuity checks out, software checks out. I don't have an oscillicsope, so I cant look at anything on the lines. I think Ive checked everything I could check with a $30 multi-meter.

If Anyone can think of anything else I could check, or any troubleshooting steps I can try Please respond.

Thanks in Advance, Matt Adams

Did you try another Arduino ? is the LCD ok

Did you try another display? is the arduino ok

It can be parallel or serial controlled, is the P/S line in the right state?

maybe the datasheets provides ideas? -$FILE/ST756510a.pdf

I also have a ST7565R and eventually got it working consistently. First thing was to get rid of the level shifter and replace it with a simple 2.2k/1k resistor divider. After that, I had no timing issues and could even run it at full speed using SPI which gives me a 5ms refresh. Make sure you use the CS line as well as it resets the serial buffers every time you take it high.

The link provided by Rob is old. use and choose the one you have.

The next thing I will try is to Re-construct the circuit on another board, mabye there is something I missed. I will also use the resistor divider.

I changed the arduino processor, loaded the code on the new one and have the same results. I don't have another LCD to test with this.

Ok I dont care how it makes me look as long as I help someone. I have no idea what was wrong. I re-buit the circuit on a more permanent board and soldered everything together. I figure it was a loose pin or clip somewhere. But it works now. I also replaced the level shifter with a few resistor voltage dividers. I like the independentcy and ease to be able to trouble shoot this way. I hope my posts help someone. random trash was probably something loose somewhere, works much better soldered together now with the voltage divider.

Glad you got it working. Note that your previous circuit must have been working if you got random dots on the screen. If it really wasn't working, you would not have gotten the random dots; it would have been a blank screen. By default the LCD screen is off and will only turn on if it received the proper 0xAF command to turn it on.

What I found was that the LCD would eventually miss a clock pulse and get out of sync with the serial stream because the level shifter was too slow, so the data sent to it would no longer make sense. Initially, I changed to using an opto isolator which still had timing problems and eventually I tried the resistor divider. You might also consider changing the resistor divider to 22k/10k to draw less current. I never tried this because I then moved my LCD to a Pro Mini 3.3V circuit so you will need to test it first.