ST77916 #3477
Replies: 31 comments 130 replies
-
Hello @Basitadam
From another project Because the library
|
Beta Was this translation helpful? Give feedback.
-
Hi @Basitadam, would be nice if you can share it, thanks in advance. |
Beta Was this translation helpful? Give feedback.
-
I decided to post my files, but they are not working yet, only the display backlight turns on and that's it🙂
and
The archive contains files for the platformio and libraries By the way, a remark, when I compile under
then after loading the firmware
There are no reboots and only the display backlight turns on, because I can't yet write code for normal display initialization. Since the device
|
Beta Was this translation helpful? Give feedback.
-
Hello everyone, My solution is based on TFT_eSPI 2.5.43 and ESP32 3.0.4 board libraries. With Arduino IDE 2.3.2. My MCU is ESP32-S3 on an ESP32-S3-Zero board. Attached are the all TFT_eSPI files and an Arduino sample sketch.
I made some trials to run in DMA mode. There might be some extra lines commented in files. Hope these help and make it their way into the new version of TFT_eSPI (with professionally edited versions of course) BR, |
Beta Was this translation helpful? Give feedback.
-
@Basitadam I'm having studied your display a little, I realized that your solution is not suitable for the You are using a classic connection to the
Which changes things dramatically and is not yet supported by the library. |
Beta Was this translation helpful? Give feedback.
-
@brightproject you are correct. My display has 15pins but QSPI one has 20. I have QSPI module also: Hoped I could change the communication mode to simple SPI via These type of pins have pull-up / pull-down resistor located on display flat cable. But not on this one. Here are my setup, MCU and sample visuals: Tim |
Beta Was this translation helpful? Give feedback.
-
Hello, If i can a question, did you test it with all rotation ? (by your function setRotation). Maybe there is a little bug on it. For me Screen is not center on 2 kind of rotation (setRotation(2); and setRotation(1); i think). I make an example with a LVGL_METER, and it's not center on those rotation. And that make parasite en bottom or right on the screen. Did you see that too ? (sorry for my English) Julien |
Beta Was this translation helpful? Give feedback.
-
Hi @julienGowind. Thank you, I didn't check it really. I just checked that rotation works. Now I looked at the code, I realized I did not set TFT_HIGHT, TFT_WIDTH. They are in TFT processor init file, so should library should work but you can try these: 1- include height and width in user select file ( Setup27tk_1_8Round_ST77916_ESP32.h ) 2- include height and width in Arduino sketch 3- in Adruino sketch 4- Or maybe it is the nature of some rotations: Some rotations are like flip or mirror in nature. Defining absolute coordinates like tft.setCursor(90,120) might be causing to see as if not centered. To test this put a circle or rectangle at the middle of the screen. Center point of circle/rectangle must be (180,180). Try doing rotations now. The circle/rectangle should not change position. Let me know the results please. BR,
|
Beta Was this translation helpful? Give feedback.
-
Hi, great job! I’m really glad someone has tackled this topic. I bought the same 15-pin touchscreen display. However, before diving into the touch functionality, I first want to get it running in general. I'm having an issue, though. Despite placing the files in the correct folders — TFT_Drivers, User_Setups, and modifying TFT_eSPI.cpp and TFT_eSPI.h — the display remains black. Here’s how I’ve connected it:
And the definition in User_Setup.h: #define TFT_MISO -1 I’m also not sure how to set it up so the display operates in SPI mode. Is that the default operating mode? How should I configure the jumper settings? Thank you for your response, and great job! I’m also looking forward to the part where you explain the touch setup. Take care! |
Beta Was this translation helpful? Give feedback.
-
TouchPad : Not tested yet |
Beta Was this translation helpful? Give feedback.
-
Hi, I have a question because I want to generate a 360x360 sprite (to cover the entire screen). However, I know that the sprite size is limited by the ESP32's RAM capacity. (Now I use it esp32 DevKitC) Do you know how to solve this problem? Is it possible to expand the RAM or cache size? In my project assumptions, I wanted to manage 3 such displays independently at the same time. Processing power wouldn’t be an issue, but I can see that the cache memory already is. |
Beta Was this translation helpful? Give feedback.
-
question: has anyone got the integrated 1.85" ESP32-S3 device from Waveshare: https://www.waveshare.com/wiki/ESP32-S3-LCD-1.85 to work with TFT_eSPI? |
Beta Was this translation helpful? Give feedback.
-
Good day @Basitadam and @uzi18 🙂
To easily connect to the display inside the It seemed to me that this is not such a difficult task, the main thing is to understand it correctly.
The initial entry point is the file
Which includes the file
Which is where the main Declaring the library in the code
We include the settings files
Which have the display driver we need added
Inside which the required driver is specified
And the necessary pins.
initialization of the display and the
After several attempts and code editing, it was successfully assembled.
but the display is not yet filled with red. If we think about this together, then perhaps display output will be implemented. I downloaded the project archive for I deleted the
Link to the archive |
Beta Was this translation helpful? Give feedback.
-
Unfortunately this is way beyond my skill set, but it would great if someone smarter than me would figure it out. |
Beta Was this translation helpful? Give feedback.
-
@ChrisZang0815 you see error - Invalid pin 23 |
Beta Was this translation helpful? Give feedback.
-
@Basitadam I used your code for st77916 display and it works. I use it with lvgl tft in arduino IDE:
the setRotation doesn't work for me I use 2,3,5,7 for flipping or mirroring with respect to x-axis. I then tried changing the So, the question is there a command in init file that I can use to flip it during initialization. |
Beta Was this translation helpful? Give feedback.
-
I just tested the code from @Basitadam with the color fix in the "ST77916_Init.h" file and added the touch lib mentioned from @uzi18 in a PlatformIO project and everything is working fine together. Rotations are also working, the non mirrored ones are 4-7 btw. Big thank you for the hard work so far. |
Beta Was this translation helpful? Give feedback.
-
Has anyone tried 8bit parallel with this display, should the drivers be the same? |
Beta Was this translation helpful? Give feedback.
-
I’m well versed in TFT_eSPI, but I guess I now have to learn LovyanGFX.
Sounds like a fun challenge!
Unfortunately, I don’t speak Japanese ☹
Is there anywhere a “getting started” primer?
Especially I would like to figure out what I have to do to support a certain display, example – let’s start with something simple - GC9A01
The example below from Vladislav seems to be for the Arduino_GFX library, but not for the LovyanGFX library?
Thanks
Christopher
From: Vladislav ***@***.***>
Sent: Sunday, July 6, 2025 11:35 PM
To: Bodmer/TFT_eSPI ***@***.***>
Cc: ChrisZang0815 ***@***.***>; Mention ***@***.***>
Subject: Re: [Bodmer/TFT_eSPI] ST77916 (Discussion #3477)
This data I can find in the display's pdf I suppose, right?
You can also take it from the display manufacturer's documentation, but it seems easier to me to take it from this file
https://github.com/moononournation/Arduino_GFX/blob/master/src/display/Arduino_ST77916.h
And move it to this file, changing its name
https://github.com/lovyan03/LovyanGFX/blob/master/src/lgfx/v1/panel/Panel_ST7796.hpp
or this
https://github.com/moononournation/Arduino_GFX/blob/eb305947cbe4026efe73245fc9598bd3457efdbc/src/display/Arduino_GC9106.h
I repeat that you must have some knowledge of the display operation processes, what code is in the specified files and what function it carries.
Do you have such knowledge?🙂
I don't have a 77916 display with an 8-bit parallel bus and I can't check the code even if I help you with the files.
This complicates the work if you don't understand the processes.
As you were told above, the 77916 display mainly uses QSPI and I recommended using more well-known connection schemes until you gain experience in this.
You should also try connecting any other display bySPI or another bus to the LovyanGFX library and work with the code so that you understand the processes.
This is quite an exciting activity🙂
—
Reply to this email directly, view it on GitHub <#3477 (reply in thread)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/A4F7SMIR52D7GKJUYABG4KT3HIIHNAVCNFSM6AAAAABN4C2PX2VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGNRXHE4DMNI> .
You are receiving this because you were mentioned. <https://github.com/notifications/beacon/A4F7SMLFF5N6IZNE5NC2ZJL3HIIHNA5CNFSM6AAAAABN4C2PX2WGG33NNVSW45C7OR4XAZNRIRUXGY3VONZWS33OINXW23LFNZ2KUY3PNVWWK3TUL5UWJTQA2C6PS.gif> Message ID: ***@***.*** ***@***.***> >
|
Beta Was this translation helpful? Give feedback.
-
Hello @Basitadam, @HmblEngineer, @ChrisZang0815🙂 I managed to set up |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Hi, whats the latest set of patches for the TFT_eSPI library? I downloaded the zip by the OP, have the correct pins, even used the diagram by the OP, used 100Ω res on GND, connected LEDA to 3V (5V should also work as its 3 LEDs in series) have the correct verified GPIO to LCD pins, every single one, one by one, using ESP32-S3 Hardware SPI pins as per datasheet. LCD connected using FPC 15 Pin 0.5 PCB converter board (so, almost impossible to make a mistake with wrong pins) all tested with multimeter and I get a blank screen on both my LCDs. Seems the backlight is permanently ON, I can't turn it ON or OFF no matter if I connect directly to a pin. 100Ω Resistor is between LEDK and GND. So, I know I have everything setup correctly. Double checked my TFT_eSPI config file, USE_HSPI_PORT is also correctly defined. I have used this library with other displays with no issues, but going crazy with this ST77916 so either I have two bad units (very unlikely) or the zip file from the OP is not the most current patch to the library. Also have the "Exact" unit (no touch) from Aliexpress: |
Beta Was this translation helpful? Give feedback.
-
They seem to be in order. 2- Can you run this ino and send its serial output : ![]() |
Beta Was this translation helpful? Give feedback.
-
2.7 V is about the forward voltage of some white LEDs, and it's also the
typical minimum voltage for a lot of mobile phone ICs.
Lohi
…On Wed, Jul 30, 2025, 17:40 Vladislav ***@***.***> wrote:
Would you agree with me that this points to the LCDs being defective?
The datasheet says 2.7 volt, a very strange voltage.
I have a st77916 with a QSPI bus and there are 3.3 volt.
Your initiative with a 5 volt resistor does not seem very good to me.
—
Reply to this email directly, view it on GitHub
<#3477 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGBMPKS5QVMEFV3C3QGOJDD3LDRQTAVCNFSM6AAAAABN4C2PX2VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGOJTGYYDOMI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Thanks!! really helpful! I will ditch the multimeter, just follow the traces and image reference here on a spare FPC and re-wire. |
Beta Was this translation helpful? Give feedback.
-
I'll try again next week. I believe they don't work because I fried them. I know this because on my tests I was noticing how hot the flex PCB was getting, after your re-wire suggestion LED now is more dim and flex PCB is cold to the touch, so yes, definitely fried, by me. Thanks anyway for the help, I'll follow up next week when I get the new ones I ordered. |
Beta Was this translation helpful? Give feedback.
-
@Basitadam & @brightproject just wanted to give you an update.... ended up following your advise. Was able to use LovyanGFX without modifications (there is clearly a typo in one of their drivers) they list it as ST77961 (which does NOT exists) is in reality ST77916 (our round 1.8 inch LCD) tested some of my gauges and they worked with no issues and the sprites/draw function is 3 times faster with LovyanGFX compared to TFT_eSPI which is impressive! again, thanks again for all the help. I ended up choosing LovyanGFX as it was an easier migration from TFT_eSPI considering I do sprites/rotate/pivot for my gauges which LovyanGFX supports out of the box. |
Beta Was this translation helpful? Give feedback.
-
@BojoteX Hi, could you please share the driver definition? I don't seem to be able to find it. |
Beta Was this translation helpful? Give feedback.
-
very general question: can someone tell me which Arduino graphic libraries support QSPI? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
Made a working driver set for ST77916. I can share anyone interested
BR,
Tim
Beta Was this translation helpful? Give feedback.
All reactions