From 55e9ce3d818ed9a0b72d6dd3982836344bf04e25 Mon Sep 17 00:00:00 2001 From: suchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com> Date: Fri, 1 Mar 2024 22:28:35 +0100 Subject: [PATCH 1/4] Vertical UI, round 2 --- .../src/core/device/ESP32-2432S028R.cpp | 4 +++ .../src/core/device/ESP32-3248S035C.cpp | 5 +++ .../src/core/device/ESP32-smartdisplay.cpp | 10 +++++- CYD-Klipper/src/ui/nav_buttons.cpp | 16 +++++++++- CYD-Klipper/src/ui/panels/macros_panel.cpp | 2 +- CYD-Klipper/src/ui/panels/move_panel.cpp | 4 +-- CYD-Klipper/src/ui/panels/print_panel.cpp | 2 +- CYD-Klipper/src/ui/panels/stats_panel.cpp | 4 +-- CYD-Klipper/src/ui/panels/temp_panel.cpp | 6 ++-- CYD-Klipper/src/ui/ui_utils.h | 31 ++++++++++++++----- 10 files changed, 65 insertions(+), 19 deletions(-) diff --git a/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp b/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp index 1543e2c..22ea562 100644 --- a/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp +++ b/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp @@ -1,6 +1,10 @@ #ifdef CYD_SCREEN_DRIVER_ESP32_2432S028R #include "../screen_driver.h" +#ifdef CYD_SCREEN_VERTICAL + #error "Vertical screen not supported with the ESP32_2432S028R driver" +#endif + #include #include #include "../../conf/global_config.h" diff --git a/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp b/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp index 630107f..b66b236 100644 --- a/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp +++ b/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp @@ -1,4 +1,9 @@ #ifdef CYD_SCREEN_DRIVER_ESP32_3248S035C +#include "../screen_driver.h" + +#ifdef CYD_SCREEN_VERTICAL + #error "Vertical screen not supported with the ESP32_3248S035C driver" +#endif #include "lvgl.h" #include diff --git a/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp b/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp index e338982..39f692c 100644 --- a/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp +++ b/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp @@ -33,6 +33,14 @@ void lv_screen_intercept(_lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_col original_screen_driver(disp_drv, area, color_p); } +#ifdef CYD_SCREEN_VERTICAL +#define ROTATION_INVERTED LV_DISP_ROT_180 +#define ROTATION_NORMAL LV_DISP_ROT_NONE +#else +#define ROTATION_INVERTED LV_DISP_ROT_270 +#define ROTATION_NORMAL LV_DISP_ROT_90 +#endif + void screen_setup() { smartdisplay_init(); @@ -44,7 +52,7 @@ void screen_setup() } #endif // CYD_SCREEN_DISABLE_INVERT_COLORS - lv_disp_set_rotation(lv_disp_get_default(), (global_config.rotateScreen) ? LV_DISP_ROT_270 : LV_DISP_ROT_90); + lv_disp_set_rotation(lv_disp_get_default(), (global_config.rotateScreen) ? ROTATION_INVERTED : ROTATION_NORMAL); } #endif // CYD_SCREEN_DRIVER_ESP32_SMARTDISPLAY \ No newline at end of file diff --git a/CYD-Klipper/src/ui/nav_buttons.cpp b/CYD-Klipper/src/ui/nav_buttons.cpp index 3bfc6ec..3a489ae 100644 --- a/CYD-Klipper/src/ui/nav_buttons.cpp +++ b/CYD-Klipper/src/ui/nav_buttons.cpp @@ -79,7 +79,13 @@ static void btn_click_macros(lv_event_t * e){ void create_button(const char* icon, const char* name, lv_event_cb_t button_click, lv_event_cb_t label_update, lv_obj_t * root){ lv_obj_t* btn = lv_btn_create(root); lv_obj_set_flex_grow(btn, 1); + +#ifdef CYD_SCREEN_VERTICAL + lv_obj_set_height(btn, CYD_SCREEN_SIDEBAR_SIZE_PX); +#else lv_obj_set_width(btn, CYD_SCREEN_SIDEBAR_SIZE_PX); +#endif + lv_obj_add_style(btn, &nav_button_style, 0); if (button_click != NULL) lv_obj_add_event_cb(btn, button_click, LV_EVENT_CLICKED, NULL); @@ -101,10 +107,18 @@ void nav_buttons_setup(unsigned char active_panel){ lv_obj_clear_flag(lv_scr_act(), LV_OBJ_FLAG_SCROLLABLE); lv_obj_t * root_panel = lv_create_empty_panel(lv_scr_act()); + +#ifdef CYD_SCREEN_VERTICAL + lv_obj_set_size(root_panel, CYD_SCREEN_WIDTH_PX, CYD_SCREEN_SIDEBAR_SIZE_PX); + lv_obj_align(root_panel, LV_ALIGN_BOTTOM_LEFT, 0, 0); + lv_layout_flex_row(root_panel, LV_FLEX_ALIGN_START, 0, 0); +#else lv_obj_set_size(root_panel, CYD_SCREEN_SIDEBAR_SIZE_PX, CYD_SCREEN_HEIGHT_PX); lv_obj_align(root_panel, LV_ALIGN_TOP_LEFT, 0, 0); lv_layout_flex_column(root_panel, LV_FLEX_ALIGN_START, 0, 0); +#endif + // Files/Print create_button(LV_SYMBOL_COPY, "Idle", btn_click_files, update_printer_data_time, root_panel); @@ -118,7 +132,7 @@ void nav_buttons_setup(unsigned char active_panel){ create_button(LV_SYMBOL_GPS, "Macro", btn_click_macros, NULL, root_panel); lv_obj_t * panel = lv_create_empty_panel(lv_scr_act()); - lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX); + lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_PANEL_HEIGHT_PX); lv_obj_align(panel, LV_ALIGN_TOP_RIGHT, 0, 0); switch (active_panel){ diff --git a/CYD-Klipper/src/ui/panels/macros_panel.cpp b/CYD-Klipper/src/ui/panels/macros_panel.cpp index 7d61744..0481f6c 100644 --- a/CYD-Klipper/src/ui/panels/macros_panel.cpp +++ b/CYD-Klipper/src/ui/panels/macros_panel.cpp @@ -105,7 +105,7 @@ void macros_panel_init(lv_obj_t* panel) { lv_obj_t * root_panel = lv_create_empty_panel(panel); lv_obj_set_scrollbar_mode(root_panel, LV_SCROLLBAR_MODE_OFF); - lv_obj_set_size(root_panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_MIN_BUTTON_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2); + lv_obj_set_size(root_panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_PANEL_HEIGHT_PX - CYD_SCREEN_MIN_BUTTON_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2); lv_obj_align(root_panel, LV_ALIGN_TOP_MID, 0, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX + CYD_SCREEN_GAP_PX * 2); lv_layout_flex_column(root_panel); diff --git a/CYD-Klipper/src/ui/panels/move_panel.cpp b/CYD-Klipper/src/ui/panels/move_panel.cpp index 2f19873..2ffc264 100644 --- a/CYD-Klipper/src/ui/panels/move_panel.cpp +++ b/CYD-Klipper/src/ui/panels/move_panel.cpp @@ -92,7 +92,7 @@ inline void root_panel_steppers_locked(lv_obj_t * root_panel){ const auto width = CYD_SCREEN_PANEL_WIDTH_PX - CYD_SCREEN_GAP_PX * 2; lv_obj_t * panel = lv_create_empty_panel(root_panel); - lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX); + lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_PANEL_HEIGHT_PX); lv_obj_set_style_pad_all(panel, CYD_SCREEN_GAP_PX, 0); lv_layout_flex_column(panel, LV_FLEX_ALIGN_SPACE_BETWEEN, 0, 0); @@ -155,7 +155,7 @@ inline void root_panel_steppers_locked(lv_obj_t * root_panel){ inline void root_panel_steppers_unlocked(lv_obj_t * root_panel){ lv_obj_t * panel = lv_create_empty_panel(root_panel); - lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX); + lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_PANEL_HEIGHT_PX); lv_obj_set_style_pad_all(panel, CYD_SCREEN_GAP_PX, 0); lv_layout_flex_column(panel, LV_FLEX_ALIGN_CENTER); diff --git a/CYD-Klipper/src/ui/panels/print_panel.cpp b/CYD-Klipper/src/ui/panels/print_panel.cpp index 83819f9..e51d88f 100644 --- a/CYD-Klipper/src/ui/panels/print_panel.cpp +++ b/CYD-Klipper/src/ui/panels/print_panel.cpp @@ -95,7 +95,7 @@ void print_panel_init(lv_obj_t* panel){ lv_obj_set_style_radius(list, 0, 0); lv_obj_set_style_border_width(list, 0, 0); lv_obj_set_style_bg_opa(list, LV_OPA_TRANSP, 0); - lv_obj_set_size(list, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX); + lv_obj_set_size(list, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_PANEL_HEIGHT_PX); lv_obj_align(list, LV_ALIGN_CENTER, 0, 0); FILESYSTEM_FILE* files = get_files(25); diff --git a/CYD-Klipper/src/ui/panels/stats_panel.cpp b/CYD-Klipper/src/ui/panels/stats_panel.cpp index 8ef4687..b55793b 100644 --- a/CYD-Klipper/src/ui/panels/stats_panel.cpp +++ b/CYD-Klipper/src/ui/panels/stats_panel.cpp @@ -228,7 +228,7 @@ void stats_panel_init(lv_obj_t* panel) { auto panel_width = CYD_SCREEN_PANEL_WIDTH_PX / 2 - CYD_SCREEN_GAP_PX * 3; lv_obj_t * left_panel = lv_create_empty_panel(panel); - lv_obj_set_size(left_panel, panel_width, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2); + lv_obj_set_size(left_panel, panel_width, CYD_SCREEN_PANEL_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2); lv_layout_flex_column(left_panel); lv_obj_set_flex_align(left_panel, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_START); lv_obj_align(left_panel, LV_ALIGN_TOP_LEFT, CYD_SCREEN_GAP_PX, CYD_SCREEN_GAP_PX); @@ -244,7 +244,7 @@ void stats_panel_init(lv_obj_t* panel) { create_stat_text_block(left_panel, "Feedrate:", label_feedrate); lv_obj_t * right_panel = lv_create_empty_panel(panel); - lv_obj_set_size(right_panel, panel_width, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2); + lv_obj_set_size(right_panel, panel_width, CYD_SCREEN_PANEL_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2); lv_layout_flex_column(right_panel, LV_FLEX_ALIGN_CENTER); lv_obj_align(right_panel, LV_ALIGN_TOP_RIGHT, -1 * CYD_SCREEN_GAP_PX, CYD_SCREEN_GAP_PX); diff --git a/CYD-Klipper/src/ui/panels/temp_panel.cpp b/CYD-Klipper/src/ui/panels/temp_panel.cpp index 7f4042f..7a866f1 100644 --- a/CYD-Klipper/src/ui/panels/temp_panel.cpp +++ b/CYD-Klipper/src/ui/panels/temp_panel.cpp @@ -126,7 +126,7 @@ static void keyboard_callback(lv_event_t * e){ static void show_keyboard(lv_event_t * e){ lv_obj_t * parent = lv_create_empty_panel(root_panel); lv_obj_set_style_bg_opa(parent, LV_OPA_50, 0); - lv_obj_set_size(parent, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX); + lv_obj_set_size(parent, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_PANEL_HEIGHT_PX); lv_layout_flex_column(parent, LV_FLEX_ALIGN_SPACE_BETWEEN); lv_obj_t * empty_panel = lv_create_empty_panel(parent); @@ -261,7 +261,7 @@ void temp_panel_init(lv_obj_t * panel){ edit_mode = false; lv_obj_t * root_temp_panel = lv_create_empty_panel(panel); - lv_obj_set_size(root_temp_panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_HEIGHT_PX); + lv_obj_set_size(root_temp_panel, CYD_SCREEN_PANEL_WIDTH_PX, CYD_SCREEN_PANEL_HEIGHT_PX); lv_obj_align(root_temp_panel, LV_ALIGN_TOP_RIGHT, 0, 0); lv_obj_set_style_pad_all(root_temp_panel, CYD_SCREEN_GAP_PX, 0); lv_layout_flex_column(root_temp_panel); @@ -293,7 +293,7 @@ void temp_panel_init(lv_obj_t * panel){ lv_msg_subscribe_obj(DATA_PRINTER_DATA, chart, NULL); lv_obj_t * single_screen_panel = lv_create_empty_panel(root_temp_panel); - lv_obj_set_size(single_screen_panel, element_width, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2 - CYD_SCREEN_GAP_PX / 2); + lv_obj_set_size(single_screen_panel, element_width, CYD_SCREEN_PANEL_HEIGHT_PX - CYD_SCREEN_GAP_PX * 2 - CYD_SCREEN_GAP_PX / 2); lv_layout_flex_column(single_screen_panel); lv_obj_t * temp_rows[2] = {0}; diff --git a/CYD-Klipper/src/ui/ui_utils.h b/CYD-Klipper/src/ui/ui_utils.h index bd437e3..d58ecc2 100644 --- a/CYD-Klipper/src/ui/ui_utils.h +++ b/CYD-Klipper/src/ui/ui_utils.h @@ -1,15 +1,30 @@ #pragma once -#ifndef CYD_SCREEN_WIDTH_PX -#define CYD_SCREEN_WIDTH_PX LCD_HEIGHT -#endif +#ifdef CYD_SCREEN_VERTICAL + #ifndef CYD_SCREEN_WIDTH_PX + #define CYD_SCREEN_WIDTH_PX LCD_WIDTH + #endif -#ifndef CYD_SCREEN_HEIGHT_PX -#define CYD_SCREEN_HEIGHT_PX LCD_WIDTH -#endif + #ifndef CYD_SCREEN_HEIGHT_PX + #define CYD_SCREEN_HEIGHT_PX LCD_HEIGHT + #endif -#define CYD_SCREEN_PANEL_WIDTH_PX \ - (CYD_SCREEN_WIDTH_PX - CYD_SCREEN_SIDEBAR_SIZE_PX) + #define CYD_SCREEN_PANEL_HEIGHT_PX \ + (CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_SIDEBAR_SIZE_PX) + #define CYD_SCREEN_PANEL_WIDTH_PX CYD_SCREEN_WIDTH_PX +#else + #ifndef CYD_SCREEN_WIDTH_PX + #define CYD_SCREEN_WIDTH_PX LCD_HEIGHT + #endif + + #ifndef CYD_SCREEN_HEIGHT_PX + #define CYD_SCREEN_HEIGHT_PX LCD_WIDTH + #endif + + #define CYD_SCREEN_PANEL_HEIGHT_PX CYD_SCREEN_HEIGHT_PX + #define CYD_SCREEN_PANEL_WIDTH_PX \ + (CYD_SCREEN_WIDTH_PX - CYD_SCREEN_SIDEBAR_SIZE_PX) +#endif typedef struct { lv_event_cb_t event; From 801432c3a6ed87da1e058f2908f5665d47aaabf5 Mon Sep 17 00:00:00 2001 From: suchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com> Date: Sat, 2 Mar 2024 10:19:03 +0100 Subject: [PATCH 2/4] Driver configuration improvements --- .../src/core/device/ESP32-2432S028R.cpp | 1 - .../src/core/device/ESP32-3248S035C.cpp | 1 - .../src/core/device/ESP32-smartdisplay.cpp | 24 +++++++++++++------ CYD-Klipper/src/core/lv_setup.cpp | 10 +++++--- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp b/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp index 22ea562..d2734d8 100644 --- a/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp +++ b/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp @@ -85,7 +85,6 @@ void screen_setup() tft.setRotation(global_config.rotateScreen ? 3 : 1); tft.fillScreen(TFT_BLACK); - set_screen_brightness(); set_invert_display(); touchscreen_spi.begin(XPT2046_CLK, XPT2046_MISO, XPT2046_MOSI, XPT2046_CS); diff --git a/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp b/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp index b66b236..fd39f00 100644 --- a/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp +++ b/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp @@ -116,7 +116,6 @@ void screen_setup() ledcAttachPin(TFT_BL, 0); tft.setRotation(global_config.rotateScreen ? 3 : 1); tft.fillScreen(TFT_BLACK); - set_screen_brightness(); set_invert_display(); LED_init(); diff --git a/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp b/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp index 39f692c..5e29e05 100644 --- a/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp +++ b/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp @@ -15,7 +15,8 @@ void screen_setBrightness(byte brightness) smartdisplay_lcd_set_backlight(brightness / 255.0f); } -void set_invert_display(){ +void set_invert_display() +{ lv_obj_invalidate(lv_scr_act()); } @@ -33,12 +34,21 @@ void lv_screen_intercept(_lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_col original_screen_driver(disp_drv, area, color_p); } -#ifdef CYD_SCREEN_VERTICAL -#define ROTATION_INVERTED LV_DISP_ROT_180 -#define ROTATION_NORMAL LV_DISP_ROT_NONE -#else -#define ROTATION_INVERTED LV_DISP_ROT_270 -#define ROTATION_NORMAL LV_DISP_ROT_90 + +#ifndef ROTATION_INVERTED + #ifdef CYD_SCREEN_VERTICAL + #define ROTATION_INVERTED LV_DISP_ROT_180 + #else + #define ROTATION_INVERTED LV_DISP_ROT_270 + #endif +#endif + +#ifndef ROTATION_NORMAL + #ifdef CYD_SCREEN_VERTICAL + #define ROTATION_NORMAL LV_DISP_ROT_NONE + #else + #define ROTATION_NORMAL LV_DISP_ROT_90 + #endif #endif void screen_setup() diff --git a/CYD-Klipper/src/core/lv_setup.cpp b/CYD-Klipper/src/core/lv_setup.cpp index 4b41b2c..5b2d53c 100644 --- a/CYD-Klipper/src/core/lv_setup.cpp +++ b/CYD-Klipper/src/core/lv_setup.cpp @@ -25,13 +25,14 @@ void lv_touch_intercept_calibration(lv_indev_drv_t *indev_driver, lv_indev_data_ original_touch_driver(indev_driver, data); if (data->state == LV_INDEV_STATE_PR){ - point[0] = data->point.x; - point[1] = data->point.y; - + lv_coord_t local_point[] = {data->point.x, data->point.y}; while (data->state == LV_INDEV_STATE_PR){ original_touch_driver(indev_driver, data); delay(20); } + + point[0] = local_point[0]; + point[1] = local_point[1]; } data->state = LV_INDEV_STATE_REL; @@ -102,6 +103,8 @@ void lv_do_calibration(){ } } + delay(300); + lv_coord_t x1 = point[0]; lv_coord_t y1 = point[1]; point[0] = 0; @@ -267,6 +270,7 @@ void lv_setup() screen_timer_setup(); screen_timer_start(); + set_screen_brightness(); } bool is_screen_asleep() From 49c27f2b019cc7cc129c3d13838a75ba75a9e28c Mon Sep 17 00:00:00 2001 From: suchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com> Date: Sat, 2 Mar 2024 10:21:09 +0100 Subject: [PATCH 3/4] Add esp32-2432S032C --- .../boards/esp32-2432S032C-smartdisplay.json | 125 ++++++++++++++++++ CYD-Klipper/platformio.ini | 7 +- 2 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 CYD-Klipper/boards/esp32-2432S032C-smartdisplay.json diff --git a/CYD-Klipper/boards/esp32-2432S032C-smartdisplay.json b/CYD-Klipper/boards/esp32-2432S032C-smartdisplay.json new file mode 100644 index 0000000..f377ad4 --- /dev/null +++ b/CYD-Klipper/boards/esp32-2432S032C-smartdisplay.json @@ -0,0 +1,125 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32_out.ld" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D ESP32_2432S032C'", + "'-D LCD_WIDTH=240'", + "'-D LCD_HEIGHT=320'", + "'-D LVGL_BUFFER_PIXELS=(LCD_WIDTH*LCD_HEIGHT/4)'", + "'-D LVGL_BUFFER_MALLOC_FLAGS=(MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT)'", + "'-D BCKL=27'", + "'-D LCD_IPS'", + "'-D LCD_ST7789_SPI'", + "'-D ST7789_SPI_HOST=SPI2_HOST'", + "'-D ST7789_SPI_DMA_CHANNEL=SPI_DMA_CH_AUTO'", + "'-D ST7789_SPI_BUS_MOSI_IO_NUM=13'", + "'-D ST7789_SPI_BUS_MISO_IO_NUM=12'", + "'-D ST7789_SPI_BUS_SCLK_IO_NUM=14'", + "'-D ST7789_SPI_BUS_QUADWP_IO_NUM=GPIO_NUM_NC'", + "'-D ST7789_SPI_BUS_QUADHD_IO_NUM=GPIO_NUM_NC'", + "'-D ST7789_SPI_BUS_MAX_TRANSFER_SZ=0'", + "'-D ST7789_SPI_BUS_FLAGS=0'", + "'-D ST7789_SPI_BUS_INTR_FLAGS=0'", + "'-D ST7789_SPI_CONFIG_CS_GPIO_NUM=15'", + "'-D ST7789_SPI_CONFIG_DC_GPIO_NUM=2'", + "'-D ST7789_SPI_CONFIG_SPI_MODE=SPI_MODE3'", + "'-D ST7789_SPI_CONFIG_PCLK_HZ=24000000'", + "'-D ST7789_SPI_CONFIG_TRANS_QUEUE_DEPTH=10'", + "'-D ST7789_SPI_CONFIG_LCD_CMD_BITS=8'", + "'-D ST7789_SPI_CONFIG_LCD_PARAM_BITS=8'", + "'-D ST7789_SPI_CONFIG_FLAGS_DC_AS_CMD_PHASE=false'", + "'-D ST7789_SPI_CONFIG_FLAGS_DC_LOW_ON_DATA=false'", + "'-D ST7789_SPI_CONFIG_FLAGS_OCTAL_MODE=false'", + "'-D ST7789_SPI_CONFIG_FLAGS_LSB_FIRST=false'", + "'-D ST7789_DEV_CONFIG_RESET_GPIO_NUM=GPIO_NUM_NC'", + "'-D ST7789_DEV_CONFIG_COLOR_SPACE=ESP_LCD_COLOR_SPACE_RGB'", + "'-D ST7789_DEV_CONFIG_BITS_PER_PIXEL=16'", + "'-D ST7789_DEV_CONFIG_FLAGS_RESET_ACTIVE_HIGH=false'", + "'-D ST7789_DEV_CONFIG_VENDOR_CONFIG=NULL'", + "'-D LCD_SWAP_XY=false'", + "'-D LCD_MIRROR_X=false'", + "'-D LCD_MIRROR_Y=false'", + "'-D BOARD_HAS_TOUCH'", + "'-D TOUCH_GT911_I2C'", + "'-D GT911_I2C_HOST=0'", + "'-D GT911_I2C_CONFIG_SDA_IO_NUM=33'", + "'-D GT911_I2C_CONFIG_SCL_IO_NUM=32'", + "'-D GT911_I2C_CONFIG_SDA_PULLUP_EN=GPIO_PULLUP_ENABLE'", + "'-D GT911_I2C_CONFIG_SCL_PULLUP_EN=GPIO_PULLUP_ENABLE'", + "'-D GT911_I2C_CONFIG_MASTER_CLK_SPEED=400000'", + "'-D GT911_I2C_CONFIG_CLK_FLAGS=0'", + "'-D GT911_IO_I2C_CONFIG_DEV_ADDR=ESP_LCD_TOUCH_IO_I2C_GT911_ADDRESS'", + "'-D GT911_IO_I2C_CONFIG_CONTROL_PHASE_BYTES=1'", + "'-D GT911_IO_I2C_CONFIG_DC_BIT_OFFSET=0'", + "'-D GT911_IO_I2C_CONFIG_LCD_CMD_BITS=16'", + "'-D GT911_IO_I2C_CONFIG_LCD_PARAM_BITS=0'", + "'-D GT911_IO_I2C_CONFIG_FLAGS_DC_LOW_ON_DATA=false'", + "'-D GT911_IO_I2C_CONFIG_FLAGS_DISABLE_CONTROL_PHASE=true'", + "'-D GT911_TOUCH_CONFIG_X_MAX=LCD_WIDTH'", + "'-D GT911_TOUCH_CONFIG_Y_MAX=LCD_HEIGHT'", + "'-D GT911_TOUCH_CONFIG_RST_GPIO_NUM=25'", + "'-D GT911_TOUCH_CONFIG_INT_GPIO_NUM=21'", + "'-D GT911_TOUCH_CONFIG_LEVELS_RESET=0'", + "'-D GT911_TOUCH_CONFIG_LEVELS_INTERRUPT=0'", + "'-D TOUCH_SWAP_XY=true'", + "'-D TOUCH_SWAP_X=false'", + "'-D TOUCH_SWAP_Y=false'", + "'-D BOARD_HAS_TF'", + "'-D TF_CS=5'", + "'-D TF_SPI_MOSI=23'", + "'-D TF_SPI_SCLK=18'", + "'-D TF_SPI_MISO=19'", + "'-D BOARD_HAS_RGB_LED'", + "'-D RGB_LED_R=4'", + "'-D RGB_LED_G=16'", + "'-D RGB_LED_B=17'", + "'-D BOARD_HAS_CDS'", + "'-D CDS=34'", + "'-D BOARD_HAS_SPEAK'", + "'-D SPEAK=26'", + + "-DCYD_SCREEN_HEIGHT_PX=240", + "-DCYD_SCREEN_WIDTH_PX=320", + "-DCYD_SCREEN_GAP_PX=8", + "-DCYD_SCREEN_MIN_BUTTON_HEIGHT_PX=35", + "-DCYD_SCREEN_MIN_BUTTON_WIDTH_PX=35", + "-DCYD_SCREEN_FONT=lv_font_montserrat_14", + "-DCYD_SCREEN_FONT_SMALL=lv_font_montserrat_10", + "-DCYD_SCREEN_SIDEBAR_SIZE_PX=40", + "-DCYD_SCREEN_DRIVER_ESP32_SMARTDISPLAY=1", + "-DCYD_SCREEN_DISABLE_TOUCH_CALIBRATION=1" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_board": "esp-wroom-32.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "esp32-2432S032C-SD", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.aliexpress.com/item/1005006224494145.html", + "vendor": "Sunton" + } \ No newline at end of file diff --git a/CYD-Klipper/platformio.ini b/CYD-Klipper/platformio.ini index 7a62560..f3bb4fb 100644 --- a/CYD-Klipper/platformio.ini +++ b/CYD-Klipper/platformio.ini @@ -43,8 +43,11 @@ lib_deps = bblanchon/ArduinoJson@^7.0.0 plageoj/UrlEncode@^1.0.1 -[env:esp32-3248S035C-smartdisplay] +[env:esp32-3248S035C-SD] board = esp32-3248S035C-smartdisplay -[env:esp32-2432S028R-smartdisplay] +[env:esp32-2432S028R-SD] board = esp32-2432S028R-smartdisplay + +[env:esp32-2432S032C-SD] +board = esp32-2432S032C-smartdisplay \ No newline at end of file From fc7cfbd85b1b5c5b4af5c9c8141b13f07c5707c4 Mon Sep 17 00:00:00 2001 From: suchmememanyskill <38142618+suchmememanyskill@users.noreply.github.com> Date: Sat, 2 Mar 2024 10:22:18 +0100 Subject: [PATCH 4/4] Add esp32-2432S032C to CI --- ci.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci.py b/ci.py index f22f181..6e259f1 100644 --- a/ci.py +++ b/ci.py @@ -1,6 +1,6 @@ import subprocess, os, shutil, json -CYD_PORTS = ["esp32-3248S035C", "esp32-2432S028R"] +CYD_PORTS = ["esp32-3248S035C", "esp32-2432S028R", "esp32-2432S032C-SD"] BASE_DIR = os.getcwd() def get_manifest(base_path : str, device_name : str):