Due to current UAE airspace restrictions affecting shipments, some deliveries may be delayed. We appreciate your patience and understanding.
There's a few things everyone loves: ice cream, kittens, and honkin' large TFT screens. We're no strangers to small TFT's - from our itsy 1.14" color display that graces many-a-TFT-Feather to our fancy 3.5" 320x480 breakout screen. But most people who dabble or engineer with microcontrollers know that you sort of 'top out' at 320x480 - that's the largest resolution you can use with every day SPI or 8-bit 8080 interfaces. After that, you're in TTL-interface TFT land, where displays no longer have an internal memory buffer and instead the controller has to continuously write scanline data over a 16 or 18 or 24 pin interface.
RGB TTL interface TFT displays can get big: they start out at around 4.3" diagonal 480x272, and can get to 800x480, 800x600 or even 720x720. For displays that big, you need a lot of video RAM (800x480 at 24 bit color is just over 1MB), plenty of spare GPIO to dedicate, and a peripheral that will DMA the video RAM out to the display continuously. This is a setup familiar to people working with hefty microcontrollers or microcomputers, the sort of device that run cell phones, or your car's GPS navigation screen. But until now, nearly impossible to use on low cost microcontrollers.
The ESP32-S3 is the first low-cost microcontroller that has a built in peripheral that can drive TTL displays, and can come with enough PSRAM to buffer those large images. For example, on the Adafruit Qualia ESP32-S3 for TTL RGB-666 Displays, we use a S3 module with 16 MB of Flash and 8 MB of octal PSRAM. Using the built in RGB display peripheral you can display graphics, images, animations or even video (cinepak, natch!) with near-instantaneous updates since the whole screen gets updated every ~30FPS.
This dev board is designed to make it easy for you to explore displays that use the "secondary standard' 40-pin RGB-666 connector. This pin order is most commonly seen on square, round and bar displays. You'll want to compare the display you're using to this datasheet, if it matches you'll probably be good! One nice thing about this connector ordering is that it also includes pins for capacitive touch overlay, and we wire those up to the ESP32-S3's I2C port so you can also have touch control with your display.
Don't forget! This is just the development board, a display is not included. Use any RGB-666 pinout display with or without a touch overlay. Note that you will need to program in the driver initialization code, dimensions, and pulse widths in your programming language. Here are some known-working displays that you can use in Arduino or CircuitPython:
On the Qualia board we have the S3 modules, with 16 pins connected to the TFT for 5-6-5 RGB color, plus HSync, VSync, Data Enable and Pixel Clock. There's a constant current backlight control circuit using the TPS61169 which can get up to 30V forward voltage and can be configured for 25mA-200mA in 25mA increments (default is 25mA). Power and programming is provided over a USB C connector, wired to the S3's native USB port. For debugging, the hardware UART TX pin is available as well.
Since almost every GPIO is used, and almost all RGB-666 displays need to be initialized over SPI, we put a PCA9554 I/O expander on the shared I2C bus. Arduino or CircuitPython can be instructed on how to use the expander to reset and init the display you have if necessary. The remaining expander pins are connected to two right-angle buttons, and the display backlight.