Connection of 3.5" display to Volumio 2.882 fails - Display shows only white screen

Volumio Information

Volumio Version: latest 2.882
Hardware:Pi 4 Model B 4 GB
DAC: none

I bought a new 3.5" screen with this technical data:

480x320 resolution
Universal 3.5” Display for the Raspberry Pi
Compatible with Raspberry Pi A, B, A+, B+, and Pi 2/3/4 versions
Powered not only from your computer but also from your portable power
Adapt for Raspbian system
LCD Interface: SPI
Touch Screen Type: Resistive
Touch Screen Controller: XPT2046
Colors: 65536
Backlight: LED

I followed the instructions given on the sellers webpage to install drivers, but these are obviously only for the Pi3. According to the seller of the display I should follow instrcutions given via a YouTube link to install drivers for the Pi4.

I tried several times to install the drivers according to the YouTube video (including several times installing, activating and uninstallinge the latest Touchscreen Plugin 1.3.0) but after installation everytime the whole Pi locks-up during reboot via shell. The display is always fully lighted white (before and after installation of the driver).

After re-consultation of the seller, they told me, that the drivers are only for the original Raspi OS (and not for Volumio) and so they can not give any support here.

According to the given YouTube link I think that I have found the original manufacturer of this display, where also the same YouTube video is linked:

In the Q&A section on that page there is also a link made to an Elecrow page for a display that seems to be similar to mine.

I have at the moment a fully fresh installation of Volumio 2.882 with no additional changes and / or drivers installed. Also the Touchscreen Plugin is not yet installed. I can connect via WIFI to Volumio and it is running. Playing MP3 files out of an attached USB stick and playing Internet Radio is also working fine via mobile.

At the moment I am currently lost on how I can get the display to show the Volumio GUI. Can anyone support me on this on what to do now?

Here is the link to the original seller:

Link to the YouTube video for the installation of Pi4 drivers:

The YouTube link is directly above your posting :slight_smile:

1 Like

Try the following steps:

  1. Install the Touch Display plugin.

  2. Connect to Volumio via SSH.

  3. Download the display specific overlay:


  1. Copy the overlay to “/boot/overlays/tft35a.dtbo”:

sudo cp tft35a-overlay.dtb /boot/overlays/tft35a.dtbo

  1. Open “boot/userconfig.txt”:

nano /boot/userconfig.txt

  1. Add the following lines:

It could be necessary to add a rotation value to the overlay later on.

  1. Save “/boot/userconfig.txt” by typing Ctrl+x then y and Enter.

  2. Download “99-calibration.conf-35-0” as it might be necessary to calibrate the screen:


The data in these kind of files depends on the particular screen and without having more details of your display the values might fit your screen… or not :wink:

  1. Copy “99-calibration.conf-35-0” to “/etc/X11/xorg.conf.d/99-calibration.conf”:

sudo cp 99-calibration.conf-35-0 /etc/X11/xorg.conf.d/99-calibration.conf

  1. Reboot.

Edit: Corrected step 4 according to post #15.

1 Like

At which point I should connect the display, right before 1 or somewhere in between?

The display can be connected from the beginning. Otherwise at step 10 instead of rebooting you would have to power off, connect the display and power on .

1 Like

When connecting the display to the Pi4 the GUI of Volumio is no longer reachable via mobile.I will now try the points mentioned above.

Is that on fresh Volumio installation?

1 Like

yes, but SSH access is still possible.

EDIT: Sorry, SSH access is not possible (IP is no longer shown in Putty).

I will again try to setup another fresh installation, because once the Pi is frozen I am not able to connect to the Pi again.

EDIT2: Again sorry, after some minutes of waiting the Pi is accessible again via SSH and mobile :slight_smile:

After the first boot make sure to wait long to enough so the data partition can fully expand before you proceed with installing further software.

OK, should I only install the TouchDisplay Plugin or also activate it in point 1)?

Activating the plugin would not damage anything but OTOH you would not have an image anyway at this stage so you may leave it disabled and enable it after step 10.

In Step 4 I get the following message:

cp: cannot stat ‘tft35a.dtb’: No such file or directory

Ah, my bad. Command has to be

sudo cp tft35a-overlay.dtb /boot/overlays/tft35a.dtbo

After attaching the display (after “shutdown -h now” in step 10) and activating the TouchDisplay Plugin the screen is now no longer white but only the backlight of the display is on.

What to do now?

1 Like

Please post the result of

cat /var/log/Xorg.0.log

volumio@t:~$ cat /var/log/Xorg.0.log
[ 58.919]
X.Org X Server 1.18.4
Release Date: 2016-07-19
[ 58.919] X Protocol Version 11, Revision 0
[ 58.919] Build Operating System: Linux 4.4.26-v7+ armv7l Raspbian
[ 58.919] Current Operating System: Linux t 4.19.118-v7l+ #1311 SMP Mon Apr 2 7 14:26:42 BST 2020 armv7l
[ 58.919] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 cma=64M bcm27 08_fb.fbwidth=640 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 smsc95xx.macaddr=E 4:5F:01:2A:9F:74 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 splash q uiet plymouth.ignore-serial-consoles dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable =1 dwc_otg.fiq_fsm_mask=0xF dwc_otg.nak_holdoff=1 console=ttyS0,115200 kgdboc=tt yS0,115200 console=tty1 imgpart=/dev/mmcblk0p2 imgfile=/volumio_current.sqsh ele vator=noop rootwait bootdelay=5 logo.nologo vt.global_cursor_default=0 loglevel= 0 snd-bcm2835.enable_compat_alsa=1 snd_bcm2835.enable_headphones=1
[ 58.919] Build Date: 11 November 2016 11:59:59AM
[ 58.919] xorg-server 2:1.18.4-2+rpi1 (Debian -- Support)
[ 58.919] Current version of pixman: 0.32.6
[ 58.919] Before reporting problems, check
to make sure that you have the latest version.
[ 58.919] Markers: (–) probed, () from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 58.920] (==) Log file: “/var/log/Xorg.0.log”, Time: Fri Jun 18 13:43:47 202 1
[ 58.923] (==) Using config directory: “/etc/X11/xorg.conf.d”
[ 58.923] (==) Using system config directory “/usr/share/X11/xorg.conf.d”
[ 58.930] (==) No Layout section. Using the first Screen section.
[ 58.930] (==) No screen section available. Using defaults.
[ 58.930] (
) |–>Screen “Default Screen Section” (0)
[ 58.930] () | |–>Monitor “”
[ 58.933] (==) No device specified for screen “Default Screen Section”.
Using the first device section listed.
[ 58.933] (
) | |–>Device “Allwinner A10/A13 FBDEV”
[ 58.933] (==) No monitor specified for screen “Default Screen Section”.
Using a default monitor configuration.
[ 58.933] (==) Automatically adding devices
[ 58.933] (==) Automatically enabling devices
[ 58.933] (==) Automatically adding GPU devices
[ 58.937] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 58.938] (WW) The directory “/usr/share/fonts/X11/cyrillic” does not exist.
[ 58.938] Entry deleted from font path.
[ 58.940] (==) FontPath set to:
[ 58.940] (==) ModulePath set to “/usr/lib/xorg/modules”
[ 58.940] (II) The server relies on udev to provide the list of input devices .
If no devices become available, reconfigure udev or disable AutoAddDevic es.
[ 58.940] (II) Loader magic: 0x666f20
[ 58.940] (II) Module ABI versions:
[ 58.940] X.Org ANSI C Emulation: 0.4
[ 58.940] X.Org Video Driver: 20.0
[ 58.940] X.Org XInput driver : 22.1
[ 58.940] X.Org Server Extension : 9.0
[ 58.941] (–) using VT number 2

[ 58.941] (II) systemd-logind: logind integration requires -keeptty and -keep tty was not provided, disabling logind integration
[ 58.942] (II) no primary bus or device found
[ 58.943] (II) LoadModule: “glx”
[ 58.944] (II) Loading /usr/lib/xorg/modules/extensions/
[ 58.982] (II) Module glx: vendor=“X.Org Foundation”
[ 58.982] compiled for 1.18.4, module version = 1.0.0
[ 58.982] ABI class: X.Org Server Extension, version 9.0
[ 58.982] (==) AIGLX enabled
[ 58.982] (II) LoadModule: “fbturbo”
[ 58.983] (II) Loading /usr/lib/xorg/modules/drivers/
[ 58.985] (II) Module fbturbo: vendor=“X.Org Foundation”
[ 58.985] compiled for 1.18.4, module version = 0.5.1
[ 58.985] Module class: X.Org Video Driver
[ 58.985] ABI class: X.Org Video Driver, version 20.0
[ 58.985] (II) FBTURBO: driver for framebuffer: fbturbo
[ 58.987] (WW) Falling back to old probe method for fbturbo
[ 58.987] (II) Loading sub module “fbdevhw”
[ 58.987] (II) LoadModule: “fbdevhw”
[ 58.987] (II) Loading /usr/lib/xorg/modules/
[ 58.988] (II) Module fbdevhw: vendor=“X.Org Foundation”
[ 58.988] compiled for 1.18.4, module version = 0.0.2
[ 58.988] ABI class: X.Org Video Driver, version 20.0
[ 58.988] (II) FBTURBO(0): using /dev/fb0
[ 58.988] (II) FBTURBO(0): Creating default Display subsection in Screen sect ion
“Default Screen Section” for depth/fbbpp 24/32
[ 58.988] (==) FBTURBO(0): Depth 24, (==) framebuffer bpp 32
[ 58.988] (==) FBTURBO(0): RGB weight 888
[ 58.988] (==) FBTURBO(0): Default visual is TrueColor
[ 58.988] (==) FBTURBO(0): Using gamma correction (1.0, 1.0, 1.0)
[ 58.988] (II) FBTURBO(0): hardware: BCM2708 FB (video memory: 1200kB)
[ 58.988] () FBTURBO(0): Option “fbdev” “/dev/fb0”
[ 58.988] (
) FBTURBO(0): Option “SwapbuffersWait” “true”
[ 58.989] (II) FBTURBO(0): processor: Unknown
[ 58.989] (II) FBTURBO(0): checking modes against framebuffer device…
[ 58.989] (II) FBTURBO(0): checking modes against monitor…
[ 58.989] (–) FBTURBO(0): Virtual size is 640x480 (pitch 640)
[ 58.989] () FBTURBO(0): Built-in mode “current”
[ 58.989] (==) FBTURBO(0): DPI set to (96, 96)
[ 58.989] (II) Loading sub module “fb”
[ 58.989] (II) LoadModule: “fb”
[ 58.990] (II) Loading /usr/lib/xorg/modules/
[ 58.994] (II) Module fb: vendor=“X.Org Foundation”
[ 58.994] compiled for 1.18.4, module version = 1.0.0
[ 58.994] ABI class: X.Org ANSI C Emulation, version 0.4
[ 58.994] (==) Depth 24 pixmap format is 32 bpp
[ 59.007] (II) FBTURBO(0): using backing store heuristics
[ 59.013] (II) FBTURBO(0): can’t load ‘g2d_23’ kernel module
[ 59.013] (II) FBTURBO(0): failed to enable the use of sunxi display controll er
[ 59.013] (II) FBTURBO(0): No sunxi-g2d hardware detected (check /dev/disp an d /dev/g2d)
[ 59.013] (II) FBTURBO(0): G2D hardware acceleration can’t be enabled
[ 59.013] (II) FBTURBO(0): enabled fbdev copyarea acceleration
[ 59.013] (==) FBTURBO(0): Backing store enabled
[ 59.019] (==) FBTURBO(0): DPMS enabled
[ 59.019] (II) FBTURBO(0): failed to enable hardware cursor
[ 59.019] (II) FBTURBO(0): no 3D acceleration because the driver has been com piled without libUMP
[ 59.019] (II) FBTURBO(0): if this is wrong and needs to be fixed, please che ck ./configure log
[ 59.020] (==) RandR enabled
[ 59.036] (II) SELinux: Disabled on system
[ 59.039] (II) AIGLX: Screen 0 is not DRI2 capable
[ 59.039] (EE) AIGLX: reverting to software rendering
[ 59.664] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[ 59.665] (II) AIGLX: Loaded and initialized swrast
[ 59.665] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 59.809] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/inp ut/event0)
[ 59.809] (
) ADS7846 Touchscreen: Applying InputClass “libinput touchscreen catchall”
[ 59.809] () ADS7846 Touchscreen: Applying InputClass “Touch rotation”
[ 59.809] (
) ADS7846 Touchscreen: Applying InputClass “calibration”
[ 59.809] (II) LoadModule: “libinput”
[ 59.810] (II) Loading /usr/lib/xorg/modules/input/
[ 59.828] (II) Module libinput: vendor=“X.Org Foundation”
[ 59.828] compiled for 1.18.4, module version = 0.20.0
[ 59.828] Module class: X.Org XInput Driver
[ 59.828] ABI class: X.Org XInput driver, version 22.1
[ 59.828] (II) Using input driver ‘libinput’ for ‘ADS7846 Touchscreen’
[ 59.828] () ADS7846 Touchscreen: always reports core events
[ 59.828] (
) Option “Device” “/dev/input/event0”
[ 59.828] () Option “_source” “server/udev”
[ 59.829] (II) input device ‘ADS7846 Touchscreen’, /dev/input/event0 is tagge d by udev as: Touchscreen
[ 59.829] (II) input device ‘ADS7846 Touchscreen’, /dev/input/event0 is a tou ch device
[ 59.860] (
) Option “config_info” “udev:/sys/devices/platform/soc/fe204000. spi/spi_master/spi0/spi0.1/input/input0/event0”
[ 59.860] (II) XINPUT: Adding extended input device “ADS7846 Touchscreen” (ty pe: TOUCHSCREEN, id 6)
[ 59.860] () Option “AccelerationScheme” “none”
[ 59.860] (
) ADS7846 Touchscreen: (accel) selected scheme none/0
[ 59.860] () ADS7846 Touchscreen: (accel) acceleration factor: 2.000
[ 59.860] (
) ADS7846 Touchscreen: (accel) acceleration threshold: 4
[ 59.861] (II) input device ‘ADS7846 Touchscreen’, /dev/input/event0 is tagge d by udev as: Touchscreen
[ 59.861] (II) input device ‘ADS7846 Touchscreen’, /dev/input/event0 is a tou ch device
[ 59.861] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/inp ut/mouse0)
[ 59.861] (**) ADS7846 Touchscreen: Applying InputClass “calibration”
[ 59.861] (II) No input driver specified, ignoring this device.
[ 59.861] (II) This device may have been added with another device file.

Volumio again not reachable via mobile . . .
SSH access is possible (although no IP is shown in Putty) as I can swith between different directories via Putty.

EDIT: And again only after a few minutes of waiting, Volumio GUI is available again via my mobile

Please post the output of

ls -al /usr/share/X11/xorg.conf.d

ls -al /etc/X11/xorg.conf.d

Yesterday the system did not allowed me to make additional postings but I was able to send one additional PM.

I am now posting my answer here in the thread so that maybe also other users have a benefit of the conversation:

volumio@t:~$ ls -al /usr/share/X11/xorg.conf.d
total 32
drwxr-xr-x 2 root root 4096 Jun 18 13:20 .
drwxr-xr-x 1 root root 4096 Jun 18 13:21 …
-rw-r–r-- 1 root root 1350 Nov 11 2016 10-quirks.conf
-rw-r–r-- 1 root root 788 Sep 30 2016 40-libinput.conf
-rw-r–r-- 1 root root 2747 Oct 28 2016 70-wacom.conf
-rw-r–r-- 1 root root 607 Dec 7 2016 99-fbturbo.conf

volumio@t:~$ ls -al /etc/X11/xorg.conf.d
total 24
drwxr-xr-x 2 root root 4096 Jun 18 14:20 .
drwxr-xr-x 1 root root 4096 Jun 18 13:23 …
-rw-r–r-- 1 root root 316 Jun 18 14:20 95-touch_display-plugin.conf
-rw-r–r-- 1 root root 204 Jun 18 13:34 99-calibration.conf

I was also asked to send the output for:

cat /usr/share/X11/xorg.conf.d/99-fbturbo.conf

This is the output that I got:

volumio@t:~$ cat /usr/share/X11/xorg.conf.d/99-fbturbo.conf

This is a minimal sample config file, which can be copied to

/etc/X11/xorg.conf in order to make the Xorg server pick up

and load xf86-video-fbturbo driver installed in the system.

When troubleshooting, check /var/log/Xorg.0.log for the debugging

output and error messages.

Run “man fbturbo” to get additional information about the extra

configuration options for tuning the driver.

Section “Device”
Identifier “Allwinner A10/A13 FBDEV”
Driver “fbturbo”
Option “fbdev” “/dev/fb0”

    Option          "SwapbuffersWait" "true"


@gvolt: No need to answer on my PM above, just put the following replies directly here in the thread so that other users can make use of it.

Thanks for your help up to now :slight_smile:

In “/usr/share/X11/xorg.conf.d/99-fbturbo.conf” try changing the line

Option "fbdev” “/dev/fb0"


Option "fbdev" "/dev/fb1"

Then disable and re-enable the Touch Display plugin.