Raspberry Pi Pico + ILI9341
SPI0 driving a 2.8" ILI9341 with XPT2046 touch.
At a glance
| Maker | Generic |
| MCU | RP2040 (Pico / Pico W) Cortex-M0+ dual-core @ 133 MHz, 264 KB SRAM |
| Display | Ilitek ILI9341, 240 x 320 px, SPI (4-wire serial), 16-bit colour |
| Touch | XPTek XPT2046 (resistive, SPI) |
| Backlight | GPIO 22, dimmable (PWM) |
| PSRAM | No |
| Graphics library | TFT_eSPI |
Display pins
ILI9341 on SPI (4-wire serial): SPI clock 30 MHz, host VSPI, BGR colour order, inversion off.
| Signal | Pin |
|---|---|
| SCK / CLK | GPIO 18 |
| MOSI / SDA | GPIO 19 |
| MISO / SDO | GPIO 16 |
| CS | GPIO 17 |
| DC / RS | GPIO 20 |
| RESET | GPIO 21 |
| Backlight | GPIO 22 |
Touch pins
XPT2046: 2000 kHz, shares the display bus.
| Signal | Pin |
|---|---|
| SCK | GPIO 18 |
| MOSI | GPIO 19 |
| MISO | GPIO 16 |
| CS | GPIO 15 |
| IRQ / PENIRQ | GPIO 14 |
Check your revision. Only 264 KB of RAM - keep the LVGL draw buffer at roughly 1/10 screen.
Designing for it in LCD Wizard
- Choose Raspberry Pi Pico + ILI9341 on the Hardware tab (or use the button above) and every pin on this page is filled in. The export writes the sketch,
lcd_pins.h, the TFT_eSPI configuration,lv_conf.handplatformio.ini- a project that builds for this board as it comes. - The XPT2046 is resistive and reads through its library; set its raw range on the Touch tab.
- The backlight is dimmable: give a slider or a button a Set backlight action.
- Screens are designed for 240 x 320 px in either orientation, with LVGL 9 or LVGL 8.
The parts
ILI9341. The most common hobby TFT. 2.2"-2.8" modules, usually with an XPT2046 resistive panel.
XPT2046. The classic 4-wire resistive controller. Needs calibration. Can share the display SPI bus with its own CS.
RP2040 (Pico / Pico W). PIO can drive an 8-bit parallel bus. Limited RAM - use a small partial draw buffer.
TFT_eSPI. Fastest for SPI panels on ESP32. Configured via User_Setup.h build defines.
Designs for this board
Nobody has published a design for this board yet. Publish yours from the designer and it appears here and in the gallery.
Similar boards
Next
- Quick start - from an empty screen to firmware on the board
- Boards and displays - presets, controllers, pins and touch in the designer
- Flashing and configuration - PlatformIO, the Arduino IDE and first-boot checks
- Troubleshooting - a white screen, mirrored image or touch that misses