0.96" SPI Colour LCD (160x80) doesn't show text

Hi. I got the 0.96" SPI Colour LCD (160x80) Breakout. I hooked it up as instructed (see pic), installed the drivers and dependencies as instructed and tried to run a supplied example (scrolling-text.py).

I get no errors in the console, but the display stays black (I can see a little of the back light leaking out the side).

Any suggestions on how to proceed?


On those long solderless breadboards, the voltage rails down the sides are not continuous.
Its actually two separate groups of 25 pins. The first 5 groups of 5 are all connected together. And the second 5 groups of 5 pins are all connected together. But the first group isn’t connected to the second group.
I would say that black ground jumper isn’t actually grounded.
Move it up into the first 5 groups of 5, if that makes sense. Or jumper the first 5 groups of 5 pins to the second 5 groups of 5.

Tried your suggestion (see pic), didn’t work though. I did measure a solid 5V between the 3-5V and GND pins on the display. I don’t know what to look for on the other pins (~3.3V on DC and BL, next to nothing on CS, SCK and MOSI).

EDIT: Measured voltages again, with the example running this time (doh!). CS = ~3.3V, SCK = ~0.78 V (I assume an average of rapid switching between 0V and 3.3V, MOSI still next to 0V)

I’m finding it a little hard to follow what jumper goes where?
Can you confirm these colors for me, and double check they are in the correct position.
3-5V - Red
CS - Orange
SCK - Yellow
MOSI - Green
DC - Blue
BL - White
GND - Black

Might want to resolder the BL terminal on the display and add a little more solder. A close up picture of your soldering may help? Maybe you have a cold solder joint or something?

I confirm:
3-5V - RED - Goes to 5V rail on breadboard
CS - ORANGE - Goes to BCM 8
CSK - YELLOW - Goes to BCM 11
MOSI - GREEN - Goes to BCM 10
DC - BLUE - Goes to BCM 9
BL - WHITE - Goes to BCM 18
GND - BLACK - Goes to GND rail on breadboard

I’m not an experienced solderer, but I believe the joins are fine. Please judge yourself:

Its hard to tell from the picture but I think you may have a cold solder joint?
Have a look at this, it might help.


Thanks! I’ll resolder next weekend and try again. I’ll post the results.

Jumpers look Ok by the way.
Do you have a link to where you bought the breadboard breakout board? I’m pretty sure it plugged in correctly, can’t hurt to confirm though. I don’t like to just assume something based on a picture. .
If your measuring 5V on the pins marked 5v its correctly plugged in. ;)

EDIT: I see that you have already checked the +5V so disregard this post. ;)

Resoldered the connections. Joins do not all look very pretty, but they do look solid now (imho). Screen remains black when testing though (back light does come on). Anything else I can try, or do I have to conclude the display is broken?

Nothing else I can think of. That resoldering doesn’t look too good to be honest. They should all look like the DC one. The more you do it over the more chance of damaging it with excessive heat though.
It could have been defective from the get go. IT happens every now and then though you test stuff after production. On the main shop page there is a contact us link at the bottom. Click that and you can e-mail Pimoroni tech support directly. I’d put a link to this thread in that e-mail. Then see what they say.

Hello Phillip,

I think you will find your hardware is ok.

The pin description for “CS” is incorrect for the code. “cs=ST7735.BG_SPI_CS_FRONT” refers to CE 1 which is on BCM 7. Either swap over to that pin or change the line in each example to cs=ST7735.BG_SPI_CS_BACK if you prefer to keep the wiring the same for CE 0.

Hope it helps, did for me

Hello Mellie,
Thanks for your suggestion, makes sense! I’ve tried it, but it didn’t help for me. I tried both cs=ST7735.BG_SPI_CS_FRONT and cs=ST7735.BG_SPI_CS_BACK, with the CS pin connected to BCM7 and later BCM8, but all I got was a quick flash when starting scrolling-text.py:

mmmmm - heres the signal voltages i get with no code running and again with “python ./scrolling-text.py”

CS 3.3v
SCK ~0v
DC 3.3v
BL 3.3v (maybe 0v if you have rebooted)

Code running gives:-

CS ~2.4-2.7v
SCK ~0.35v
MOSI ~0.02-0.08v
DC ~2.3v
BL 3.3v

Can you try wiring it up with short jumpers from your Pi to the display? maybe there is an issue with the ribbon cable and/or T-cobbler? i have had issues with using Dupont wires in the past that resulted in poor communication, particularly when using IC2 or SPI.

Good luck! i’m sure you’ll find where the issue is.

Hello Again,

Just noticed you have the display powered up to 5V which is not a good idea for a Pi as the I/O are only rated for 3.3v, unless you use level shifting. The display will quite happily work on 3.3v.

I wondered about that 3 to 5V thing? Product page says the following

Here’s which pins to connect between your 0.96" LCD Breakout and your Pi’s GPIO ( note that it’s BCM pin numbering ):

  • 3-5V to any 5V or 3V pin

My assumption was use 3V if connected to a Pi and 5V if connected to say an Arduino UNO. I asked as much in another thread on the time of flight breakout but didn’t really get a definitive answer. Not one I was happy with anyway.

Is there a contrast setting and or adjustment with that display?
I have a 16x2 LCD display that I got in an Arduino kit. I ordered an SPI / i2c backpack for it and soldered that on the other day. Then all I got was a blinking backlight until I turned the contrast all the way up to max. It had me scratching my head for a bit? It has an adjustment on the back side that was set at 50%, which for my display or my eyes, not sure which lol, wasn’t enough. Without the backpack its like 7 or 8 jumpers to make it work, not counting power. Now only 4 jumpers including power.
Anyway, did you get it working?

Sorry it took so long to get back to you all. Here are my results for your suggestions:
As direct a connection to the pi as possible:
I excluded the ribbon cable and t-cobbler, but couldn’t skip the breadboard, as I don’t have any female-to-female jumper wires. Made no difference.
Apply 3.3V instead of 5V for power:
I connected the 3-5V pin to pin 1 (3.3V) on the Pi. Made no difference.
I thought it didn’t matter whether you use 3.3V or 5v, as the DC pin provides a reference voltage of 3.3V, and the power gets adjusted internally if necessary. Actually, I started out with 3.3V and switched to 5V when the screen didn’t respond. I hoped a bit more ‘oomph’ might help. It didn’t.
Check the back for contrast adjusters:
I didn’t find any. It does have a ribbon connector, but it seems fine. I decided not to touch it, as my fine motor skills are not what they used to be.

Edit: I’ve just tried looking at it through polarised lenses, and different examples (gif.py, image.py). Rechecked everything suggested in this thread, just in case I missed anything. So far, no luck.

There are some similar threads on the go on this. Maybe one of those will help you sort out what’s going wrong.

Maybe try moving the wire on BCM 18 to BCM 19?

Hadn’t seen those threads yet. I’ll go check 'em out. Don’t know when I’ll find time to continue on this quest, but I’ll report back when I do. Thanks everyone, for your support!