dejwk / roo_display

Arduino-compliant library, targeted at ESP32 and related boards, for driving display devices and touch panels, e.g. ILI9486, ILI9341, or ST7789. Powerful and fast.
Other
7 stars 1 forks source link

ST7789 with 8-bit Parallel I/F #5

Closed Boyeen closed 1 year ago

Boyeen commented 2 years ago

I'm intrigued by the new TTGO T-Display-S3 with 1.9" IPS. It uses an ST7789 but via an 8-bit parallel i/f. Any idea of supporting this? Even TFT_eSPI doesn't, but LilyGo has patched the lib. I think this will be a very popular board going forward. I have a display on order from China and will be happy to help any way I can.

Tim

AliExpress link

Boyeen commented 1 year ago

Just checking if you have seen this?

dejwk commented 1 year ago

Hi Boyeen, I am so sorry that I missed this comment before.

I have not yet looked into parallel drivers. Generally, I believe it is very possible to add them and these experiments are on my list.

Meanwhile, I am now working on preparing this lib for a release. I added a bunch of features, including a pass-thru driver that can use TFT_eSPI.

Did you make any progress on that driver you mention? I noticed that you forked TFT_eSPI. I would be quite interested in merging any new drivers into my library :)

Boyeen commented 1 year ago

Hi,Sadly no, I wouldn’t know how to go about a parallel driver. When you do get around to trying it out I will be delighted to help with testing or anything you can set me to.I DID come up with  the config settings for the new 1.69” 240x280 displays (you see them from China with the rounded corners and I think more accurate colors). I will update my fork and send you a pull request.

dejwk commented 1 year ago

Sounds good!

Interesting device, I might give it a try. Did you come across any open-source drivers for it at all?

Boyeen commented 1 year ago

Do you mean open source drivers for the 8-bit parallel display? None, only TFT-eSPI which LilyGo modified.

BTW that display is super fast to update (8 bit parallel so I know it's obviously faster) but it really is amazing to be able to get the frame-rate you do from an ESP32.... I'm really hoping you can support it in RooDisplay because this is my favorite display driver now :-)

dejwk commented 1 year ago

I have recently implemented an adapter driver that allows to use roo_display on top the TFT_eSPI drivers. So if you have a driver for your thing that works with TFT_eSPI, you may want to give it a try. The performance should be good; the driver only uses setAddr, writePixels and fillPixels which tend to be well-optimized in TFT_eSPI.

You will find the adapter in the driver/ directory, with some comments on how to use it.

FWiW, I also added native support for JPEG and PNG, and some other features - and I am in the process of documenting all that in the README.

I am interested in increasing driver support, though, and I am curious about parallel drivers. I think these 'combo' devices that do not require you for actually put in all the wires, are really interesting.

The first combo I tried so far, for which there is already a driver in roo_display, is the ILI9488-based Makerfabs device. It has a very good quality touch panel (capacitive), blowing any XPT2046 out of the water. It is still SPI, though.

I ordered the thing you mentioned. It will be an interesting form factor to support.

dejwk commented 1 year ago

Hi Boyeen, good news! I god the T-Display-S3 a couple of days ago, and I just finished writing the driver for it. Give it a shot and let me know!

basic setup:

#include "roo_display/products/lilygo/t_display_s3.h"

// ...

using namespace roo_display;

products::lilygo::TDisplayS3 tft(Orientation().rotateLeft());
Display display(tft);

void setup() {
  // ...
  tft.initTransport();
  display.init(color::White);
}