5" TFT LCD 800x480 choice

Status
Not open for further replies.

Manu

Well-known member
Hello,

I'm currently think about a dashboard I want to make using Teensy. I found this screen :
http://www.buydisplay.com/default/5-inch-tft-lcd-module-800x480-display-controller-i2c-serial-spi

After some research it seem that there is an optimized library for RA8875 chipset fitted on this screen : https://github.com/sumotoy/RA8875

But I'm unsure about what i have to order here.

My guess :
Interface : Pin Header Connection - 4 wire SPI
Power Supply : VDD 3.3V
Touch Panel : this is not something that I really need, but if I fit one, user should use it with gloves. So Resistive or Capacitive ?
MicroSD card Interface : Pin Header Connection

Font Chip : Here is my best guess :confused: Is this something that I really need to have ?

Thank for any support you can give.
Regards,
Manu
 
The RR8875 chip has a known bug where it does not tristate MISO, which makes sharing SPI with anything else difficult. Plan on adding a buffer chip if you use the SD card together with this display.

Generally the resistive touch is easier, but capacitive is better. There's an old thread on this forum where people got this display's cap touch mostly working...
 
Thanks for this advice.

Is there a better choice than this screen with same characteristics (5" 800x480) ?

Regards,
Manu
 
Manu, you're from the MSExtra forum right? If so I understand your context. Pull data via CAN from a Megasquirt and then display it to use as a dashboard correct?
 
Hy R.

That's correct. But the main goal is to make a dash that will talk to many ECU, not only MS (+some features).
I've tried an eastrising 5" LCD with RA8875 and sumotoy library, but I fried my 3.1 Teensy (3.3V regulator). Just before the crash, I have some results on the screen and what I notice is :
- poor contrast
- slow (with sumotoy examples and teensy @ 72Mhz)

I'm currently waiting for some 3.2 teensy's and a lab supply to continue tests, but from my first tests I'm not sure this screen/chipset can be used.

I'm thinking about driving this screen using the available parallel interface, it may be more powerful. I'm also looking for an OLED 5" screen but it's hard to find...

Also, the final goal is to develop a dash that Fenixecu will sell.

Regards,
Manu
 
Last edited:
Hy R.

That's correct. But the main goal is to make a dash that will talk to many ECU, not only MS (+some features).
I've tried an eastrising 5" LCD with RA8875 and sumotoy library, but I fried my 3.1 Teensy (3.3V regulator). Just before the crash, I have some results on the screen and what I notice is :
- poor contrast
- slow (with sumotoy examples and teensy @ 72Mhz)

I'm currently waiting for some 3.2 teensy's and a lab supply to continue tests, but from my first tests I'm not sure this screen/chipset can be used.

I'm thinking about driving this screen using the available parallel interface, it may be more powerful. I'm also looking for an OLED 5" screen but it's hard to find...

Also, the final goal is to develop a dash that Fenixecu will sell.

Regards,
Manu

I would not give up on it quite yet. These displays use a lot of power and it is probably too much for the internal 3.3 regulator on the teensy. I would definitely try it with an external regulator capable of handling more current before giving up.

Sumotoys library is pretty fast but depending on what you are trying to display and how fast it needs to be the ra8875 might not be fast enough. It will never be capable of fast entire screen rewrites for example.
 
These displays use a lot of power and it is probably too much for the internal 3.3 regulator on the teensy.

Yes I know. Teensy 3.1 output is rated for 100mA while screen consumption is about 450mA. This is not what happen here, I was aware about this before doing any test. Teensy had simply get 12V instead of 5Vmax at Vin pin due to a fail power...
 
manu,
RA8875 has hardware accellerated graphic primitives, 2 layers, internal font handling and it's damn fast, cannot believe when you say 'it's slow'. Using layers and primitives combination I can get 470 bars for a spectrum analyzer in real time and without hog CPU, at the time I write this I don't know any other chip that can drive display at that size, trough SPI, that perform like that.
RA8875 was designed to work at 12Mhz SPI, my library use almost all the time 20Mhz (thanks to Paul's SPI Transaction where I can modulate SPI speed), even so it's enough fast for any type of GUI and it's comparable in speed to some Teensy 3 optimized SPI libraries for displays much smaller!
But RA8875 is not a framebuffer champion, send images is slow, this is why it has a second SPI internally connected to a optional flash that can use DMA, at the end it's a quality Korean chip not a chinese crust.
I have good contrast with almost any display here but all external powered, maybe chinese changed TFT in the meantime?
What model you have? Most Eastrising have 3V3 regulator onboard and sent to work at 5V until you touch voltage jumper...

There's a some of 5" works at 16bit GPO, but you will use almost any Teensy pins (and probably most of your CPU memory) just to drive a display! Even RA8875 can work at 16bit and it's really fast as framebuffer.
 
Hello Sumotoy,

Thanks for all the efforts you put in this library. I should get a labo supply today and will complete tests with this screen. This is an eastrising 5" 800x480 (ER-TFTM050-3) with capacitive touchscreen. I also have the optional flash but didn't weld it on the board now. I didn't find the way to program it before sold it, has specified on the net.

But because this screen will be part of a dashboard project, I think that even if it fit the display rate speed, it will fail the contrast challenge...

This is what could be the GUI :
afficheur_fenixecu.png


Because it have to be readable in full daylight, it seem that the screen should get a 1000cd/m² ratio, when eastrising have only 300cd/m².

Future tests will state the truth.
Regards,
Manu
 
Last edited:
Looks like an automotive application, to get somethink readable in daylight you need a strong contrast screen and probably a polarized filter.
Consider that many automotive display's uses custom-shaped contents.
Eastrising, as far I know, uses random TFT to build their screen, lately the changed displays and now mine are old, cannot say what they are currently use. I've recently buy an Adafruit RA8875 board and display for a friend and display was very old, backlight was ok but contrast even worst than eastrising, if you have knoledge of create PCB and solder smd you may create your board with a RA8875 and an high contrast display, the chip holds almost 90% of the needed parts.
About graphics...
RA8875 has layers so you can use a trick to get a nice looking colored bar responsive but you should design display in order to use as much as possible the primitive hardware accellerated of the chip.
In particular, you should able to draw a black/white mask on top layer as fast as possible that cover/reveal the colored bar!
You can even import a picture created by photoshop or similar as colored bar, then apply layers and create over the bars a shape that covers/reveal dinamically the part of the bar (on the top layer), see some of the library examples.
But you should take in mind that you have to use accellerated primitives for the mask, so the bar shape on the picture it's not the best example since it has angled solid, this needs many calls to fill rectangle, if you can reduce calls you can have very fast display, remember that the underground layer can be very complex and will remain untouched, with this in mind you can design your guy using layers (at the end, an old school trick!).
For text, the fast way is use the internal chip fonts but will not looks as good as in picture if you scale them.
About backlight...
Most display driver doesn't take care about backlight but RA was clearly designed for GUI, it has a matrix logic for switches, support for resistive touch, internal fonts, support for external font ROM and support for external Flash EEPROM and... 2 pwm channels. In any display design I have see (adafruit and eastrising) one of this channel is connected to a mosfet and drive display backlight by using PWM to save current, I'm actually hve a command for that but maybe you can play with PWM divisor to get more pump for PWM, this can affect a lot the brightness.
Remember that backlight it's hudge in display as big, can suck a lot of current!
 
Last edited:
Hello Sumotoy,

I rebuild a bench test today with teensy 3.2 and a real power supply. All work fine and I can use all your example. So I load "benchmark.ino" and was disappointed to get those results (repeatable over many reboot) :

screen:800x480 - rotation:2
Benchmark = Time (microseconds) / Reference on wiki with the same screen / %Slower than reference
Screen fill = 20999 / 8320 / 252
Test Pixel = 49 / 49 / 100
Test Pixels = 32938 / 32368 / 102
Text = 2486013 / 3193 / 77858 !!!
Lines = 4494002 / 5443 / 8255
Horiz/Vert Lines = 5376001 / 40208 / 13370
Rectangles (outline) = 1680003 / 137108 / 1225
Rectangles (filled) = 1680000 / 137025 / 1226
Circles (filled) = 172236 / 109861 / 157
Circles (outline) = 168016 / 108242 / 155
Triangles (outline) = 987004 / 14215 / 6943
Triangles (filled) = 965997 / 34555 / 2796
Rounded rects (outline) = 9870000 / 96959 / 10180
Rounded rects (filled) = 9869998 / 487786 / 2023

There is a big difference !!! Is this because I use a 74HC125 ? Bench use teensy @ 96Mhz. I also use 0.79b11p10 branch

Here a test :
https://youtu.be/Wd_Fu1xgbQ0

Thanks,
Manu
 
Last edited:
Hello Max,

I switched back to rev 0.70 of your library and thing are really fast now. Thanks !!!

Results are :

screen:800x480 - rotation:2
Benchmark Time (microseconds)
Screen fill 8346
Test Pixel 49
Test Pixels 33303
Text 11676
Lines 61344
Horiz/Vert Lines 49643
Rectangles (outline) 139449
Rectangles (filled) 139452
Circles (filled) 112389
Circles (outline) 110746
Triangles (outline) 15410
Triangles (filled) 36187
Rounded rects (outline) 110803
Rounded rects (filled) 501982

Close to your wiki page, and really fast !!

Thanks !!!
 
Last edited:
Hi Manu,
witch pin are you using?
are you running the benchmark unmodified example?
timings looks really weird, looks like something wrong for the 0.79, it should be overall faster!
 
I'm using MISO(12) , MOSI(11), SCLK(13), CS(10) and RESET (9) with a 74HC125 to isolate RA8875 chipset (as per your wiki). Wires are shorts (less than 5cm) and all connections are solders. Power supply is a lab one that can output 5A.

FYI, Teensy + CAN shield + display draw 0.51A.

And yes, even if the second benchmark run better, there is still microseconds to gain to get scores you had. There is still a big difference in Text Bench and Line.

Benchmark.ino come from your 79b10p11 library, without any modifications.

I didn't make videos of benchmark, but get 2 from the same sketch :

0.79b11 :
https://youtu.be/Wd_Fu1xgbQ0

0.70 :
https://youtu.be/PAeH78E3wCk
 
Last edited:
Did you have any other SPI device sharing SPI lines? If so, can point me to the other libraries are you using? I've checked here 0.79b11 and run fast.
 
Hello Max,

I don't have any other spi device on the bench. Here are video made with the same hardware. I just switch libraries from 0.70 to 0.79. Teensy@96Mhz. Benchmark.ino from 0.79 without any modification

0.70 :
https://youtu.be/1mFtdsmU57M

0.79 :
https://youtu.be/NAq7Ii3efX0

Maybe there is something to modify in 0.79 library ?
Bests,
Manu
 
Last edited:
I'm not sure if this will help since it sounds like you are not using different hardware for your two library tests, but I observed that same low speed as in your video when I powered the 74HC125 with 3.3V. The speed went up to normal when I powered with 5V. My display is the ER-TFTM050-3 but with the 5V option.
 
Manu,
don't think it's something related to SPI in new library, there's too much difference! Looks like SPI falled down to 1Mhz.
sandalhat, you can be right, it's happened time ago. I even drived the RA8875 logic without VCC, just using pullup resistors current trough SPI, sound strange but worked, of course not fast and with artifacts.
I'm pretty busy release TFT_ILI9163C but promise I will look this week to this.
 
Hello Max,

I started my project and questions comes !

I first draw my logo. As it is simple, I use fillQuad and some other commands to draw the logo. But I can't imagine how to decompose theses 2 characters (C and U). Do you have an idea about this ?
CU.png


Also, the looking of standard characters when they are scaled isn't so good than what I need to display. So I plan to make a custom FLASH (winbond128M) with characters describes as a picture and call them one by one when needed. Do you ever try to use it ? Is it fast ?

Or do you have an another trick I can use to get custom big fonts that display fast ?

Regards,
Manu
 
Last edited:
Has anyone tried the SPI clock speedup from this thread? - linking to my post - worked for me on ILI9341 (with SPI Touch) and the sumotoy TFT_ILI9163C [up to 120 MHz OC] - and SPI runs much faster - FPS update takes less time or is over 50% faster.
 
I tried to set teensy at 120Mhz & 144Mhz, just in arduino IDE, and I didn't find a big difference. 120Mhz is slower and 144Mhz is a little bit faster. I didn't use what's explain in your post because I also notice that CANbus (flexCAN) miss some messages when I set Teensy speed higher than 96Mhz. At the moment I focus on graphics rendering to get a working code. When this will be OK I may spend time on speed optimization.

What I deal with right now is to get a bargraph gauge like this :

bargraph.png


I attempt to get the better code to display it, driven with RPM information grab from the CAN bus. But due to non-linear area of the graph, I get a headache :)

I would use fillRectangle for each mark as this command is fast.
 
Hello Max,

Today I shorter all wires between Teensy/74HC125/RA8875. No changes in scores when I use 0.79b11, it's still slow. Just for you to know.

Regards,
Manu
 
Status
Not open for further replies.
Back
Top