ST7701S Support #1055
-
Dear Bodmer I am writing here with request to add support for displays with ST7701S driver. I am approaching to realization of my project which will be using display equipped with such driver IC. I ordered this one (SPI version). It is 480x480 resolution. I am amazed, how great is Your TFT_eSPI library. Also, I am aware of how much work it goes to maintain and provide such support, so I would like to ask you if you have any donation profile, pay pal etc? Your work has to be appreciated more than saying thanks every time You help. |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 14 replies
-
Hi, I have a lot of projects on the go at the moment so unfortunately I do not have the time to help you. The library does allow new displays to be added, but this is not something I have time to do. Thanks for your offer and kind comments about the library. |
Beta Was this translation helpful? Give feedback.
-
Thanks for answer. Do You have any guide how to create a driver? I went through existing drivers and looks like they all follow some "schematic". Do You know any document to help me understand how should I do it? or I just have to study driver IC manual and successively create new driver based on drivers already existing? Maybe there's no single and simple answer. |
Beta Was this translation helpful? Give feedback.
-
To add a new display 3 new files need to be created here. xxxx_Init.h, xxxx_Defines.h and xxxx_Rotation.h The init sequence is critical and needs to set the display to 4 wire and 16 bit colour. The Init sequences can often be found on the web using a Google search, or may be provided by the display supplier. Then a reference needs to be allocated here. |
Beta Was this translation helpful? Give feedback.
-
@flykarlos hi, any (further) luck with getting ST7701S to work? I am looking at a 2.8 inch TFT LCD ,480x640 with ST7701S driver IC. I am planning to get a bunch of random boards ( but only those with higher resolution ). The other one I am getting is driven by HX8357 (3.2 inch/480x320). This I think some folks have been able to get it to work so I haven't researched that much yet. This one I think should not be a problem. And thanks to you all wonderful folks who have built this library and contributed to it's advancements. |
Beta Was this translation helpful? Give feedback.
-
I've got a device with the ST7701S display working with a sample project using ESP-IDF (this one, in fact). However, ST7701S does not have GRAM, and as such does not have a CASET, PASET, RAMWR or RAMRD command. These are required in |
Beta Was this translation helpful? Give feedback.
-
Hi James,
Thanks for your response! I actually got this working just as you say.
I'm using the esprssif esp_display_panel lib so I'm pushing to the screen
with the drawBitmap() method. I'm having a couple issues that I'll mention
in case you know of any better solutions:
1. The endian-ness of colors is reversed. I'm having to shift all my
colors when rendering the final sprite.
2. Gradients are banded and look wrong. I think this probably has to do
with #1 above.
3. Performance is pretty bad with larger sprites. I was surprised that the
bottleneck is not drawing to the screen (it's a 480x480 RGB565) but the
layering of the sprites in memory. I'm trying to do some fullscreen
rotation, so the main sprite has to be a bit bigger than the screensize,
then I use pushRotated() to another screen-size sprite, which then
renders. I'm only getting ~4 fps with this method. What kind of fps do
you see? Is there anything I can do to speed things up?
Thank you!!
…On Mon, Sep 2, 2024 at 11:52 PM James ***@***.***> wrote:
@bajacondor <https://github.com/bajacondor> Sure. Basically you have an
instance of TFT_eSPI just to create a sprite which you draw on as you
normally would. Then you copy that sprite to the panel its a memory copy so
its quite fast.
LilyGo_RGBPanel panel;
// Initialize T-RGB,
panel.begin(LILYGO_T_RGB_ORDER_BGR));
//create an instance of TFT_eSPI
TFT_eSPI tft = TFT_eSPI();
//create a sprite
TFT_eSprite fbuff= TFT_eSprite(&tft);
// do all your stuff with the sprite (keep it global so the memory stays static
fbuff.createSprite(WIDTH, HEIGHT);
fbuff.setColorDepth(16);
//draw whatever...
fbuff.<draw whatever you like using TFT_eSPI>
sprintf(strBuff, "%0.0f", vs);
fbuff.drawString(strBuff, vsiLeft + 8, vsiBug, GFXFF);
fbuff.drawWedgeLine(centerX, centerY, posX, posY, 8, 4, needle_colour);
// finally output the image - this copies the sprite memory directly to the panel
panel.pushColors(0, 0, WIDTH, HEIGHT, (uint16_t *)fbuff.getPointer());
—
Reply to this email directly, view it on GitHub
<#1055 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACAM4MO3LTTNBGEPASXZ743ZUVMBVAVCNFSM4YXGDQX2U5DIOJSWCZC7NNSXTOSENFZWG5LTONUW63SDN5WW2ZLOOQ5TCMBVGI4DAMBV>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
Hi, I have a lot of projects on the go at the moment so unfortunately I do not have the time to help you.
The library does allow new displays to be added, but this is not something I have time to do. Thanks for your offer and kind comments about the library.