ST7920 Dot Matrix LCD Screen has shadows/artifacts.


After reading up on the ST7920 controller, and using the U8GLIB library, I managed to get my screen working. The problem is that vertical shadows (and some horizontal) appear under all visible pixels.

I checked voltages, removed the small contrast pot available, and added my own, added a large cap to filter the voltage. Still nothing.

I am starting to think it is a timing issue with the library. I hate reinventing the wheel, and don’t want to have to start from scratch.

Has anyone seen this problem?

Thanks in advance for all your help,


I have seen a lot of timing problems with the ST7920, but they usually look differently. Is there some flicker, or is it constantly looking like this?

Can you modify the HelloWorld example, where you enter an infinit loop after the first picture loop:

void loop(void) {
  // picture loop
  do {
  } while( u8g.nextPage() );

How will it look like?


Thank you for your help!

No, it’s the same. I length-matched the signal lines, but still have the same issue.

I tried a (similar) screen (same controller) , and it works ok. I am beginning to think it’s the display.

Thank you again!


I overlooked the test you mentioned was for the “hello world” sketch.

I ran it, and it works normally. When I add text a bit lower (a second hello world), I get the same artifacts.

Is it the display?

If this picture was created by the sketch with the endless for loop, then i would also thinkt, that this is a hardware issue with the display.