elecrow 4.3, 5.0, 7.0 support

This commit is contained in:
mverch67 2025-05-01 00:55:14 +02:00
parent 795024c29c
commit 1850c42715
7 changed files with 57 additions and 62 deletions

View File

@ -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"
],

View File

@ -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;

View File

@ -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();

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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