diff --git a/boards/crowpanel.json b/boards/crowpanel.json index 570961ed7..40312306a 100644 --- a/boards/crowpanel.json +++ b/boards/crowpanel.json @@ -8,8 +8,6 @@ "core": "esp32", "extra_flags": [ "-DBOARD_HAS_PSRAM", - "-DARDUINO_USB_CDC_ON_BOOT=1", - "-DARDUINO_USB_MODE=0", "-DARDUINO_RUNNING_CORE=1", "-DARDUINO_EVENT_RUNNING_CORE=0" ], diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index 67f0da600..9e395d605 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -584,7 +584,7 @@ void NodeDB::installDefaultConfig(bool preserveKey = false) strncpy(config.network.ntp_server, "meshtastic.pool.ntp.org", 32); #if (defined(T_DECK) || defined(T_WATCH_S3) || defined(UNPHONE) || defined(PICOMPUTER_S3) || defined(SENSECAP_INDICATOR) || \ - defined(ELECROW)) && \ + defined(ELECROW_PANEL)) && \ HAS_TFT // switch BT off by default; use TFT programming mode or hotkey to enable config.bluetooth.enabled = false; @@ -689,7 +689,7 @@ void NodeDB::initConfigIntervals() config.display.screen_on_secs = default_screen_on_secs; -#if defined(T_WATCH_S3) || defined(T_DECK) || defined(UNPHONE) || defined(MESH_TAB) || defined(RAK14014) || defined(ELECROW) +#if defined(T_WATCH_S3) || defined(T_DECK) || defined(UNPHONE) || defined(MESH_TAB) || defined(RAK14014) || defined(ELECROW_PANEL) config.power.is_power_saving = true; config.display.screen_on_secs = 30; config.power.wait_bluetooth_secs = 30; diff --git a/src/sleep.cpp b/src/sleep.cpp index 2985db0c2..b3678845e 100644 --- a/src/sleep.cpp +++ b/src/sleep.cpp @@ -400,7 +400,7 @@ esp_sleep_wakeup_cause_t doLightSleep(uint64_t sleepMsec) // FIXME, use a more r #ifdef INPUTDRIVER_ENCODER_BTN gpio_wakeup_enable((gpio_num_t)INPUTDRIVER_ENCODER_BTN, GPIO_INTR_LOW_LEVEL); #endif -#if defined(T_WATCH_S3) || defined(ELECROW) +#if defined(WAKE_ON_TOUCH) gpio_wakeup_enable((gpio_num_t)SCREEN_TOUCH_INT, GPIO_INTR_LOW_LEVEL); #endif enableLoraInterrupt(); diff --git a/variants/elecrow_panel/pins_arduino.h b/variants/elecrow_panel/pins_arduino.h index b98530378..f63fd4a20 100644 --- a/variants/elecrow_panel/pins_arduino.h +++ b/variants/elecrow_panel/pins_arduino.h @@ -17,13 +17,11 @@ static const uint8_t MOSI = 48; static const uint8_t MISO = 47; static const uint8_t SCK = 41; -#ifndef CROW_SELECT static const uint8_t SPI_MOSI = 6; static const uint8_t SPI_SCK = 5; static const uint8_t SPI_MISO = 4; static const uint8_t SPI_CS = 7; // SD does not support -1 static const uint8_t SDCARD_CS = SPI_CS; -#endif static const uint8_t A0 = 1; static const uint8_t A1 = 2; diff --git a/variants/elecrow_panel/platformio.ini b/variants/elecrow_panel/platformio.ini index 7eb449b05..17cc9a40d 100644 --- a/variants/elecrow_panel/platformio.ini +++ b/variants/elecrow_panel/platformio.ini @@ -7,7 +7,6 @@ board_build.partitions = default_16MB.csv ; must be here for some reason, board. build_flags = ${esp32s3_base.build_flags} -Os -I variants/elecrow_panel - -D ELECROW -D ELECROW_PANEL -D CONFIG_ARDUHAL_LOG_COLORS -D RADIOLIB_DEBUG_SPI=0 @@ -28,9 +27,9 @@ build_flags = ${esp32s3_base.build_flags} -Os -D HAS_SCREEN=0 -D HAS_TFT=1 -D RAM_SIZE=6144 - -D LV_LVGL_H_INCLUDE_SIMPLE - -D LV_CONF_INCLUDE_SIMPLE - -D LV_COMP_CONF_INCLUDE_SIMPLE + -D LV_LVGL_H_INCLUDE_SIMPLE + -D LV_CONF_INCLUDE_SIMPLE + -D LV_COMP_CONF_INCLUDE_SIMPLE -D LV_USE_SYSMON=0 -D LV_USE_PROFILER=0 -D LV_USE_PERF_MONITOR=0 @@ -48,21 +47,44 @@ lib_deps = ${esp32s3_base.lib_deps} lovyan03/LovyanGFX@^1.2.0 hideakitai/TCA9534@^0.1.1 -[env:elecrow-24-28-tft] +[crowpanel_small] ; 2.4, 2.8, 3.5 inch extends = crowpanel_base - +build.extra_flags = -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=0 build_flags = ${crowpanel_base.build_flags} - -D TFT_HEIGHT=320 ; needed in variant.h -D HAS_SDCARD -D SDCARD_USE_SOFT_SPI -D SPI_DRIVER_SELECT=2 -D USE_PIN_BUZZER ; -D INPUTDRIVER_BUTTON_TYPE=0 ; no button as this pin is assigned to LoRa cs! - -D SCREEN_TOUCH_INT=47 ; used to wake up the MCU by touch -D LGFX_DRIVER_TEMPLATE -D LGFX_DRIVER=LGFX_GENERIC -D GFX_DRIVER_INC=\"graphics/LGFX/LGFX_GENERIC.h\" + -D VIEW_320x240 + -D MAP_FULL_REDRAW + +[crowpanel_large] ; 4.3, 5.0, 7.0 inch +extends = crowpanel_base +build.extra_flags = -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MODE=1 +build_flags = + ${crowpanel_base.build_flags} + -D HAS_SDCARD + -D TFT_HEIGHT=480 + -D TFT_WIDTH=800 + -D TFT_OFFSET_X=0 + -D TFT_OFFSET_Y=0 + -D TFT_BUSY=-1 + -D LGFX_DRIVER=LGFX_ELECROW70 + -D GFX_DRIVER_INC=\"graphics/LGFX/LGFX_ELECROW70.h\" + -D DISPLAY_SET_RESOLUTION + -D MAP_FULL_REDRAW + +[env:elecrow-24-28-tft] +extends = crowpanel_small + +build_flags = + ${crowpanel_small.build_flags} + -D TFT_HEIGHT=320 ; needed in variant.h -D SPI_FREQUENCY=80000000 -D LGFX_SCREEN_WIDTH=240 -D LGFX_SCREEN_HEIGHT=320 @@ -81,25 +103,14 @@ build_flags = -D LGFX_TOUCH_INT=47 -D LGFX_TOUCH_RST=48 -D LGFX_TOUCH_ROTATION=0 - -D VIEW_320x240 - -D MAP_FULL_REDRAW [env:elecrow-35-tft] -extends = crowpanel_base +extends = crowpanel_small build_flags = - ${crowpanel_base.build_flags} - -D TFT_HEIGHT=480 ; needed in variant.h - -D HAS_SDCARD - -D SDCARD_USE_SOFT_SPI - -D SPI_DRIVER_SELECT=2 - -D USE_PIN_BUZZER -; -D INPUTDRIVER_BUTTON_TYPE=0 ; no button as this pin is assigned to LoRa cs! - -D SCREEN_TOUCH_INT=47 ; used to wake up the MCU by touch + ${crowpanel_small.build_flags} + -D TFT_WIDTH=320 ; needed in variant.h -D LV_CACHE_DEF_SIZE=2097152 - -D LGFX_DRIVER_TEMPLATE - -D LGFX_DRIVER=LGFX_GENERIC - -D GFX_DRIVER_INC=\"graphics/LGFX/LGFX_GENERIC.h\" -D SPI_FREQUENCY=60000000 -D LGFX_SCREEN_WIDTH=320 -D LGFX_SCREEN_HEIGHT=480 @@ -119,52 +130,37 @@ build_flags = -D LGFX_TOUCH_RST=48 -D LGFX_TOUCH_ROTATION=0 -D DISPLAY_SET_RESOLUTION - -D VIEW_320x240 - -D MAP_FULL_REDRAW # 4.3 inch 800x480 IPS ST7265 [env:elecrow-43-tft] -extends = crowpanel_base +extends = crowpanel_large board_level = extra build_flags = - ${crowpanel_base.build_flags} - -D TFT_HEIGHT=480 - -D TFT_WIDTH=800 - -D TFT_OFFSET_X=0 - -D TFT_OFFSET_Y=0 - -D TFT_BUSY=-1 - -D CROW_SELECT=1 - + ${crowpanel_large.build_flags} + -D CROW_SELECT=1 + -D VIEW_320x240 + # 5 inch 800x480 IPS ST7262 [env:elecrow-50-tft] -extends = crowpanel_base +extends = crowpanel_large board_level = extra build_flags = - ${crowpanel_base.build_flags} - -D TFT_HEIGHT=480 - -D TFT_WIDTH=800 - -D TFT_OFFSET_X=0 - -D TFT_OFFSET_Y=0 - -D TFT_BUSY=-1 - -D CROW_SELECT=2 + ${crowpanel_large.build_flags} + -D CROW_SELECT=2 +; -D VIEW_800x480 + -D VIEW_320x240 # 7 inch 800x480 IPS SC7277 [env:elecrow-70-tft] -extends = crowpanel_base +extends = crowpanel_large board_level = extra build_flags = - ${crowpanel_base.build_flags} - -D TFT_HEIGHT=480 - -D TFT_WIDTH=800 - -D TFT_OFFSET_X=0 - -D TFT_OFFSET_Y=0 - -D TFT_BUSY=-1 - -D CROW_SELECT=3 - -D LGFX_DRIVER=LGFX_ELECROW70 - -D GFX_DRIVER_INC=\"graphics/LGFX/LGFX_ELECROW70.h\" - -D VIEW_800x480 - -I lib/device-ui/generated/ui_800x480 + ${crowpanel_large.build_flags} + -D CROW_SELECT=3 + -D FREQ_WRITE=13000000 +; -D VIEW_800x480 + -D VIEW_320x240 diff --git a/variants/elecrow_panel/variant.h b/variants/elecrow_panel/variant.h index b1035ed31..159b23bb4 100644 --- a/variants/elecrow_panel/variant.h +++ b/variants/elecrow_panel/variant.h @@ -26,6 +26,7 @@ #define SCREEN_TOUCH_RST 48 #define TOUCH_I2C_PORT 0 #define TOUCH_SLAVE_ADDRESS 0x38 // FT5x06 +#define WAKE_ON_TOUCH #endif #if TFT_HEIGHT == 480 && not defined(HAS_TFT) // 3.5 TFT @@ -53,6 +54,7 @@ #define SCREEN_TOUCH_RST 48 #define TOUCH_I2C_PORT 0 #define TOUCH_SLAVE_ADDRESS 0x5D // GT911 +#define WAKE_ON_TOUCH #endif #ifdef CROW_SELECT @@ -160,7 +162,8 @@ #define USE_SX1262 #define LORA_CS 0 // GND -#if TFT_HEIGHT == 320 || TFT_HEIGHT == 480 // 2.4 - 3.5 TFT +#if TFT_HEIGHT == 320 || TFT_WIDTH == 320 // 2.4 - 3.5 TFT +#define HW_SPI1_DEVICE #define LORA_SCK 10 #define LORA_MISO 9 #define LORA_MOSI 3 @@ -182,7 +185,6 @@ #define LORA_DIO2 2 // SX1262 BUSY #endif -#define HW_SPI1_DEVICE #define SX126X_CS LORA_CS #define SX126X_DIO1 LORA_DIO1 #define SX126X_BUSY LORA_DIO2 diff --git a/variants/t-watch-s3/variant.h b/variants/t-watch-s3/variant.h index 5a6aebfa2..7e3b95e9b 100644 --- a/variants/t-watch-s3/variant.h +++ b/variants/t-watch-s3/variant.h @@ -24,6 +24,7 @@ #define SCREEN_TOUCH_USE_I2C1 #define TOUCH_I2C_PORT 1 #define TOUCH_SLAVE_ADDRESS 0x38 +#define WAKE_ON_TOUCH #define SLEEP_TIME 180