Skip to content

Commit 030a8ee

Browse files
authored
Merge branch 'moononournation:master' into master
2 parents 59d6c13 + cacb069 commit 030a8ee

12 files changed

+306
-146
lines changed

README.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -332,19 +332,20 @@ ESP32LCD8, ESP32LCD16 and ESP32RGBPanel only supported by arduino-esp32 v2.x and
332332
* ESP32S3-2.1-TP
333333
* [ESPboy](https://www.espboy.com) [[demo video](https://youtu.be/Cx82XWrc8-0)]
334334
* [Guition JC1060P470](https://www.aliexpress.com/item/1005008328088576.html) [[demo video](https://youtu.be/CF1EDSQDHQ8)] [[LVGL demo](https://youtu.be/CF1EDSQDHQ8)]
335-
* [LILYGO T-Deck](https://www.lilygo.cc/products/t-deck) [[demo video](https://youtube.com/shorts/fXKTVqjUoPM)]
336-
* [LILYGO T-Display](https://www.lilygo.cc/products/lilygo®-ttgo-t-display-1-14-inch-lcd-esp32-control-board)
337-
* [LILYGO T-Display-S3](https://www.lilygo.cc/products/t-display-s3) [[demo video](https://youtu.be/kpRC64QNQAo)]
338-
* [LILYGO T-Display-S3 AMOLED](https://www.lilygo.cc/products/t-display-s3-amoled) [[demo video](https://youtu.be/NvOGJAMlh1M)]
339-
* [LILYGO T-Display-S3 AMOLED](https://www.lilygo.cc/products/t-display-s3-amoled-1-64) [[demo video](https://youtu.be/5O3fQ1xNsrg)][[LVGL demo video](https://youtu.be/6UEaxWfxm9g)]
340-
* [T-Display S3 Long](https://www.lilygo.cc/products/t-display-s3-long)[[LVGL demo video](https://youtu.be/OuxLFwxvcVc)]
341-
* [LILYGO T-Display-s3-Pro](https://www.lilygo.cc/products/t-display-s3-pro) [[demo video](https://youtube.com/shorts/PE-GKTzbdP8)]
342-
* [LILYGO T-QT](https://www.lilygo.cc/products/t-qt-v1-1) [[demo video](https://youtube.com/shorts/V1MCQ1tQ8PM)]
343-
* [LILYGO T-RGB](https://www.lilygo.cc/products/t-rgb) [[LVGL demo video](https://youtu.be/BKEl_pWp_qQ)]
344-
* [LILYGO T-Track](https://www.lilygo.cc/products/t-track) [[demo video](https://youtu.be/6wmUhp-5eMg)][[LVGL demo video](https://youtu.be/wQjMu5JZSkg)]
345-
* [LILYGO T-Watch](http://www.lilygo.cn/prod_view.aspx?TypeId=50053&Id=1123)
346-
* [LILYGO T-Watch 2021](https://www.lilygo.cc/products/t-watch-2021)
347-
* [LILYGO T4 S3](https://www.lilygo.cc/products/t4-s3)[[LVGL demo video](https://youtu.be/h4vXEYrDERM)]
335+
* [LILYGO T-Deck](https://www.lilygo.cc/products/t-deck?bg_ref=Ts2JN05e23) [[demo video](https://youtube.com/shorts/fXKTVqjUoPM)]
336+
* [LILYGO T-Deck Plus](https://www.lilygo.cc/products/t-deck-plus-1?bg_ref=Ts2JN05e23)
337+
* [LILYGO T-Display](https://www.lilygo.cc/products/lilygo®-ttgo-t-display-1-14-inch-lcd-esp32-control-board?bg_ref=Ts2JN05e23)
338+
* [LILYGO T-Display-S3](https://www.lilygo.cc/products/t-display-s3?bg_ref=Ts2JN05e23) [[demo video](https://youtu.be/kpRC64QNQAo)]
339+
* [LILYGO T-Display-S3 AMOLED](https://www.lilygo.cc/products/t-display-s3-amoled?bg_ref=Ts2JN05e23) [[demo video](https://youtu.be/NvOGJAMlh1M)]
340+
* [LILYGO T-Display-S3 AMOLED 1.64](https://www.lilygo.cc/products/t-display-s3-amoled-1-64?bg_ref=Ts2JN05e23) [[demo video](https://youtu.be/5O3fQ1xNsrg)][[LVGL demo video](https://youtu.be/6UEaxWfxm9g)]
341+
* [LILYGO T-Display S3 Long](https://www.lilygo.cc/products/t-display-s3-long?bg_ref=Ts2JN05e23)[[LVGL demo video](https://youtu.be/OuxLFwxvcVc)]
342+
* [LILYGO T-Display S3 Pro](https://www.lilygo.cc/products/t-display-s3-pro?bg_ref=Ts2JN05e23) [[demo video](https://youtube.com/shorts/PE-GKTzbdP8)]
343+
* [LILYGO T-QT](https://www.lilygo.cc/products/t-qt-pro?bg_ref=Ts2JN05e23) [[demo video](https://youtube.com/shorts/V1MCQ1tQ8PM)]
344+
* [LILYGO T-RGB](https://www.lilygo.cc/products/t-rgb?bg_ref=Ts2JN05e23) [[LVGL demo video](https://youtu.be/BKEl_pWp_qQ)]
345+
* [LILYGO T-Track](https://www.lilygo.cc/products/t-track?bg_ref=Ts2JN05e23) [[demo video](https://youtu.be/6wmUhp-5eMg)][[LVGL demo video](https://youtu.be/wQjMu5JZSkg)]
346+
* LILYGO T-Watch
347+
* [LILYGO T-Watch 2021](https://www.lilygo.cc/products/t-watch-2021?bg_ref=Ts2JN05e23)
348+
* [LILYGO T4 S3](https://www.lilygo.cc/products/t4-s3?bg_ref=Ts2JN05e23)[[LVGL demo video](https://youtu.be/h4vXEYrDERM)]
348349
* [M5Stack Core Family](https://shop.m5stack.com/collections/m5-controllers/CORE)
349350
* [M5Stack AtomS3](https://shop.m5stack.com/products/atoms3-dev-kit-w-0-85-inch-screen)[[demo video](https://youtu.be/8u4TwZHmnN0)]
350351
* [Makerfabs ESP32 3.5" TFT Touch with Camera](https://www.makerfabs.com/esp32-3.5-inch-tft-touch-capacitive-with-camera.html)

examples/PDQgraphicstest/Arduino_GFX_dev_device.h

Lines changed: 98 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
// #define ESP32_LCDKIT_PAR8A
1717
// #define ESP32_LCDKIT_PAR8B
1818
// #define ESP32_LCDKIT_PAR16
19-
// #define ESP32_S3_3_13_DISPLAY
19+
// #define ESP32_S3_313LCD
2020
// #define ESP32_S3_BOX_3
2121
// #define ESP32_S3_EYE
2222
// #define ESP32_S3_RGB
@@ -28,6 +28,7 @@
2828
// #define JC3248W535
2929
// #define JC3636W518
3030
// #define LILYGO_T_DECK
31+
// #define LILYGO_T_DECK_PLUS
3132
// #define LILYGO_T_DISPLAY
3233
// #define LILYGO_T_DISPLAY_S3
3334
// #define LILYGO_T_Display_S3_AMOLED
@@ -46,6 +47,7 @@
4647
// #define XIAO_SAMD21_ROUND_DISPLAY
4748
// #define XIAO_ESP32C3_ROUND_DISPLAY
4849
// #define XIAO_ESP32S3_ROUND_DISPLAY
50+
// #define WAVESHARE_ESP32_S3_LCD_2_8
4951
// #define WAVESHARE_RP2040_LCD_0_96
5052
// #define WZ8048C050 // or called "Elecrow Wizee-ESP32"
5153
// #define ZX2D10GE10R_V4848
@@ -59,21 +61,21 @@
5961
#include <Wire.h>
6062
#include <Adafruit_AW9523.h>
6163
Adafruit_AW9523 aw;
62-
#define DEV_DEVICE_INIT() \
63-
{ \
64-
Wire.begin(6 /* SDA */, 5 /* SCL */); \
65-
aw.begin(0x59); \
66-
aw.pinMode(8, OUTPUT); /* LCD_LEDK */ \
67-
aw.pinMode(9, OUTPUT); /* LCD_LEDK */ \
68-
aw.pinMode(10, OUTPUT); /* LCD_LEDK */ \
69-
aw.pinMode(11, OUTPUT); /* LCD_LEDK */ \
70-
aw.pinMode(14, OUTPUT); /* LCD_RST */ \
71-
aw.digitalWrite(8, LOW); /* LCD_LEDK */ \
72-
aw.digitalWrite(9, LOW); /* LCD_LEDK */ \
73-
aw.digitalWrite(10, LOW); /* LCD_LEDK */ \
74-
aw.digitalWrite(11, LOW); /* LCD_LEDK */ \
75-
aw.digitalWrite(14, HIGH); /* LCD_RST */ \
76-
}
64+
#define DEV_DEVICE_INIT() \
65+
{ \
66+
Wire.begin(6 /* SDA */, 5 /* SCL */); \
67+
aw.begin(0x59); \
68+
aw.pinMode(8, OUTPUT); /* LCD_LEDK */ \
69+
aw.pinMode(9, OUTPUT); /* LCD_LEDK */ \
70+
aw.pinMode(10, OUTPUT); /* LCD_LEDK */ \
71+
aw.pinMode(11, OUTPUT); /* LCD_LEDK */ \
72+
aw.pinMode(14, OUTPUT); /* LCD_RST */ \
73+
aw.digitalWrite(8, LOW); /* LCD_LEDK */ \
74+
aw.digitalWrite(9, LOW); /* LCD_LEDK */ \
75+
aw.digitalWrite(10, LOW); /* LCD_LEDK */ \
76+
aw.digitalWrite(11, LOW); /* LCD_LEDK */ \
77+
aw.digitalWrite(14, HIGH); /* LCD_RST */ \
78+
}
7779
Arduino_DataBus *bus = new Arduino_ESP32LCD8(
7880
45 /* DC */, GFX_NOT_DEFINED /* CS */, 10 /* WR */, GFX_NOT_DEFINED /* RD */,
7981
9 /* D0 */, 4 /* D1 */, 3 /* D2 */, 8 /* D3 */, 18 /* D4 */, 17 /* D5 */, 16 /* D6 */, 15 /* D7 */);
@@ -266,8 +268,8 @@ Arduino_DataBus *bus = new Arduino_ESP32PAR16(
266268
25 /* D8 */, 26 /* D9 */, 12 /* D10 */, 13 /* D11 */, 14 /* D12 */, 15 /* D13 */, 2 /* D14 */, 4 /* D15 */);
267269
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);
268270

269-
#elif defined(ESP32_S3_3_13_DISPLAY)
270-
#define GFX_DEV_DEVICE ESP32_S3_3_13_DISPLAY
271+
#elif defined(ESP32_S3_313LCD)
272+
#define GFX_DEV_DEVICE ESP32_S3_313LCD
271273
#define GFX_BL 4
272274
Arduino_DataBus *bus = new Arduino_SWSPI(
273275
GFX_NOT_DEFINED /* DC */, 0 /* CS */,
@@ -293,13 +295,13 @@ Arduino_GFX *gfx = new Arduino_ILI9342(bus, GFX_NOT_DEFINED /* RST */, 0 /* rota
293295

294296
#elif defined(ESP32_S3_EYE)
295297
#define GFX_DEV_DEVICE ESP32_S3_EYE
296-
#define DEV_DEVICE_INIT() \
297-
{ \
298-
pinMode(3 /* camera indicator */, OUTPUT); \
299-
digitalWrite(3 /* camera indicator */, LOW); \
300-
pinMode(48 /* BACKLIGHT */, OUTPUT); \
301-
digitalWrite(48 /* BACKLIGHT */, LOW); \
302-
}
298+
#define DEV_DEVICE_INIT() \
299+
{ \
300+
pinMode(3 /* camera indicator */, OUTPUT); \
301+
digitalWrite(3 /* camera indicator */, LOW); \
302+
pinMode(48 /* BACKLIGHT */, OUTPUT); \
303+
digitalWrite(48 /* BACKLIGHT */, LOW); \
304+
}
303305
Arduino_DataBus *bus = new Arduino_ESP32SPI(43 /* DC */, 44 /* CS */, 21 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
304306
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */, 0 /* col offset 1 */, 0 /* row offset 1 */, 0 /* col offset 2 */, 80 /* row offset 2 */);
305307

@@ -441,12 +443,12 @@ Arduino_GFX *gfx = new Arduino_ST7789(bus, 12 /* RST */, 1 /* rotation */, true
441443
#define GFX_BL 23 // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
442444
#define DSI_PANEL
443445
Arduino_ESP32DSIPanel *dsipanel = new Arduino_ESP32DSIPanel(
444-
40 /* hsync_pulse_width */, 160 /* hsync_back_porch */, 160 /* hsync_front_porch */,
445-
10 /* vsync_pulse_width */, 23 /*vsync_back_porch */, 12 /* vsync_front_porch */,
446-
48000000 /* prefer_speed */);
446+
40 /* hsync_pulse_width */, 160 /* hsync_back_porch */, 160 /* hsync_front_porch */,
447+
10 /* vsync_pulse_width */, 23 /*vsync_back_porch */, 12 /* vsync_front_porch */,
448+
48000000 /* prefer_speed */);
447449
Arduino_DSI_Display *gfx = new Arduino_DSI_Display(
448-
1024 /* width */, 600 /* height */, dsipanel, 0 /* rotation */, true /* auto_flush */,
449-
27 /* RST */, jd9165_init_operations, sizeof(jd9165_init_operations) / sizeof(lcd_init_cmd_t));
450+
1024 /* width */, 600 /* height */, dsipanel, 0 /* rotation */, true /* auto_flush */,
451+
27 /* RST */, jd9165_init_operations, sizeof(jd9165_init_operations) / sizeof(lcd_init_cmd_t));
450452

451453
#elif defined(JC3248W535)
452454
#define GFX_DEV_DEVICE JC3248W535
@@ -466,20 +468,38 @@ Arduino_GFX *gfx = new Arduino_ST77916(bus, 47 /* RST */, 0 /* rotation */, true
466468

467469
#elif defined(LILYGO_T_DECK)
468470
#define GFX_DEV_DEVICE LILYGO_T_DECK
469-
#define DEV_DEVICE_INIT() \
470-
{ \
471-
pinMode(9 /* TDECK_RADIO_CS */, OUTPUT); \
472-
digitalWrite(9 /* TDECK_RADIO_CS */, HIGH); \
473-
pinMode(12 /* TDECK_LCD_CS */, OUTPUT); \
474-
digitalWrite(12 /* TDECK_LCD_CS */, HIGH); \
475-
pinMode(39 /* TDECK_SDCARD_CS */, OUTPUT); \
476-
digitalWrite(39 /* TDECK_SDCARD_CS */, HIGH); \
477-
pinMode(10 /* TDECK_PERI_POWERON */, OUTPUT); \
478-
digitalWrite(10 /* TDECK_PERI_POWERON */, HIGH); \
479-
delay(500); \
480-
}
471+
#define DEV_DEVICE_INIT() \
472+
{ \
473+
pinMode(9 /* TDECK_RADIO_CS */, OUTPUT); \
474+
digitalWrite(9 /* TDECK_RADIO_CS */, HIGH); \
475+
pinMode(12 /* TDECK_LCD_CS */, OUTPUT); \
476+
digitalWrite(12 /* TDECK_LCD_CS */, HIGH); \
477+
pinMode(39 /* TDECK_SDCARD_CS */, OUTPUT); \
478+
digitalWrite(39 /* TDECK_SDCARD_CS */, HIGH); \
479+
pinMode(10 /* TDECK_PERI_POWERON */, OUTPUT); \
480+
digitalWrite(10 /* TDECK_PERI_POWERON */, HIGH); \
481+
delay(500); \
482+
}
483+
#define GFX_BL 42
484+
Arduino_DataBus *bus = new Arduino_HWSPI(11 /* DC */, 12 /* CS */, 40 /* SCK */, 41 /* MOSI */, 38 /* MISO */);
485+
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);
486+
487+
#elif defined(LILYGO_T_DECK_PLUS)
488+
#define GFX_DEV_DEVICE LILYGO_T_DECK_PLUS
489+
#define DEV_DEVICE_INIT() \
490+
{ \
491+
pinMode(9 /* TDECK_RADIO_CS */, OUTPUT); \
492+
digitalWrite(9 /* TDECK_RADIO_CS */, HIGH); \
493+
pinMode(12 /* TDECK_LCD_CS */, OUTPUT); \
494+
digitalWrite(12 /* TDECK_LCD_CS */, HIGH); \
495+
pinMode(39 /* TDECK_SDCARD_CS */, OUTPUT); \
496+
digitalWrite(39 /* TDECK_SDCARD_CS */, HIGH); \
497+
pinMode(10 /* TDECK_PERI_POWERON */, OUTPUT); \
498+
digitalWrite(10 /* TDECK_PERI_POWERON */, HIGH); \
499+
delay(500); \
500+
}
481501
#define GFX_BL 42
482-
Arduino_DataBus *bus = new Arduino_ESP32SPI(11 /* DC */, 12 /* CS */, 40 /* SCK */, 41 /* MOSI */, 38 /* MISO */);
502+
Arduino_DataBus *bus = new Arduino_HWSPI(11 /* DC */, 12 /* CS */, 40 /* SCK */, 41 /* MOSI */, 38 /* MISO */);
483503
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);
484504

485505
#elif defined(LILYGO_T_DISPLAY)
@@ -490,11 +510,11 @@ Arduino_GFX *gfx = new Arduino_ST7789(bus, 23 /* RST */, 0 /* rotation */, true
490510

491511
#elif defined(LILYGO_T_DISPLAY_S3)
492512
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3
493-
#define DEV_DEVICE_INIT() \
494-
{ \
495-
pinMode(15 /* PWD */, OUTPUT); \
496-
digitalWrite(15 /* PWD */, HIGH); \
497-
}
513+
#define DEV_DEVICE_INIT() \
514+
{ \
515+
pinMode(15 /* PWD */, OUTPUT); \
516+
digitalWrite(15 /* PWD */, HIGH); \
517+
}
498518
#define GFX_BL 38
499519
Arduino_DataBus *bus = new Arduino_ESP32PAR8Q(
500520
7 /* DC */, 6 /* CS */, 8 /* WR */, 9 /* RD */,
@@ -509,11 +529,11 @@ Arduino_GFX *gfx = new Arduino_RM67162(bus, 17 /* RST */, 0 /* rotation */);
509529

510530
#elif defined(LILYGO_T_Display_S3_AMOLED_1_64)
511531
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_AMOLED_1_64
512-
#define DEV_DEVICE_INIT() \
513-
{ \
514-
pinMode(16 /* LCD_EN */, OUTPUT); \
515-
digitalWrite(16 /* LCD_EN */, HIGH); \
516-
}
532+
#define DEV_DEVICE_INIT() \
533+
{ \
534+
pinMode(16 /* LCD_EN */, OUTPUT); \
535+
digitalWrite(16 /* LCD_EN */, HIGH); \
536+
}
517537
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
518538
10 /* CS */, 12 /* SCK */, 11 /* D0 */, 13 /* D1 */, 14 /* D2 */, 15 /* D3 */);
519539
Arduino_GFX *g = new Arduino_CO5300(bus, 17 /* RST */, 0 /* rotation */, false /* IPS */, 280, 456,
@@ -538,21 +558,21 @@ Arduino_GFX *gfx = new Arduino_ST7796(bus, 47 /* RST */, 0 /* rotation */, true
538558

539559
#elif defined(LILYGO_T_QT)
540560
#define GFX_DEV_DEVICE LILYGO_T_QT
541-
#define DEV_DEVICE_INIT() \
542-
{ \
543-
pinMode(10 /* BL */, OUTPUT); \
544-
digitalWrite(10 /* BL */, LOW); \
545-
}
561+
#define DEV_DEVICE_INIT() \
562+
{ \
563+
pinMode(10 /* BL */, OUTPUT); \
564+
digitalWrite(10 /* BL */, LOW); \
565+
}
546566
Arduino_DataBus *bus = new Arduino_ESP32SPI(6 /* DC */, 5 /* CS */, 3 /* SCK */, 2 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
547567
Arduino_GFX *gfx = new Arduino_GC9107(bus, 1 /* RST */, 0 /* rotation */, true /* IPS */);
548568

549569
#elif defined(LILYGO_T_RGB)
550570
#define GFX_DEV_DEVICE LILYGO_T_RGB
551571
#include <Wire.h>
552-
#define DEV_DEVICE_INIT() \
553-
{ \
554-
Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */); \
555-
}
572+
#define DEV_DEVICE_INIT() \
573+
{ \
574+
Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */); \
575+
}
556576
#define GFX_BL 46
557577
Arduino_DataBus *bus = new Arduino_XL9535SWSPI(
558578
8 /* SDA */, 48 /* SCL */, 2 /* XL PWD */, 3 /* XL CS */, 5 /* XL SCK */, 4 /* XL MOSI */);
@@ -571,11 +591,11 @@ Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
571591

572592
#elif defined(LILYGO_T_TRACK)
573593
#define GFX_DEV_DEVICE LILYGO_T_TRACK
574-
#define DEV_DEVICE_INIT() \
575-
{ \
576-
pinMode(4 /* POWER */, OUTPUT); \
577-
digitalWrite(4 /* POWER */, HIGH); \
578-
}
594+
#define DEV_DEVICE_INIT() \
595+
{ \
596+
pinMode(4 /* POWER */, OUTPUT); \
597+
digitalWrite(4 /* POWER */, HIGH); \
598+
}
579599
Arduino_DataBus *bus = new Arduino_ESP32SPIDMA(7 /* DC */, 9 /* CS */, 5 /* SCK */, 6 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
580600
Arduino_G *g = new Arduino_JD9613(bus, 8 /* RST */);
581601
#define CANVAS
@@ -589,11 +609,11 @@ Arduino_GFX *gfx = new Arduino_GC9A01(bus, 27 /* RST */, 0 /* rotation */, true
589609

590610
#elif defined(LILYGO_T4_S3)
591611
#define GFX_DEV_DEVICE LILYGO_T4_S3
592-
#define DEV_DEVICE_INIT() \
593-
{ \
594-
pinMode(9 /* POWER */, OUTPUT); \
595-
digitalWrite(9 /* POWER */, HIGH); \
596-
}
612+
#define DEV_DEVICE_INIT() \
613+
{ \
614+
pinMode(9 /* POWER */, OUTPUT); \
615+
digitalWrite(9 /* POWER */, HIGH); \
616+
}
597617
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
598618
11 /* CS */, 15 /* SCK */, 14 /* D0 */, 10 /* D1 */, 16 /* D2 */, 12 /* D3 */);
599619
Arduino_GFX *g = new Arduino_RM690B0(bus, 13 /* RST */, 0 /* rotation */, 450 /* width */, 600 /* height */, 16 /* col offset 1 */, 0 /* row offset 1 */, 16 /* col offset 2 */, 0 /* row offset 2 */);
@@ -658,6 +678,12 @@ Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
658678
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
659679
800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
660680

681+
#elif defined(WAVESHARE_ESP32_S3_LCD_2_8)
682+
#define GFX_DEV_DEVICE WAVESHARE_ESP32_S3_LCD_2_8
683+
#define GFX_BL 5
684+
Arduino_DataBus *bus = new Arduino_HWSPI(41 /* DC */, 42 /* CS */, 40 /* SCK */, 45 /* MOSI */, 46 /* MISO */);
685+
Arduino_GFX *gfx = new Arduino_ST7789(bus, 39 /* RST */, 0 /* rotation */, true /* IPS */);
686+
661687
#elif defined(WAVESHARE_RP2040_LCD_0_96)
662688
#define GFX_DEV_DEVICE WAVESHARE_RP2040_LCD_0_96
663689
#define GFX_BL 25

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=GFX Library for Arduino
2-
version=1.5.3
2+
version=1.5.4
33
author=Moon On Our Nation <[email protected]>
44
maintainer=Moon On Our Nation <[email protected]>
55
sentence=Arduino_GFX is a GFX library for various color displays with various data bus interfaces

src/Arduino_DataBus.cpp

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -181,31 +181,36 @@ void Arduino_DataBus::writeIndexedPixelsDouble(uint8_t *data, uint16_t *idx, uin
181181

182182
void Arduino_DataBus::writeYCbCrPixels(uint8_t *yData, uint8_t *cbData, uint8_t *crData, uint16_t w, uint16_t h)
183183
{
184-
w >>= 1;
185-
for (int i = 0; i < h;)
184+
int cols = w >> 1;
185+
186+
uint8_t pxCb, pxCr;
187+
int16_t pxR, pxG, pxB, pxY;
188+
189+
for (int row = 0; row < h;)
186190
{
187-
for (int j = 0; j < w; ++j)
191+
for (int col = 0; col < cols; ++col)
188192
{
189-
uint8_t cb = *cbData++;
190-
uint8_t cr = *crData++;
191-
int16_t r = CR2R16[cr];
192-
int16_t g = -CB2G16[cb] - CR2G16[cr];
193-
int16_t b = CB2B16[cb];
194-
int16_t y = Y2I16[*yData++];
195-
_data16.value = CLIPRBE[y + r] | CLIPGBE[y + g] | CLIPBBE[y + b];
193+
pxCb = *cbData++;
194+
pxCr = *crData++;
195+
pxR = CR2R16[pxCr];
196+
pxG = -CB2G16[pxCb] - CR2G16[pxCr];
197+
pxB = CB2B16[pxCb];
198+
199+
pxY = Y2I16[*yData++];
200+
_data16.value = CLIPRBE[pxY + pxCr] | CLIPGBE[pxY + pxG] | CLIPBBE[pxY + pxB];
196201
write(_data16.lsb);
197202
write(_data16.msb);
198-
y = Y2I16[*yData++];
199-
_data16.value = CLIPRBE[y + r] | CLIPGBE[y + g] | CLIPBBE[y + b];
203+
pxY = Y2I16[*yData++];
204+
_data16.value = CLIPRBE[pxY + pxCr] | CLIPGBE[pxY + pxG] | CLIPBBE[pxY + pxB];
200205
write(_data16.lsb);
201206
write(_data16.msb);
202207
}
203208

204-
if (++i & 1)
209+
if (++row & 1)
205210
{
206211
// rollback CbCr data
207-
cbData -= w;
208-
crData -= w;
212+
cbData -= cols;
213+
crData -= cols;
209214
}
210215
}
211216
}

0 commit comments

Comments
 (0)