From 3e6647a45861c2ccefa662ce59ed53fdcc67b76a Mon Sep 17 00:00:00 2001 From: epiHATR Date: Thu, 9 Jan 2025 10:20:59 +0700 Subject: [PATCH] Add Heltec Vision Master T190 board Add User setup preset Add example for using 170x320 TFT screen --- User_Setup_Select.h | 2 + .../Setup400_Heltec_VisionMaster_T190.h | 37 ++++++++++++++++ .../Heltec_Vision_Master_T190.ino | 42 +++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 User_Setups/Setup400_Heltec_VisionMaster_T190.h create mode 100644 examples/170 x 320/Heltec_Vision_Master_T190/Heltec_Vision_Master_T190.ino diff --git a/User_Setup_Select.h b/User_Setup_Select.h index 6a516399..24cd8417 100644 --- a/User_Setup_Select.h +++ b/User_Setup_Select.h @@ -144,6 +144,8 @@ //#include // Setup file for Bw16-based boards with ST7735 160 x 80 TFT //#include // Setup file for Waveshare ESP32-S3-Touch-LCD-1.28 board with GC9A01 240*240 TFT +//#include // Setup file for Heltec Vision Master T190 board with ST7789 TFT-LCD 170x320 display + //#include // Template file for a setup diff --git a/User_Setups/Setup400_Heltec_VisionMaster_T190.h b/User_Setups/Setup400_Heltec_VisionMaster_T190.h new file mode 100644 index 00000000..747b3472 --- /dev/null +++ b/User_Setups/Setup400_Heltec_VisionMaster_T190.h @@ -0,0 +1,37 @@ +// See SetupX_Template.h for all options available +#define USER_SETUP_ID 400 + +// Full configuration option, define additional parameters below for this display +#define ST7789_DRIVER + +#define USE_HSPI_PORT + +// Colour order Blue-Green-Red +#define TFT_RGB_ORDER TFT_BGR + +#define TFT_MOSI 48 +#define TFT_SCLK 38 +#define TFT_CS 39 // Chip select control pin +#define TFT_DC 47 // Data Command control pin +#define TFT_RST 40 // Reset pin (could connect to RST pin) +#define TFT_BL 17 +#define TFT_BACKLIGHT_ON HIGH +#define LCD_CONTROL_PIN 7 + +#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH +#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters +#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters +#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm +#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. +#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. +#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts +#define SMOOTH_FONT + +#define TFT_WIDTH 170 +#define TFT_HEIGHT 320 + +#define SPI_FREQUENCY 32000000 + +#define SPI_READ_FREQUENCY 20000000 + +#define SPI_TOUCH_FREQUENCY 2500000 \ No newline at end of file diff --git a/examples/170 x 320/Heltec_Vision_Master_T190/Heltec_Vision_Master_T190.ino b/examples/170 x 320/Heltec_Vision_Master_T190/Heltec_Vision_Master_T190.ino new file mode 100644 index 00000000..69673128 --- /dev/null +++ b/examples/170 x 320/Heltec_Vision_Master_T190/Heltec_Vision_Master_T190.ino @@ -0,0 +1,42 @@ +#include // Include the graphics library + +TFT_eSPI tft = TFT_eSPI(); // Create an instance of the library + +void setup() { + pinMode(LCD_CONTROL_PIN, OUTPUT); + digitalWrite(LCD_CONTROL_PIN, LOW); + + // Initialize the backlight pin + pinMode(TFT_BL, OUTPUT); + digitalWrite(TFT_BL, HIGH); // Turn on the backlight (HIGH = ON) + + // Initialize the display + tft.init(); + tft.setRotation(1); // Set rotation for landscape/portrait orientation (0-3) + + // Clear the screen with a background color + tft.fillScreen(TFT_BLACK); + + // Set text color and background color + tft.setTextColor(TFT_WHITE, TFT_BLACK); + + // Set text size + tft.setTextSize(2); + + // Display some text + tft.setCursor(10, 10); // Set the cursor position + tft.println("Hello, World!"); + + // Display additional text + tft.setTextColor(TFT_YELLOW, TFT_BLACK); + tft.setTextSize(3); + tft.setCursor(10, 50); + tft.println("ST7789 Screen!"); + + // Draw some additional decorative elements (optional) + tft.drawRect(1, 1, tft.width() - 1, tft.height() - 1, TFT_RED); // Red rectangle around text +} + +void loop() { + // Nothing to do here for this example +}