I am getting tired of slow display updates on my Arduino projects (even with ESP32 boards). The fundamental problem is the primitive APIs that result in the microcontroller having to send every pixel at full color depth. I can't find any displays with chips that support any form of acceleration. Simple things like clear screen, fill, draw line, write text, etc should be simple primitives between the microcontroller and the display. There also doesn't seem to be a way to have the display tied to memory, nor be able to manipulate the memory while the display is showing the old rendering then switch immediately. When I look at commercial products like my car display, I don't see any lag or evidence of a slow connection. I can flip between screens immediately. What am I missing and how can I achieve really responsive displays but not have to limit my color depth or display complexity?
I assume you mean that the displays are "intelligent" and can fill and draw lines themselves. Most are not.
Have you considered "Nextion" displays?
Have you considered write your own display driver?
If the code that others have written and shared is not satisfactory for your project, write your own code.
You are under no obligation to use existing libraries.
Regards
There are some ESP32-based displays that use a parallel connection instead of SPI. Maybe try one of those instead?
I just bought one of these: https://www.aliexpress.us/item/3256804766379290.html along with its 7" variant and so far works pretty well.
Warning: not much documentation.
This link is to Volos Projects and one of his TFT tutorials, he has many such tutorials on youtube and I recommend you subscribe and check them out
I assume you are looking for something like this
or
Probably not at this price ...
Marketing says:
Until now, the control of these displays was only associated with considerable hardware and software work carried out by the user, but with an integrated microcontroller system including touch panel these intelligent displays can now be operated straight away. Only a power supply of 5 V/max. 180 mA is required. Powerful graphics functions and a wide range of fonts are also already integrated and can be used immediately. Images can be incorporated into the internal flash memory as JPEG, BMP, TGA and GIF (including animation).
Good luck!
You don't explain what you want to use it for. Indeed, there are Nextion screens and there are many experts on them around here, the downside is that you must use a specific program to upload the scripts.
Screens with Chip picasso from 4D Systems, but a manufacturer's program must be used.
Other variants are the screens of the EVE2, 3 or 4 family. Unfortunately they are not cheap, but they are very very fast. They work with 60 Hz refresh rates, so you don't have to worry about overwriting objects. The base library is that of the gameduino 23x and it can be adapted to a wide variety of MCUs.
The shields gameduino 2, gameduino 3 and sunflower (which has its own library) may be viable options.
This isn't an issue with efficiencies of Arduino libraries. I can't write it more efficiently if I have to send 100 * 100 * 2 bytes from the microcontroller to the display over an SPI bus to fill a 100 by 100 grid with a 16 bit color value. That is 20,000 bytes. An accelerated approach would be to send a command (2 bytes) with 4 coordinates (4 * 2 bytes) and a color (2 bytes) for a total of 12 bytes. Just the transmission time over the bus will be orders of magnitude quicker, plus the ability for the device to render that in hardware immediately instead of a full second refresh to fill a screen. The requirement however is a display that supports hardware acceleration (ie: a command set that is efficient) instead of one that just takes in pixel instructions. I haven't seen any of the standard TFT display modules from adafruit or others that have any fast performance.
I think the same, the basic libraries are not optimized, a normal user like most only requires the correct library to implement a project in mind, not to optimize the basic libraries.
For certain tasks the UNO soon runs out of memory, however within the ecosystem of MCU's that the IDE can support, we have the possibility of using boards with much more memory and processing power.
Adding an example to demonstrate my sayings:
MCU: teensy 4.1@150 MHz
TFT: EVE2 NHD FT813 3.5"
Library: GDSTx
Customized tft lcd display is fine
You could take a look at TFT displays with RA8875. This controller has exactly the kind of commands requested in the first post.
-jz-
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.