No description
Find a file
2026-04-12 12:42:42 +02:00
20-noglamor.conf Create 20-noglamor.conf 2025-10-25 01:05:34 +02:00
45-evdev.conf Update 45-evdev.conf 2025-10-16 20:05:29 +02:00
99-calibration.conf Create 99-calibration.conf 2025-10-16 20:08:07 +02:00
99-fbdev.conf first commit 2025-10-16 18:28:01 +02:00
add_startx.txt Create add_startx.txt 2025-10-27 14:49:20 +01:00
cmd_ext.txt Create cmd_ext.txt 2025-10-25 22:35:18 +02:00
cmdline.txt first commit 2025-10-16 18:28:01 +02:00
config.txt first commit 2025-10-16 18:28:01 +02:00
config35.txt Create config35.txt 2025-10-17 19:12:06 +02:00
configmhs35.txt added support for MHS35 display (touchpad not tested) 2026-03-04 18:45:22 +01:00
console-setup Create console-setup 2025-10-16 21:46:41 +02:00
install.sh Update install.sh 2026-03-06 23:24:43 +01:00
install35.sh Update install35.sh 2026-03-06 23:25:15 +01:00
installmhs35.sh Update installmhs35.sh 2026-03-06 23:26:07 +01:00
LICENSE Create LICENSE 2025-10-26 12:19:01 +01:00
mhs35-overlay.dtb added support for MHS35 display (touchpad not tested) 2026-03-04 18:45:22 +01:00
rc.local first commit 2025-10-16 18:28:01 +02:00
README.md Update README.md 2026-04-12 12:42:42 +02:00
restore.sh some updates 2025-10-24 14:58:22 +02:00
waveshare32b.dtbo first commit 2025-10-16 18:28:01 +02:00
waveshare35a.dtbo Include 3.5 inch display 2025-10-17 16:25:16 +02:00

Waveshare 3.2 / 3.5 inch TFT GPIO (and clones) driver for Raspberry PI Zero to 5 on Debian 13 Trixie

works in text console, desktop and KlipperScreen.

Tested on Pi 1 to Pi 5, including Zero W and Zero2 W.

Prequisites:

Install the latest image via Raspberry Pi Imager
Update the system
sudo apt update && sudo apt upgrade -y
Modify the settings to your taste with sudo raspi-config
Wayland does not work! You have to select X11. If you are using the desktop, remember to set boot to comand line in raspi-config. Desktop autostart does not work at this moment. Start the desktop with startx as user pi, not root! After that, you may select "boot to Desktop" inside the config menu. If this does not work for you, look under Issues for a workaround.

Install

sudo apt install git

git clone https://github.com/katzenjens/lcd32.git

cd lcd32

for 3.2 or 2.8 inch tft (320 x 240 px):

./install.sh

for 3.5 inch tft (480 x 320 px):

./install35.sh

restore to defaults

./restore.sh

Issues:

Desktop Autostart not working:

On some older Pi's I had issues booting to desktop. So I started with autoboot into command line. You can start the desktop from there with startx which sometimes is not practical. So I included a little snippet for .profile for the user pi. On the command line while in the lcd32 directory, type
cat add_startx.txt >> ~/.profile
to include startx at startup.

320 x 240 px 2.4 and 2.8 inch tft

Desktop is not recommended for these type of displays since some windows are not fully accessible. Not even setting defaults for small displays. Bummer...

Display and Touchscreen Rotation

Display rotation can be found here: /boot/firmware/config.txt
For 3,5 inch display
dtoverlay=waveshare35a:rotate=0 Portrait
dtoverlay=waveshare35a:rotate=90 Landscape
dtoverlay=waveshare35a:rotate=180 Inverted Portrait
dtoverlay=waveshare35a:rotate=270 Inverted Landscape
Touchscreen Rotation can be found here: /usr/share/X11/xorg.conf.d/40-libinput.conf
Inside the file search for Identifier "libinput touchpad catchall" and add a line
Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"
to rotate 90°
or
Option "TransformationMatrix" "-1 0 1 0 -1 1 0 0 1"
to rotate 180°
or
Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
to rotate 270°

For 2,4 to 3,2 inch displays (320x240) try similar tweaks. Your mileage may vary since sometimes displays are orientated landscape or portrait. Try the tweaks above until everything works.


Subpixel issue

User blu006 has a solution in case display rotation in desktop mode does not work accordingly:

Subpixel rendering is different when the display is rotated. I have tested this with the display rotated 180.

in the file ~/.config/lxsession/rpd-x/desktop.conf

I assume subpixel rendering should be the default sXft/RGBA=rgb at 0 sXft/RGBA=vrgb at 90 ? sXft/RGBA=bgr at 180 (tested) and sXft/RGBA=vbgr at 270?