Open Zach1812 opened 3 years ago
Check out this thread https://github.com/juj/fbcp-ili9341/issues/149 , where user had to change the SPI signaling mode to talk to their display.
I followed the thread and replaced the display.h DISPLAY_SPI_DRIVE_SETTINGS to the same in the mpi3501.h one. Nothing changed.
My output clearly recognizes the screen as a 240x240, I just don't' know why it doesn't do more than just backlight on.
After a lot more testing and much fussing and soldering I've been able to make it work. ...Kinda. I was able to follow this website to change the two files (config.h and st7735r.cpp) to get it working on a Raspberry Pi 3B+. After ensuring everything was working properly and accurately I soldered up a Raspberry Pi Zero W and with a fresh install, followed all the same steps as on the Pi3B+ and... Nothing. It doesn't work.
Is there any driver difference between a Raspberry Pi Zero W and a Raspberry Pi 3 B+?
Tested on Raspberry Pi Zero W & the same exact China export display.
Hey! I got the same exact display working by modifying the board a bit. Also, the controller is not ST7789 even though it's written to the back of the display. It's actually ST7789VW, which has just a couple of differences, and one of them was (if I remember correctly) the way that the controllers handle the set gamma command and therefore you can't see anything with the wrong driver. If you have everything set up correctly, you should at least see the initialization sequence, which is random white and black for a moment and then a slow fill to black.
This is how to do the mod:
Building the driver:
I used this command in my final build (I don't have a pin for the backlight though but you could add it if you need it):
cmake -DUSE_DMA_TRANSFERS=ON -DST7789VW=ON -DGPIO_TFT_DATA_CONTROL=5 -DGPIO_TFT_RESET_PIN=6 -DSPI_BUS_CLOCK_DIVISOR=8 -DSTATISTICS=0 ..
And after that you need to run the make -j
-command and then run the fbcp-ili9341 -binary as root with sudo ./fbcp-ili9341
Notes:
madctl ^= MADCTL_ROW_ADDRESS_ORDER_SWAP;
in the st7735r.cpp. It should be somewhere near the row 59.sudo pkill fbcp-ili9341 && sudo service dbus restart
And after that start the driver again.sudo apt install i3-wm
). But if you use i3, remove unclutter IMMEDIATELY, it causes a 100% CPU-usage somehow even without running it?Hopefully someone found this useful.
Long time enjoyer of this driver. Truly awesome. Generally I'm using it with an ILI9341 generic from Hiletgo Amazon, However I just got a new screen from China (an ST7789 according to specs) that's an 8 pin SPI TFT OLED display. No matter my wiring or my command lines, it just does not want to work. I've got to the point where the Reset pin will light up the backlight but it wont' go any further.
I've read all the posts available here and hoped some of the config.h changes that I made would make a difference...Nope.
Wiring GND -> GND pin 20 VCC -> 3v3 pin 17 SCL -> SCLK pin 23 (GPIO 11) SDA -> MOSI pin 19 (GPIO 10) RES -> pin 18 (GPIO 24) DC -> pin 22 (GPIO 25) CS -> CE0 pin 24(GPIO8) BLK -> pin 16 (GPIO 23)
Command: cmake -DST7789=ON -DGPIO_TFT_DATA_CONTROL=25 -DGPIO_TFT_RESET_PIN=24 -DGPIO_TFT_BACKLIGHT=23 -DSPI_BUS_CLOCK_DIVISOR=40 -DUSE_DMA_TRANSFERS=ON -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON ..
Everything compiles just fine and even turns on the backlight, but there still is a black screen. The only thing I've changed in config.h was to uncomment // #define UPDATE_FRAMES_WITHOUT_DIFFING and completely rebuild the build file.
I appreciate any help.