Skip to content
Due to USPS closures related to Hurricane Milton, we will be unable to ship orders from Wednesday, Oct 8th through Thursday, Oct 9th. We will ship ASAP once USPS service is restored. Thank you for your patience!
No shipping due to USPS closures related to Hurricane Milton from Oct 8th through Oct 9th. We will ship ASAP once USPS service is restored.

RA8875 Driver Board for 40-pin TFT Touch Displays - 800x480 Max

SKU CED-1590
Sold out
Original price $34.95 - Original price $34.95
Original price
$34.95
$34.95 - $34.95
Current price $34.95

Have you gazed longingly at large TFT displays - you know what I'm talking about here, 4", 5" or 7" TFTs with up to 800x480 pixels. Then you look at your Arduino. You love your Arduino (you really do!) but there's no way it can control a display like that, one that requires 60Hz refresh and 4 MHz pixel clocking. Heck, it doesn't even have enough pins. I suppose you could move to ARM core processors with TTL display drivers built in but you've already got all these shields working and anyways you like small micros you've got.

What if we told you there was a driver chip that could fulfill those longings? A chip that can control up to 800x480 displays, and heck, a resistive touchscreen as well. All you need to give up is 5 or so SPI pins. 

The RA8875 is a powerful TFT driver chip. It is a perfect match for any chip that wants to draw on a big TFT screen but doesn't quite have the oomph (whether it be hardware or speed). Inside is 768KB of RAM, so it can buffer the display (and depending on the screen size also have double overlaying). The interface is SPI with a very basic register read/write method of communication (no strange and convoluted packets). The chip has a range of hardware-accelerated shapes such as lines, rectangles, triangles, ellipses, built in and round-rects. There is also a built in English/European font set (see the datasheet section 7-4-1 for the font table) This makes it possible to draw fast even over SPI.

The RA8875 can also handle standard 4-wire resistive touchscreens over the same SPI interface to save you pins. There's an IRQ pin that you can use to help manage touch interrupts. The touchscreen handler isn't the most precise driver we've used, so Adafruit broke out the X/Y pins so you can connect them up to something like the STMPE610 which is a nice touchscreen controller.

On the PCB we have the main chip, level shifting so you can use safely with 3-5V logic. There is also a 3V regulator to provide clean power to the chip and the display. For the backlight, we put a constant-current booster that can provide 25mA or 50mA at up to 24V. The connector to the screen is a classic '40 pin' connector. All of Adafruit's 40-pin TFT's  are known to work well. There are other 40-pin displays that have different pinouts or backlight management and these may not work - they may even damage the driver or TFT if the boost converter pushes 24V into the display logic pins! For that reason, we only recommend the displays we've tested and sell here.

Each order comes with an assembled, tested RA8875 breakout and a stick of header. You'll also need to purchase a 40-pin TFT screen. We currently have 4.3", 5.0" and 7.0" screens available.

To get you started we've written a graphics library that handles the basic interfacing, drawing and reading functions. Download the Adafruit RA8875 library from github and install as described in their tutorial. Connect a 40 pin TFT to the FPC port and wire up the SPI interface to an Arduino as described in the example code. Once started you'll be able to see the graphic/text demo and then touch the screen to 'paint'. For more advanced details on what the RA8875 can do (and it can do a lot) check the datasheet.

TECHNICAL DETAILS 

Please note! The RA8875 does not tri-state the MISO pin, it should not share that pin with any other SPI device (including an SD card reader) without the use of a 74HC125 or similar

For the level shifter we use the CD74HC4050 which has a typical propagation delay of ~10ns

Compare products

{"one"=>"Select 2 or 3 items to compare", "other"=>"{{ count }} of 3 items selected"}

Select first item to compare

Select second item to compare

Select third item to compare

Compare