How to connect and program RA8875 Touch Display Driver Board for 7" Panel

RA8875 in industrial automation
May 24, 2019 by
How to connect and program RA8875 Touch Display Driver Board for 7" Panel
Boot & Work Corp. S.L., Support Team


Ethernet PLC >>>20IOS PLC >>>

GFX Library


RA 8875 Touch Display + Touch Screen

RA8875 Libraries


RA8875 >>>


RA8875 Driver for industrial control

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 mph (whether it be hardware or speed). Inside is 768 KB 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 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.

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. 

Connections of M-Duino / Ardbox PLC Family Pinout and RA8875 Pinout

M-Duino PLC Family / Ardbox PLC Family Pinout

RA8875 Pinout

RX1 (Serial 1) or using Software SerialCS
Pin3 (Some 5V pin)RESET


Programming with the Arduino IDE, if you work with the RA8875 Library, you have a wide variety of examples. For this post, we used the clock example, as you can see in the image below.

Example for program RA8875 Touch Display Driver Board for 7" Panel

Before upload the program to your M-Duino/Ardbox programmable logic controller Arduino it's necessary to change the RA8875_CS define pin by 19 (RX1), RS8875_RESET define pin by 3 (Pin 3) and change tft.begin(RA8875_800x480) by tft.begin(Adafruit_800x480, 8) from setup function. The last change is because there are different resolution configurations and this one is better for the TFT screen. 

Here you have another example that displays "Industrial Shields" in the center in green color. 
#include <SPI.h>
#include <RA8875.h>

#define RA8875_CS 19

#define RA8875_RESET 3//any pin or nothing!

RA8875 tft = RA8875(RA8875_CS, RA8875_RESET);

void setup() {
  // put your setup code here, to run once:
  tft.begin(Adafruit_800x480, 8);

  tft.setCursor(CENTER, CENTER); // tft.setCursor(X_axis, Y_axis); 
  tft.setTextColor(RA8875_GREEN); // 
  tft.println("Industrial Shields");

void loop() {
  // put your main code here, to run repeatedly: 

That's the result: