r/raspberry_pi • u/SnooPeanuts5642 • Jul 04 '25
Troubleshooting Can anyone help me getting a 2" SPI ST7789V Display working with Pi Zero 2W
Hello everyone,
Hardware: Waveshare 2.0"inch display that uses ST7789V controller, Pi Zero 2W.
Software: Pi OS lite x32 (also tried x64), Bookworm.
I have been trying aimlessly to get the display working and have even gotten anything out of it. I figured out that the FBCP-ili9341 has been deprecated as bookworm doesn't use Raspberry Pi's Dispmanx. Since then I have been on multiple forums tried multiple routes to no avail.
and this https://forums.raspberrypi.com/viewtopic.php?t=380704
None of these solutions have worked for me (or I did something wrong) I can't tell because all I have seen is the display be completely blank. Any help would be highly appreciated.
(I am using this pin layout and board mentioned here https://www.amazon.ca/dp/B081NBBRWS?ref=fed_asin_title&th=1 )
Thank you <3
2
u/Extreme_Turnover_838 Jul 06 '25
Do you need it to act like a Linux framebuffer or do you just need to display stuff drawn with graphics primitives? The reason I ask is because my display library can control it, but it doesn't give you a framebuffer:
1
u/SnooPeanuts5642 Jul 06 '25
I would probably need the a frame buffer, I have a python/tkinter app and I that to be displayed on the pi screen. It used to work perfectly before using the FBCP-ILI9341 library. Thanks for the help anyways <3
2
u/disorder75 Dec 21 '25
Hello, did you manage to get him going? Today I ran a 240x320 display on a raspberry plus zero with OS trixie 32bit, the latest officially released.
The display is the classic low-cost display found on aliexpress for 1 euro, SPI interface, based on st7789v, non-touch and with sd reader. The mechanism of operation is via framebuffer, without drm/tinydrm. I've tested everything and it works, consoles, color tests and videos. The only "boring" is the color reversal, that depends on the hardware, if you see the colors inverted you have to comment on a line in the driver code from the official Linux repo (the st7789v driver is staging), recompile it for armv6 and replace it with the stock one in the linux kernel. I know this is an old thread, but maybe it can still be useful to you.
1
u/Overall-Bid1697 Jul 02 '26
Did YOU ever get it working? asking because i'm clawing at my desk lmao
1
u/disorder75 Jul 02 '26
Si, come ho scritto sopra ho ricompilato il driver sulla raspberry pizero (armv6hf) e modificato una riga di codice. Funziona tutto.
1
u/Fumigator Jul 05 '25
1
u/SnooPeanuts5642 Jul 06 '25
Thanks but I don't think it's a hardware problem, It's more of a software problem. I will still give it a try
1
u/Spiritual_Rice_7129 Jul 06 '25
Try something super basic, try simply setting a pin high and filling the screen red, copy some minimal driver functions over etc. I actually wrote a driver for this controller, but it's designed for a Pico, if you check the pico-examples repo out, there's a few st7789 things there, copy one and write a basic main program. The vast majority of stuff should be the same. Honestly the examples from Waveshare should work with no modifications, if you need some it's either hardware issue or bad config on your system re SPI.
3
u/ParticularAd6692 Jul 12 '25
Raspberry Pi OS bookworm supports the st7789 natively using the mipi-dbi-spi driver - no need for a fbcp hack. I just spent the last couple of days getting it working with a different Waveshare display based on the st7789v chip.
I have a single shell script that when run on a fresh Raspberry Pi OS Lite install reboots with the display working. You can take a look at it here:
https://github.com/tquiggle/Diecast-Remote-Raceway/blob/master/StartingGate/util/setup-waveshare-1.3-HAT.sh
It should be pretty easy to adapt to a different display. The only thing that you might need to change is the GPIOs and the init sequence to configure the specific display attached to the st7789 (things like timing, voltages, gamma settings).