Ported a driver for a 7.84" 1280x400 bar-style IPS display

Hi Everybody.

I've been playing with this display, and it is very nice. They run down to 3.3V,
drawing only 300 mA (in my case), and can connect via Parallel, SPI, or I2C.

It has a RA8876 (gfx driver), SSD2828 (mipi bridge), GT911 cap. touch,
16MB SDRAM with DMA, font rom.

Their provided example code is written for the old 8051 MCU, and it only
demonstrates the 16-bit parallel bus connection method.

Unfortunately, they went out of stock after I bought mine and ported the Lib, but
hopefully it will return.

I ported it (poorly) to Arduino and added SPI. Mine is working at 42 MHz with fairly long jumper wires.

Product page:

https://www.buydisplay.com/spi-1280x400-7-84-ips-tft-lcd-module-with-ra8876-capacitive-touch-panel

Library:

https://github.com/caiannello/ER-TFTM0784-1

Cheers,
Craig
 
Last edited:
FYI - I ordered one of their 7" RA7786 displays.

Which shipped and is somewhere between here and there.
I believe your display was mentioned in a few other threads including: https://forum.pjrc.com/threads/58565-RA8876LiteTeensy-For-Teensy-T36-and-T40
And I believe they also did a driver for it.

This post from 2017 is asking for help with one. https://forum.pjrc.com/threads/59273-Ra8876?p=227998#post227998

In the thread you mentioned, I did try wwatson's code, and I think we were working from a very similar example code, but the displays were too different. I think the RA8876 controller is common between the two, but not the mipi bridge, which in my case requires several hundred bytes of configuration data on powerup.
 
This post from 2017 is asking for help with one. https://forum.pjrc.com/threads/59273-Ra8876?p=227998#post227998

In the thread you mentioned, I did try wwatson's code, and I think we were working from a very similar example code, but the displays were too different. I think the RA8876 controller is common between the two, but not the mipi bridge, which in my case requires several hundred bytes of configuration data on powerup.

You are right, a 10.1" display (ER-TFTM101-1) without the SSD2828 (mipi bridge) and not a 7" bar style display has many differences. My code is based on the Ra8876_Lite driver published by RAIO. Some of the code is also based on other driver examples published by RAIO, mostly the pip functions, user defined chararters and graphic cursor usage. I think the biggest thing to keep in mind is the initialization of the two devices. After that functionality of the RA8876 should be the same based on the driver code and parameters.
As @KurtE and @MJS have stated before there should be a standard API for using these displays, if possible.
It's late here and I need the ZZZ's for work tomorrow.
 
As @KurtE and @MJS have stated before there should be a standard API for using these displays, if possible.

I first tried just sticking the SSD2828 init into your lib and changing the 8876 init, but no good. I must have overlooked something.

It would be nice to combine stuff into an efficient, clean, generic library, but I know I would have trouble doing it.

The 16-bit parallel methods in my code are terrible! I don't know how to handle IO lines in parallel in a portable way, so I did it all bit-wise, effectively serializing a parallel bus!

If it were guaranteed to be for AVR only, one could do stuff like

PORTB=0xff;
uint8_t foo = PINA;

But I know that doesn't work on the Due or Teensy... at least not as-is. Maybe some of my lockdown time can go towards finding the best way.

I thought to save IO on the teensy, I might throw a little AVR on the board just to init the 2828 and free up those pins.

Stay Safe,
Craig
 
Last edited:
@caiannello - Is the SSD2828 the same one used by the Techtoys device? You have my curiosity peeked on this one. I would really like to check this out but right now with the new T4.1 and doing my work with MSC4 I probably do not have the time to work with it for a while. I wonder if there is way to create a high speed shift register that could do the 16 bit parallel addressing that is needed. And I suppose control signals. I have not had enough time to check it out. Retirement looms 6 months away:) I am not even sure if any body has the same display I have and has tested my library:)
 
Hi everybody in the thread.
I just received an email from EastRising stating the 7.84" as more or less obsolete, since the supplier if the glass (panel) CPT is out of business (bankrupt).
I asked if they expect new panels in this format / size, no answer yet.

Br Rasmus
 
the 7.84" as more or less obsolete

Dang, that is a disappointment. The panel and controller are really well-made.

I've long searched for an affordable bar-display to do a modern refresh of the
venerable old TRS-80 Model 100 laptop with a focus on sound and music,
and this one is perfect. I'm glad I bought two of them.

maxresdefault.jpg


Also, @wwatson, I don't know about the techtoys device, but here's a datasheet for the SSD2828. It supports MIPI displays with up to 4 lanes and offers parallel and SPI interfaces.
 
Just a heads up, it looks like this display is available again.

https://www.buydisplay.com/spi-1280x400-7-84-ips-tft-lcd-module-with-ra8876-capacitive-touch-panel

I've managed to get the due code from Craig running on the teency but its either long wires or timing errors as I'm getting artifacts. I too tried to use the new ra8876 library using the ssd2828 lib from Craigs but I seem to be missing something too. Ive changed the widths and heights in the registers and lib files and the sdram page splits but still treated to a black screen.
Would love to get it working. My last project used a RA8875 and Sumotoys library and that was great.
 
Note: if this display display is like the 9" RA8876 display I purchased from them, it was setup (jumper options) that you had to use an external IO pin connected to the backlight pin.

I have since then changed mine to not require that, but it then requires you to output some stuff to enable the internal PWM signal to turn on the backlight.

Our RA8876 library mentioned in other thread has setup to do so. But not sure about your display, how it works. Does it require using the ssd2828 stuff or can it talk directly to the RA8876...
 
Hi guys thanks for the replies. My display is set to use external input to drive the backlight at the moment so thats OK, and I've brought across the ssd2828 code and its initialising. I think its something to do with the display size now. Ive gone through and corrected the sizes for the ram pages ect to match that of this display. It worked well using craigs due code but as this lib you guys are working on is better for the teensy it would be great to use that.
 
Back
Top