Volumio with 3.5" TFT Touch Screen (GPIO) RPi 3B+

If you don’t need touchscreen, you can use this driver, it’s heavily optimized for fast refresh rate and low CPU consumption

github.com/juj/fbcp-ili9341

At the moment I switched to this one, because I can’t make the procedure working on a fresh system. I had it working back in time, but now it does not and I don’t understand why.

I’m performing some test to have this driver with touchscreen working again. I’ll keep you up to date

Hi Darmur, did you write this driver or are you expert of DSI drivers?
If yes, it could be great if you could contact us at info at volumio dot org

Hi Michelangelo,

I’m not an expert of DSI drivers, but I’m performing test with several of them under RPi and I’m gaining some knowledge there. I’m working on some volumio-based projects and touchscreen will be part of them, I’ll write you something more in private later on.

I found the driver mentioned before some time ago, It’s an optimized version of FBCP (FrameBufferCoPy) dedicated to RPi processors. Please have a look to the section “How it works” on the readme for further details.

This driver is using SPI in non-standard way, to achieve maximum frame-rate with little CPU consumption. because of that, standard SPI driver must be disabled and standard SPI touch driver can’t work. From the readme:

Likewise, if you have any touch controller related dtoverlays active, such as dtoverlay=ads7846,… or anything that has a penirq= directive, those should be removed as well to avoid conflicts. It would be possible to add touch support to fbcp-ili9341 if someone wants to take a stab at it.

With this driver I had a RPI3 A (half RAM!) running for 3 days in a row, with screen always active. It can work with several SPI-based LCD screens.

The other driver provided by the LCD vendors is not very optimized, with RPi3 A makes the system slowing down after some time the screen is on (response to commands has severe lag). The workaround I use for now is to turn off the screen when not playing. I prepared a script that will make this 3.5" working on latest volumio.

It can be copied to the FAT32 boot partition and then executed from SSH

sudo sh /boot/install_3.5_screen.sh

The script can be adapted for other orientation and different screens. Orientation is fixed at 90 degrees, I’ll provide other scripts for different orientations later on.
install_3.5_screen.sh.zip (818 Bytes)

2 Likes

here the modified scripts to select all possible orientations
install_3.5_screen.zip (3.25 KB)

2 Likes

Hey Guys,

I know this might be an older post… I am trying to get this to work and all I have is a black screen (not white anymore).

I am using the same screen as mentioned in the post.

I could use some help…i.e. any updates or how others have done things to make it work!

BTW i am using the most current version of V2 as of today’s date.

1 Like

Hi Jersinger,

maybe this script >>here<< can help

Yves

Thank you for your corrections. My display works now. I have an issue with the touchscreen. My problem is that the tochscreen after rotating the screen is reversed. SwapAxes doesn´t seem to do anything.

I used the instructions in MomFab1’s script to install the screen and the screen stayed black. However, I made one change:
I edited /usr/share/X11/xorg.conf.d/99-fbturbo.conf to change fb0 to fb1
Not sure if this is required. Anyway, leaving the Pi on for about 10 minutes and the screene eventually changes from black and starts displaying.

1 Like

I have this problem as well. The best I have managed to get is correct two diagonal corners, while the other two are reversed.

1 Like

I Have written the edited version of this tutorial. Here is the link

1 Like

Nice work mate will try your revision and will see if it does the work, anyways thanks.

Edit: Done working with related to this project and it was working. Thanks

1 Like

thanks, it works perfectly :ok_hand:

I only have a small problem, every time after a reboot the alignment of the touch is incorrect, I first have to turn the touch plugin off and on and then it works fine again.

have already built in the touch screen reasonably, the finish has yet to be done.

If you have installed lightdm try to remove it (sudo apt-get purge --auto-remove lightdm). I think it is not needed and may interfere with the touch display plugin.

If you should have edited /etc/rc.local as proposed in the OP I think it needs to be removed as well, as it probably has the effect that two instances of the xserver and chromium are started (one by through rc.local and another when the touch display plugin starts).

ok i will try that tomorrow.
I also want to mention as soon as I enter 180 degrees in the touch plugin settings and in the 3.5 inch touchscreen file 270 degrees it works well every time, even after a reboot.

Hi,
What model of 3.5 tft works with this tutorial?
I am planning to buy one
Many thanks

1 Like

Is my assumption correct that you normally don’t have the display rotated?

Could you please post the contents of 99-calibration.conf and 95-touch_display-plugin.conf when rotation is set to 0 deg.? 99-calibration.conf probably resides in /usr/share/X11/xorg.conf.d, 95-touch_display-plugin.conf you find in /etc/X11/xorg.conf.d.

I’ll will try that tomorrow too.

here the content.
and yes I have rotated the display, I can not install it otherwise.

99-calibration
Section “InputClass”
Identifier “calibration”
MatchProduct “ADS7846 Touchscreen”
Option “Calibration” “3936 227 268 3880”
Option “SwapAxes” “1”
Driver “evdev”
EndSection

95-touch_display-plugin

This file is managed by the Touch Display plugin: Do not alter!

It will be deleted when the Touch Display plugin gets uninstalled.

Section “InputClass”
Identifier “Touch rotation”
Option “TransformationMatrix” “-1 0 1 0 -1 1 0 0 1”
MatchIsTouchscreen “on”
MatchDevicePath “/dev/input/event*”
MatchDriver “libinput|evdev”
EndSection

1 Like

If 99-calibration.conf should be located in /usr/share/X11/xorg.conf.d does it help to move it to /etc/X11/xorg.conf.d?

Your 99-calibration.conf contains settings that are proposed for a rotation of 90 deg. The “TransformationMatrix” setting in 95-touch_display-plugin.conf belongs to a rotation of 180 deg. set in the plugin’s UI. Do you use this together with dtoverlay=tft35a:rotate=270 in /boot/config.txt?

What is your desired orientation of the display?