Simple info on (3.5") TFT touchscreen setup

Hi folks,

I have 2 GPIO/SPI touchscreens I'm trying to get working on my 3B - running Buster (10) for OctoPi (this is not so much an OctoPi question as I have another project in mind I wanna use my other display for)

I've not had a helluva lot of luck finding concise info online, so hoping to distil a TL;RD here

I've used the Adafruit guide/script, with limited success & better luck with the GoodTFT one.

The latter actually gives me terminal output to the display (the Adafruit just a solid white screen). May need to check these again on a fresh install.

So far this is a not-to-bad result, IO to a TTY, but functionally limited, as at best I can get a res of 480x320

The intended application I need to use is OctoScreen, but (IINM) this uses a res of 640x480 (or was it 800x600?), so it scales out beyond the edges of the display.
The solution is to utilise the FrameBuffer driver to (scaled) mirror the HDMI output, and this is where I'm tripping up.

In the past, through trial & error, I've had limited success with this, so hoping someone here could help me with more a targeted & concise process for setting this up, as I've already tried a whole bunch of things that have not always worked well together & has severely muddies the waters.

Assuming that I have basic native display working (as per Adafruit/GoodTFT), what do I need to do next to:

  • get HDMI-mirroring sorted via FrameBuffer driver?
  • rescale the output to fit to the screen
  • recalibrate touch input mapped to the video output
  • Reduce resource footprint, so that means as skinny an X as I can get away with without the need for a full DE or web-browser
  • bonus - screen-saver to prevent burn-in
  • bonus#2: mapping GPIO pins on the one display
1 Like

You didn't mention whose screen it is, so I can only relate my personal experience. I tried for several weeks without success to get a waveshare screen running correctly under buster. I finally bought a screen that was advertised as 800x480 and got octoscreen running on that. It was simply a matter of defining the video setup in the xorg configuration for the 800x480. Standard video defs don't have some of the odd resolutions being sold and usually default to 640x480.

From what I can tell/read, most of these are somewhat arbitrary, being somewhat generic SPI GPIO shields.

My old 2.8" with buttons sells as XC9022 (but does not seat flush with the RPi). Not a priority right now, btu would like to re-use using lessons learnt.
My 3.5" I got via ebay, but seems analogous to a XC4631

Documentation for both outputs per goodTFT documentation seem OK.
Once I can get HDMI-mirror & scaling via (turbo)framebuffer stable (& simple), can then move onto recognising touch input & calibration.

Ideally I would also like to get better/larger screens that are simple plug&play, but restricted by availability (especially during lockdown), and cost (importing could cost as much or more as the actual product), but even then I would still like to make use of these deprecated devices for other projects I have in mind.