I have a display from an Anycubic Kobra Neo 3D printer (presumably ST7789V). I'm trying to get it working on a Raspberry Pi running Raspberry Pi OS (Bookworm).
My config.txt:
textDuring boot, when the screen is being updated intensively, I can see an image, but then it disappears. When running kmstest --device=/dev/dri/card0, the image appears momentarily.
Through experimentation with a Python script, I came to the following conclusion:
Before sending a command, the DC pin is set to 0 (command mode) - the image is visible.
During command transmission - the image is visible.
Before sending data, the DC pin is set to 1 (data mode) - the image is only displayed while data is being transmitted.
If after data transmission ends, DC isn't changed and remains high, the screen turns off.
I checked the DC pin state with a multimeter and it remains high when there are no screen updates.
I tried to fix the issue by modifying the kernel module code and adding a pull-down to low level at the end of data transmission (more details here: https://github.com/notro/panel-mipi-dbi/issues/22) and it worked!
But this solution will only work until the next kernel update, after which I'll have to patch and rebuild the kernel again.
I'd like to know how to make DC go low after data transmission?
PS: The fbtft,st7789v driver doesn't give the desired result - with it, the display flickers and shows a negative image.
My config.txt:
text
Code:
dtoverlay=mipi-dbi-spi,speed=8000000dtparam=compatible=neodisplay\0panel-mipi-dbi-spidtparam=write-onlydtparam=width=320,height=240,width-mm=84,height-mm=56dtparam=reset-gpio=25,dc-gpio=24Through experimentation with a Python script, I came to the following conclusion:
Before sending a command, the DC pin is set to 0 (command mode) - the image is visible.
During command transmission - the image is visible.
Before sending data, the DC pin is set to 1 (data mode) - the image is only displayed while data is being transmitted.
If after data transmission ends, DC isn't changed and remains high, the screen turns off.
I checked the DC pin state with a multimeter and it remains high when there are no screen updates.
I tried to fix the issue by modifying the kernel module code and adding a pull-down to low level at the end of data transmission (more details here: https://github.com/notro/panel-mipi-dbi/issues/22) and it worked!
But this solution will only work until the next kernel update, after which I'll have to patch and rebuild the kernel again.
I'd like to know how to make DC go low after data transmission?
PS: The fbtft,st7789v driver doesn't give the desired result - with it, the display flickers and shows a negative image.
Statistics: Posted by R0cketRacc00n — Mon Oct 27, 2025 5:10 pm — Replies 2 — Views 76