Skip to content

Commit 3b7dd65

Browse files
authored
Added ST7796 (222x480) support (#2774)
* Added ST7796 gram offset * Added LilyGo-T-PicoPro setup * Fix ST7796 Compilation Warning * Added T-Beam-Shield User_Steup * Added boards setups
1 parent 52384e4 commit 3b7dd65

File tree

5 files changed

+116
-0
lines changed

5 files changed

+116
-0
lines changed

TFT_Drivers/ST7796_Defines.h

+5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
// Change the width and height if required (defined in portrait mode)
22
// or use the constructor to over-ride defaults
3+
#ifndef TFT_WIDTH
34
#define TFT_WIDTH 320
5+
#endif
6+
7+
#ifndef TFT_HEIGHT
48
#define TFT_HEIGHT 480
9+
#endif
510

611
// Generic commands used by TFT_eSPI.cpp
712
#define TFT_NOP 0x00

TFT_Drivers/ST7796_Rotation.h

+28
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,49 @@
99
writedata(TFT_MAD_MX | TFT_MAD_COLOR_ORDER);
1010
_width = _init_width;
1111
_height = _init_height;
12+
#ifdef CGRAM_OFFSET
13+
if (_init_width == 222)
14+
{
15+
colstart = 49;
16+
rowstart = 0;
17+
}
18+
#endif
1219
break;
1320
case 1:
1421
writedata(TFT_MAD_MV | TFT_MAD_COLOR_ORDER);
1522
_width = _init_height;
1623
_height = _init_width;
24+
#ifdef CGRAM_OFFSET
25+
if (_init_width == 222)
26+
{
27+
colstart = 0;
28+
rowstart = 49;
29+
}
30+
#endif
1731
break;
1832
case 2:
1933
writedata(TFT_MAD_MY | TFT_MAD_COLOR_ORDER);
2034
_width = _init_width;
2135
_height = _init_height;
36+
#ifdef CGRAM_OFFSET
37+
if (_init_width == 222)
38+
{
39+
colstart = 49;
40+
rowstart = 0;
41+
}
42+
#endif
2243
break;
2344
case 3:
2445
writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_COLOR_ORDER);
2546
_width = _init_height;
2647
_height = _init_width;
48+
#ifdef CGRAM_OFFSET
49+
if (_init_width == 222)
50+
{
51+
colstart = 0;
52+
rowstart = 49;
53+
}
54+
#endif
2755
break;
2856
// These next rotations are for bottom up BMP drawing
2957
case 4:

User_Setup_Select.h

+2
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@
134134
//#include <User_Setups/Setup209_LilyGo_T_Dongle_S3.h> // For the LilyGo T-Dongle S3 based ESP32 with ST7735 80 x 160 TFT
135135
//#include <User_Setups/Setup210_LilyGo_T_Embed_S3.h> // For the LilyGo T-Embed S3 based ESP32S3 with ST7789 170 x 320 TFT
136136
//#include <User_Setups/Setup211_LilyGo_T_QT_Pro_S3.h> // For the LilyGo T-QT Pro S3 based ESP32S3 with GC9A01 128 x 128 TFT
137+
// #include <User_Setups/Setup212_LilyGo_T_PicoPro.h> // For the LilyGo T-PICO-Pro with ST7796 222 x 480 TFT
138+
// #include <User_Setups/Setup213_LilyGo_T_Beam_Shield.h> // For the LilyGo T-BEAM V1.x with ST7796 222 x 480 TFT
137139

138140
//#include <User_Setups/Setup250_ESP32_S3_Box_Lite.h> // For the ESP32 S3 Box Lite
139141
//#include <User_Setups/Setup251_ESP32_S3_Box.h> // For the ESP32 S3 Box
+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// ST7796 222 x 480 display with no chip select line
2+
#define USER_SETUP_ID 212
3+
4+
#define ST7796_DRIVER // Configure all registers
5+
6+
#define TFT_WIDTH 222
7+
#define TFT_HEIGHT 480
8+
9+
#define CGRAM_OFFSET // Library will add offsets required
10+
11+
// #define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue
12+
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
13+
14+
#define TFT_INVERSION_ON
15+
16+
#define TFT_MISO 4
17+
#define TFT_MOSI 7
18+
#define TFT_SCLK 6
19+
#define TFT_CS 8
20+
#define TFT_DC 9
21+
#define TFT_RST 10
22+
#define TFT_BACKLIGHT_ON 1
23+
#define TFT_BL 11
24+
25+
26+
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
27+
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
28+
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
29+
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
30+
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
31+
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
32+
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
33+
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
34+
35+
#define SMOOTH_FONT
36+
37+
38+
// #define SPI_FREQUENCY 27000000
39+
#define SPI_FREQUENCY 40000000
40+
41+
#define SPI_READ_FREQUENCY 20000000
42+
43+
#define SPI_TOUCH_FREQUENCY 2500000
44+
45+
// #define SUPPORT_TRANSACTIONS
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// ST7796 222 x 480 display with no chip select line
2+
#define USER_SETUP_ID 213
3+
4+
#define ST7796_DRIVER // Configure all registers
5+
6+
#define TFT_WIDTH 222
7+
#define TFT_HEIGHT 480
8+
9+
#define CGRAM_OFFSET // Library will add offsets required
10+
11+
// #define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue
12+
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
13+
14+
#define TFT_INVERSION_ON
15+
16+
#define TFT_MISO -1
17+
#define TFT_MOSI 14
18+
#define TFT_SCLK 15
19+
#define TFT_CS 25
20+
#define TFT_DC 13
21+
#define TFT_RST 2
22+
#define TFT_BL 4
23+
#define TFT_BACKLIGHT_ON HIGH
24+
25+
26+
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
27+
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
28+
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
29+
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
30+
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
31+
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
32+
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
33+
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
34+
35+
#define SMOOTH_FONT
36+
#define SPI_FREQUENCY 40000000

0 commit comments

Comments
 (0)