A touchscreen shield that works on an Arduino Uno usually stops working the moment you move it to a newer board, because the SPI pins are not where the old code expects them. That is the exact trap this new library removes for the Arduino UNO Q, and it matters for any student who inherited a drawer of older shields.
The pin mismatch it fixes
The Adafruit 2.8 inch TFT Touch Shield v2 (product 1947) routes its SPI lines through the 6-pin ICSP header, not through pins 11 to 13. On the UNO Q, which runs an STM32U585 core, those lines land on MOSI 23, MISO 22 and SCK 24. Developer ankur608 published an MIT-licensed library on GitHub that handles the remapping, so the display initializes without you editing a single pin define. Adafruit’s blog covered the release in a short post.
How the touch side works
The shield uses an FT6206 capacitive controller on I2C (SDA and SCL, address 0x38), and it reports touches in portrait at 240 x 320. The library’s screen.getPoint() call applies the coordinate transform for whichever rotation you set, so a tap lands where the pixel is drawn. That is the part that usually eats an afternoon, because a rotated screen with unrotated touch data sends every button press to the wrong corner.
One bundled example renders manga panels as 1-bit Floyd-Steinberg dithered images at the full 240 x 320, which is a handy test of both SPI throughput and memory use.
Build it yourself
You need an Arduino UNO Q, the TFT shield, and a USB-C cable. Clone the repo into your Arduino libraries folder, or install from the Git URL, then add the Adafruit GFX and ILI9341 driver libraries. Open File, Examples, ArduinoUnoQ_AdafruitTouch and upload the touch demo first before trying the dithered image.
- If touches register mirrored, change the rotation value from 1 to 3 before touching any wiring.
- If the screen stays white, reseat the shield; the ICSP pins need full contact.
- Thesis groups can wrap this into a kiosk or a lab control panel without buying a new display.
Grab the code from the GitHub repo and compare the Uno-class boards at circuit.rocks before you order a shield.
Frequently Asked Questions
Which SPI pins does the Arduino UNO Q use for the touch shield?
The shield’s SPI lines come from the ICSP header, which the library maps to MOSI 23, MISO 22 and SCK 24 on the UNO Q’s STM32U585 core.
What do I need to run the library?
An Arduino UNO Q, the Adafruit 2.8 inch TFT Touch Shield v2, the Adafruit GFX and display driver libraries, and the Arduino IDE. The code is MIT licensed.
What will I learn if I build this?
You learn how SPI and I2C share a shield, why touch coordinates need a rotation transform, and how to read a library’s pin mapping, all useful for capstone projects with displays.
