Raspberry Pi 2 Model B v1.1 SPI touchscreen kiosk (480×320 ILI9486 + XPT2046) setup notes

Download and flash Raspberry Pi OS Bullseye 32-bit (armhf) oldstable image (desktop image is OK). Use Raspberry Pi Imager “Use custom” and enable SSH. Boot and verify kernel is 6.1.x:

uname -a

Install the SPI TFT driver (GoodTFT LCD-show) and apply 3.5” config:

cd ~

git clone https://github.com/goodtft/LCD-show.git

cd LCD-show

sudo ./LCD35-show

(Reboots automatically.)

Disable HDMI so only the SPI display is used. Edit /boot/config.txt and add at the end:

hdmi_blanking=2

Reboot:

sudo reboot

Remove the Raspberry Pi “Welcome / wizard” autostart if it appears:

sudo rm /etc/xdg/autostart/piwiz.desktop

Create the kiosk launch script at /home/kioski/kiosk.sh:

#!/bin/sh

xset -dpms

xset s off

xset s noblank

exec chromium-browser 

–noerrdialogs 

–disable-infobars 

–disable-session-crashed-bubble 

–disable-features=TranslateUI 

–kiosk file:///home/kioski/site/index.html

Make it executable:

chmod +x /home/kioski/kiosk.sh

Create a custom X session at /usr/share/xsessions/kiosk.desktop:

[Desktop Entry]

Name=Kiosk

Exec=/home/kioski/kiosk.sh

Type=Application

Configure LightDM to autologin as user kioski and start the kiosk session. Edit /etc/lightdm/lightdm.conf and ensure:

[Seat:*]

autologin-user=kioski

autologin-session=kiosk

Ensure the system boots into graphical target:

sudo systemctl set-default graphical.target

Verify:

systemctl get-default

(Expected: graphical.target)

Reboot:

sudo reboot

After boot, Chromium should start fullscreen on the SPI display with HDMI disabled.

To change the page shown in the kiosk, edit /home/kioski/kiosk.sh and replace the URL after –kiosk (e.g. file:///home/kioski/site/index.html or https://your-url). No reboot is required to reload content; restart Chromium:

pkill chromium