ROC-RK3328-CC 3.5 inch SPI LCD Touch Screen Display

Would it be possible to get RK3328 versions of the below dtbo’s so we can use these displays on the RK3328 boards? The drivers compile and fine but without the correct wiring the display does not work.

spicc-cs1.dtbo
spicc-cs1-ili9486-xpt2046.dtbo

link to the drivers 3.5inch RPi Display - LCD wiki

We have an overlay for that display but there’s some boot race condition we didn’t fully finish debugging. The screen works but I think there were some touch issues that were pending a resolution.

I did a quick test and can confirm it’s not quite working yet. I used a 2GB ROC-RK3328-CC with fully-patched Libre image of Ubuntu 22.04 and a generic 3.5" RPi SPI touchscreen display that I had working on Le Potato. I’ll list some of what I saw at the end, but if you want to try it anyway I did a combination of steps from https://hub.libre.computer/t/aml-s905x-cc-480x320-ili9486-spi-touchscreen-display/183 and https://hub.libre.computer/t/libre-computer-wiring-tool/40

sudo ltdo list did not show the overlays, as expected – they haven’t been fully released yet. So had to pull the current github development code and try it.
cd # back to home directory
mkdir touchscreen # create a directory to work in
cd touchscreen # enter the new directory
sudo apt install git # install/update the git tools if not already installed
git clone https://github.com/libre-computer-project/libretech-wiring-tool.git # clone the repository
cd libretech-wiring-tool # enter the code directory
sudo ./install.sh # run the Libre-provided build script
sudo ./ldto list # run the newly-created version in the current directory and note additional overlays
sudo ./ldto enable spi0-cs1 # enable the SPI overlay using the new ldto for testing
sudo ./ldto enable spi0-cs1-ili9486-xpt2046 # enable the display and touch overlay using the new ldto
dmesg | grep fb # check if new fb was enumerated
ls /dev/fb* # see if new fb device was created

At this point the display showed some signs of life and could be seen in Display Properties in the windowing environment, so I did the merge to make it available on next boot.

sudo ./ldto merge spi0-cs1 # merge the SPI overlay using the new ldto
sudo ./ldto merge spi0-cs1-ili9486-xpt2046 # merge the display and touch overlay using the new ldto

On the first reboot, I think I hit the race condition – the boot messages scrolled by and showed fb0 (my main screen) enumerated, and then it hung before getting to fb1 (the 3.5").

On the second reboot, both fb0 and fb1 were found, and Display Properties recognized the screen, but I couldn’t get it to activate/show wallpaper.

On the third reboot, I used only the 3.5" screen; boot text scrolled on the screen, and then it blanked as it normally does when entering the windowing environment… but it never showed up. I used Remote Desktop to access the system, and within the RDC client the representation of the desktop looked right. I tried the touchscreen and could interact with icons and the workspace even though the physical screen was blank. When shutting down, as soon as it “exited” the windowing environment the console/text shutdown messages started scrolling on the screen.

This is only one data point, and I didn’t dive any deeper to see if I could diagnose and tweak it to make it work. You might have better luck with your display, or you may hit similar roadblocks.

I’ll keep an eye out for any updated releases with fixes from Libre and try it again someday.

1 Like

Thanks for the replies Libre and Bisco. I played around a bit more and found using the Libre Ubuntu 22.04 image and the dto’s in the Libre git the initial Ubuntu graphical screen comes up. It dies when xrandr tries to set the screen resolution.

The display works fine for non-X purposes which is fine for running Home Assistant. I can still hook up a keyboard to the computer and do any quick “repairs” as needed. Xwindows was just more of a “nice to have”.

Excellent. Glad to hear you have a useful solution – sometimes “good enough” is good enough.

The DRM system gets confused when you don’t specify the video device and tried to pick CVBS. Other than that, it works. We haven’t finished tweaking the DT.

Aha. I hadn’t considered that. I’ll put it on my list of things to explore when I have a chance – but I don’t really use the 3.5" SPI screens with my 3328s much so it may be a while before I get back to it. Thanks for the note, though.

Any updates on how you got it working and if things have improved since then?

Can confirm bisco’s experience: Display works during boot up but turns black once OS is loaded. Any idea how to tackle that issue? Tried multiple things without luck.