Hi LogiXcraft,
I'm the co-author of the GLCD V3 library and the author of the diag sketch.
In looking at your pictures and the diagnostic output it looks like you
have an issue with some stuck data bits or data bits not being driven
properly.
Sometimes these types of errors are bit tricky to track down
but this looks like a wiring or connection issue.
At first glance it looks like a data bus issue but it could also be
a chip select issue.
The first thing to do is look at the diag output and verify that
each pin on the Arduino is connected the GLCD pin fuction as shown
in diagnostic output.
This output is what matters as it is what the glcd library is really using based on what it was told in the pin configuration file.
Don't go back to any GLCD "type" wiring table for this verification.
(trust nothing but the real GLCD data sheet and the GLCD diag output)
Simply look at the diag output and then verify which Arduino pin
is connected to which glcd function pin based on the GLCD data sheet.
For example, in your output you can see that
Arduino pin 14 should be connected to GLCD chip select 1
Arduino pin 15 should be connected to GLCD chip select 2
etc... for all pins.
If there are mismatches, you can either correct the wiring or
correct it by altering the pin configuration file.
The walking 1's test is attempting to write and read a single memory
location in GLCD memory. It is writing the memory with each bit
set: by writing the values: 1, 2, 4, 8, 16, 32, 64, 128.
The compare is failing indicating an issue with the data bus.
Since the display is kind of sort of working, some of the bits are working
or at least working intermittently.
This can be caused by either incorrect wiring, broken wires, wires not making proper connection in the sockets/connectors.
Floating (un connected wires) will usually show up as 1's vs 0's.
In seeing that only the lower portion of the display is working plus
a walking ones error on Data bit 3 (the 1 != 2 error message).
I would look very carefully at the data bit 3 connection which
is Arduino pin 11 or AVR pin B3.
Also, if the chip select wires are not making proper contact, there can be
very strange behavior as the code will be inadvertently selecting more than 1 chip at a time. This can cause things like graphics mirrored
left & right, bit corruption on the screen and other strange effects.
So look very closely at both chip select wires.
A broken wire here or a poor connection on one or both of the chip
select lines can cause very strange things including things like what you are seeing.
--- bill