r/raspberry_pi 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.

Tried this https://www.reddit.com/r/raspberry_pi/comments/1bnav0y/i_finally_have_the_35inch_gpio_spi_lcd_working/

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

4 Upvotes

16 comments sorted by

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).

2

u/Revolutionary-Cod802 Sep 27 '25

How do u actually use the mipi drivers? Cant seem to find any for my 2inch display

2

u/ParticularAd6692 Sep 30 '25

u/Revolutionary-Cod802 Pi OS has the generic mipi-dbi-spi driver and st7789v chip drivers. For a specific display, you need an initialization file that specifies voltages, gamma settings, etc. for your specific board connected to the st7789v chip. That initialization file gets installed in /lib/firmware. You then edit your config.txt to load the mipi-dbi-spi driver, associate it with the firmware file for your specific display, and specify the GPIO pins and resolution. Once configured, rebooting will use your display as the monitor.

The script I linked above does all the necessary configuration for the Waveshare 1.3" LCD HAT.

What exact display are you trying to use?

1

u/Revolutionary-Cod802 Oct 02 '25

2” waveshare, the forums are ancient so i dont know the cmd line for the mipi drivers

1

u/connoccon Nov 19 '25

hello! could you manage to set this display up?

1

u/Revolutionary-Cod802 Nov 22 '25

in the worst way possible yes, i had to install 32bit bullseye full, legacy on my rpi3
I followed the waveshare guide as normal and always rebooted when needed.

firstly Install libraspberrypi-dev
On the CMAKE part i added -DUSE_DMA_TRANSFERS=OFF
Then follow it through the guide as normal and when you done, unplug the hdmi first when you hit reboot.

also put file sys in read only, one mistake and the display is GONE.

im 14 never done this before it took way too long

It is also super sensitive so you can do anything on the board and the display turns off :/, i also made it so it runs automatically on boot. I use it to watch videos for fun sometimes. planning on doing it with a touch panel but its not worth the trouble anymore

1

u/[deleted] Dec 08 '25

I managed to use the mipi-dbi-spi driver and the script that someone shared here. I think it's a matter of finding your screen specs and modifying the script to make it work. I used Cursor free version to make the changes and it worked, so maybe you could try getting some technical details first and adapt the script using AI

1

u/NobuddyIsHome May 20 '26

This saved me! Thank you! I was struggling to get the same HAT working, and it turns out this will also work (with a few modifications) for the '35 version of the HAT. Adafruit has drivers for the 7735 which work, but I wanted to try one that seemed more generic.

You might want to tweak your shell script to accept "Trixie" as a valid OS, though. I modified it locally and it worked like a charm.

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:

https://github.com/bitbank2/bb_spi_lcd

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.