Can't display anything with LCD connected in parallel

Hi, I have a LCD display that is exactly like this one:

I can't provide a datasheet, I don't have any and there's no way I can get one.

I'm using U8g2 library to display stuff on it. I managed to make it work in serial mode with the code below and with the same connections as in the picture.

//U8G2_ST7920_128X64_F_SW_SPI(rotation, clock, data, cs)
U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R2, 13, 11, 12);

I tried to connect it in parallel with the code below and PSB to HIGH for parallel, DB0-DB7 connected to pin 2-9.

//6800 is the right one, not 8080
//U8G2_ST7920_128X64_F_6800(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, cs, dc)
U8G2_ST7920_128X64_1_6800 u8g2(U8G2_R2, 9, 8, 7, 6, 5, 4, 3, 2, 13, 12, 11);

Nothing appears on my LCD in parallel but it does in serial. Any idea how to fix this?
If I look on this documentation, I'm pretty sure I connected the pins right so what's wrong?

I want to use parallel because I think it will be faster for showing a fast moving ball. With serial the ball is very pale and I can barely see it. If I can make it work will it be better or the same as serial? That would be good to know because there's no point to using parallel if it isn't better.

I can't tell for sure what kind of display you have since the JPG is too small for me to see clearly.

However, the controller IC determines what you need to do to program the LCD.
You cannot unilaterally decide to go from "serial" to "parallel".

I doubt that it would be faster in parallel. You can try it. Make sure that you connect all the wires correctly.

You seem to be using SW_SPI i.e. Software SPI.
Since you are using the hardware SPI pins, you might just as well use the HW_SPI constructor.

The ST7920 works pretty well in Serial mode.


The result is pretty similar with Hardware SPI. I used this constructor:

U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R2, 12);

Weird thing is, when I tried disconnecting pin 11 and 13, the display fails. Isn't only pin 12 needed?

My aplogies. I just saw that you were using 11,12, 13 for SW_SPI. I just assumed you were using the hardware pins in the right order.

If you use HW_SPI, I would avoid MISO pin (12) for chip select. What is wrong with using 10 ?

I am sure that Oliver's documentation will advise you what to do.


No but I mean why are pins 11 and 13 needed if only pin 12 was specified in constructor? How does the library know to output to these pins anyway? When I disconnect them the display freezes at current image.

Because those are the hardware SPI pins. Anything using hardware SPI would know to use those pins. The only pin you should have to specify for something using hardware SPI is the CS pin. And 12 is literally the worst possible choice. Use 10 for CS.