SerLCD 4x20 showing block characters on SPI C/S toggle

These are VERY useful notes so thank you for sharing them. The solution appears to be tucked in the troubleshooting section:

Random Character

If the display is powered up without the RX line connected to anything, the display may fill with strange characters. This is because the display is receiving random noise on the disconnected line. If you connect the RX line to a true TX port, this will not happen.

Unfortunately, there are THREE rx positions on the 4x20 and it doesn’t say which one. Further, one of these RX’s (not sure which) is used for hw reset on power-on so I wasn’t sure which one they are saying to tie to TX but that’s nonsense when I’m using SPI.

After trial and error, I found that tying the UART RX (for clarity, RX [2] in my annotated photo) to gnd seems to resolve the issue when driving CS hi/low.

Here, only 3 wires - RAW, GND and CS - I’m manually grounding CS with the UART RX pin floating…

Here is the full SPI hookup - RAW (3.3v), GND, SDO, SDI, CS and with UART RX tied to GND.

Note this floating RX/garbage character doesn’t seem to occur when using i2c, but I want to use SPI for this application. I’m still getting a few ghost characters occasionally, but I’m attributing that to the fact that spi doesn’t have any crc or checksums and my breadboard wiring is quick and dirty prototyping.