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

here the necessary information about the touchscreen, the type of number was hidden under a sticker :roll_eyes:

480x320 pixel.
XPT2046 touch controller.


below more information about the touchscreen :wink:

@michel8166 That meets my suspicion that lightdm and/or the modifications to /etc/rc.local were interfering. Good that it is cleared up.

To summarize: If one wants to use the Touch Display plugin don’t install lightdm and don’t modify /etc/local.rc as proposed in the OP.

Regarding your specific display: As far as I can see it runs in portrait mode by default, i.e. when rotation is 0 deg. It seems it has the X-axis and Y-axis inverted with the result that it rotates counterclockwise.

Since the “rotate” parameter of the tft35a overlay only affects the (visual) display rotating the touchscreen is done by the Xserver.

The various “99-calibration.conf-35-x” files in goodtft’s GitHub repo for 0, 90, 180 and 270 deg. achieve this by different orderings of the values for minX, maxX, minY and maxY you can see after the option “Calibration” together with the option “SwapAxes”.

The Touch Display plugin rotates the touchscreen using the “TransformationMatrix” option in /etc/X11/xorg.conf.d/95-touch_display-plugin.conf.

What I would like to know:
Is your touchscreen properly aligned to the display if you use

Option  "Calibration"   "268 3880 227 3936"
Option  "SwapAxes"      "0"

in /etc/X11/xorg.conf.d/99-calibration.conf and set the rotation in the plugin to 270 deg.?

ok, i have adjusted the /etc/X11/xorg.conf.d/99-calibration.conf to below value and 270 degrees in the plugin and then did a reboot and everything is ok, the alignment off the touch and screen fit.
the connector is now at the top

Section “InputClass”
Identifier “calibration”
MatchProduct “ADS7846 Touchscreen”
Option “Calibration” “268 3880 227 3936”
Option “SwapAxes” “0”
Driver “evdev”

Excellent. Your finding is what I was hoping for. So you can simply take the settings from “99-calibration.conf-35-0” and then rotate the touchscreen to your needs just using the plugin. Only the display rotation has to be set manually by specifying the “rotate” parameter of the tft35a overlay. :slight_smile:

Thank you very much for testing!

thanks, i’m glad it is solved now and thanks for the support :smile:

1 Like

this morning installed the update v2.799 and after that the screen stopped working and remained blank.

i just had to re-enter the line in the /boot/config.txt dtoverlay = tft35a: rotate = 90 (in my case) then reboot and everything was ok again.
the settings of /etc/X11/xorg.conf.d/99-calibration.conf remained unchanged.

so every time after an update you just need to edit the /boot/config.txt and nothing more.

That is avoidable if you use /boot/userconfig.txt. In contrast to /boot/config.txt which gets overwritten each time Volumio is updated, userconfig.txt remains untouched (further information).

applied now, thanks for the tip :+1:

hey everyone im working a small project with volumio, i have a raspberry pi 4 2gb on raspbian everything runs smooth with the screen but trying with volumio is getting really hard i tried all the steps mention here but nothing the best that i got is a full black screen thats far that i can go any ideas or sugestions to make this work??

Please provide some more information:

What is the brand and exact model name of your screen?

Did you install some kind of driver for the screen or did you add or change files manually? If so, please describe in detail.

Do you see any error messages when the plugin gets started? If so, what do they tell?

Assuming you have SSH access to Volumio please post the result of systemctl status -l volumio-kiosk.service, too.

the error that i get is unable to comunicate with xserver i realize that

sudo mkdir -p /usr/share/X11/xorg.conf.d/ is not creating the directory so
sudo cp -rf ./99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf
but it doesnt give me any command error is just not creating the directory

volumio-kiosk.service - Volumio Kiosk

Loaded: loaded (/lib/systemd/system/volumio-kiosk.service; disabled)

Active: failed (Result: exit-code) since Mon 2020-08-31 07:24:57 UTC; 24min ago

Main PID: 1407 (code=exited, status=1/FAILURE)

Aug 31 07:24:42 volumio startx[1407]: at http://wiki.x.org

Aug 31 07:24:42 volumio startx[1407]: for help.

Aug 31 07:24:42 volumio startx[1407]: (EE) Please also check the log file at “/home/volumio/.local/share/xorg/Xorg.0.log” for additional information.

Aug 31 07:24:42 volumio startx[1407]: (EE)

Aug 31 07:24:42 volumio startx[1407]: (EE) Server terminated with error (1). Closing log file.

Aug 31 07:24:57 volumio startx[1407]: xinit: giving up

Aug 31 07:24:57 volumio startx[1407]: xinit: unable to connect to X server: Cannot assign requested address

Aug 31 07:24:57 volumio startx[1407]: xinit: server error

Aug 31 07:24:57 volumio systemd[1]: volumio-kiosk.service: main process exited, code=exited, status=1/FAILURE

Aug 31 07:24:57 volumio systemd[1]: Unit volumio-kiosk.service entered failed state.
my screen is a wondershare one i made it boot after all but now i just stays at log in screen

Did you install lightdm and modify /etc/local.rc as proposed in the OP? If so remove lightdm (sudo apt-get purge --auto-remove lightdm) and revert the changes to /etc/local.rc as well, as they probably have the effect that two instances of the xserver and chromium are started (one through rc.local and another when the touch display plugin starts).

If that does not solve the issue please post the results of
whereis chromium-browser
ls -al /tmp/.X11-unix
cat /boot/config.txt and
cat /boot/userconfig.txt
ls -al /usr/share/X11/xorg.conf.d

If there should be 99-fbturbo.conf also execute
cat /usr/share/X11/xorg.conf.d/99-fbturbo.conf

What is the exact model name of the Wondershare screen?

sorry is not wondershare is waveshare 3.5inch RPi LCD (A) with a raspberry pi 4 2gb

finally i now is working what i did i re-upload again the image to the sd i did the basic first steps before install the Volumio Plugin i had to do the step 10 to 14. not including

(“sudo mkdir -p /usr/share/X11/xorg.conf.d/ and sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf”)
i have to run “sudo apt install lightdm” once installed i run
(“sudo mkdir -p /usr/share/X11/xorg.conf.d/ and sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf”)

finally the system created the path, reboot and i got the log on screen so once there i uninstalled lightdm with the (“sudo apt-get purge --auto-remove lightdm”) that you mention me reboot the system again and last step install the volumio drivers it was really crazy tho jaja i spend all the weekend trying to see what to do thanks a lot for the help is great how it works with the pi 4 smooth and charm i will try to do an overclock and see what else i can do thanks again for the help

So your problem has been solved, or did I misunderstand your last post?

yeah i just solved doing what i mention just change the order of the steps basically

:+1: Good it works for you now.

As I have stated earlier to anyone who wants to use the Touch Display plugin I would recommend to neither install lightdm nor modify /etc/local.rc as proposed in the OP.

1 Like

Hi I have performed all the steps and I have made the display work but the touch is not calibrated well.
In particular, when I click on a point on the right it is as if I click on the left, while up and down they work.
I use this configuration:

Option “Calibration” “3936 268 227 3880”
Option “SwapAxes” “0”


Thanks to those who want to help me configure the touch better