Can't get LCD touchscreen to display Web UI

I’m new both here and to the world of Linux - after three days of frustration I have given in and I am asking for help.

I am wanting to convert an old valve radio to run Volumio - setup is Raspberry Pi Zero-w, Justboom Zero DAC, and Waveshare 3.2 inch touchscreen.

My problem is with the touchscreen and the touchscreen Volumio plugin.

The plugin only seems to talk to the HDMI output of the Raspberry PI.

I have added the following lines to /boot/config.txt

dtparam=spi=on dtoverlay=waveshare32b

Using the overlays found here;

git clone sudo cp waveshare-dtoverlays/waveshare32b-overlay.dtb /boot/overlays/waveshare32b.dtbo

On bootup the screen initialises - ie the screen goes from white to black.

The system detects the screen;

ls /dev/fb* 

The above command responds with; dev/fb0 /dev/fb1 - which as far as I understand means it is seeing both the HDMI output (fb0) and the LCD screen (fb1).

From here on I am stuck - I cannot get any display on the LCD screen. The web UI displays reliably on the HDMI output but nothing I have tried can make it switch to the LCD screen.

I have tried many reboots with the HDMI both connected and disconnected
Many and various things I have found on the net - which have resulted in having to re-flash the SD card and start again. (I can now build the system from scratch in less than ten minutes).

I have tried this command


but nothing happened

I have edited /usr/share/X11/xorg.conf.d/99-fbturbo.conf to change fb0 to fb1

Now I am stuck - well beyond the limit of my understanding. What is it I am missing ad/or not understanding?

I take some of this back - the screen has decided to work! It would seem the editing /usr/share/X11/xorg.conf.d/99-fbturbo.conf did the trick.

I now have a display by booting a clean install, installing all the drivers and editing the config files without ever plugging in a HDMI cable, it has come to life.

Sadly the touch screen does not overlay the video, I need to find out how to match/calibrate the touch screen now.

Hi. I am in the same situation as you except I have the 3.5" waveshare clone. I got the terminal to show up on my screen but I can’t seem to get the WebUI to show on my screen. What did you do to the 99-fbturbo.conf file to get it working?


Please some one make a plugin or detailed tutorial for waweshare 3.5 lcd.
I also want to use this on my setup. but i couldnt make it work on volumio.

So I got my screen to work on my Rpi B. Here is how.

  1. Install latest image of Volumio to SD card using Win32DiskImager.
  2. Connect to Ethernet cable and power on.
  3. Wait couple minutes for Volumio to setup.
  4. Using PuTTy, connect to your Volumio console either by the RPi’s IP address or by the hostname: volumio.local
  5. In the console both the username and password is: volumio
  6. Run update
sudo apt-get update
  1. Go to and follow his instructions carefully depending on the kernel version and display you have. You can check your kernel version with the following code:
sudo uname -a

Skip the touchscreen portion for now.

  1. After you finish the task, also include the following code in your /boot/config.txt

So your config.txt file should look like this EXAMPLE: dtparam=spi=on dtoverlay=waveshare35a

  1. Create a directory “xorg.conf.d” in /usr/share/X11
sudo mkdir /usr/share/X11/xorg.conf.d
  1. Create a file in this directory called “99-fbturbo.conf”
sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf
  1. In the file add this:

[code] Section “Device”
Identifier “Allwinner A10/A13 FBDEV”
Driver “fbturbo”
Option “fbdev” “/dev/fb1”

	Option "SwapbuffersWait" "true"

The “fb1” under (Option “fbdev” “/dev/fb1”) is what is telling the RPi to transmit the video to the LCD display via SPI and not the HDMI.

Save the file by ctrl+x, press y, and then enter.

  1. You have to setup the keyboard so the GUI touchsreen plugin works. Run the following codes:

sudo dpkg --configure -a sudo apt install keyboard-configuration
Select the US Keyboard or whichever you prefer and then Reboot.

sudo Reboot
  1. Connect to your Volumio web gui on your browser volumio.local and go to the settings > plugins and install the Touch Display Plugin. Activate it after installation is complete takes 5-10 minutes. If you have 70% freeze, do a google search on the solution.

  2. Afterwards reboot your volumio and your display should work.

I followed your method of installing the drivers of 3.2inch waveshare TFT LCD but all i get is a black screen after it showed white on initial reboot of raspberry pi. Please help me resolve the issue.

N.B. I am using Raspberry Pi 3 with latest version of Volumio available.

Thank you so much for this tutorial!

Latest version of the plugin installer overwrites /usr/share/X11/xorg.conf.d/99-fbturbo.conf back to the HDMI display so you have to change the display after installing it.

I’m having a problem with the touch control. it is inverted.

I am having a lot of problems getting this to work, the display works fine using one of the prebuilt images from waveshare but following the above instructions only gets the display to turn black, re-editing /usr/share/X11/xorg.conf.d/99-fbturbo.conf does appear to send the display to correct one as it stops displaying to the interface on the HDMI?

Any ideas?

Update: got the display to work, was user error, the display wont work if HDMI Is still plugged in, sadly I now have two new problems:

  1. As a similar posted above my touch screen is all inverted, on both the X and Y
    a. screen_rotate=2 Moves the screen but doesnt fix touch
    b. lcd_rotate=2 does nothing
    2 The UI is DPI or overall size is too big :confused:

Any ideas?

The above method doesn’t work on pi4… I tried it for many days. Please help me. Thank you

1 Like