Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
Adolfo Reyna
2026-07-04 15:39:52 -04:00
396 changed files with 114753 additions and 2051 deletions
@@ -13,6 +13,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+18 -21
View File
@@ -1,25 +1,22 @@
[general]
vendor=BigTreeTech
name=Panda Touch,K Touch
general.vendor=BigTreeTech
general.name=Panda Touch,K Touch
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
esptoolFlashFreq=120M
bluetooth=true
usbHostEnabled=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
hardware.usbHostEnabled=true
[display]
size=5"
shape=rectangle
dpi=187
storage.userDataLocation=Internal
[lvgl]
colorDepth=16
fontSize=18
display.size=5"
display.shape=rectangle
display.dpi=187
lvgl.colorDepth=16
lvgl.fontSize=18
+12 -15
View File
@@ -1,19 +1,16 @@
[general]
vendor=CYD
name=2432S024C
general.vendor=CYD
general.name=2432S024C
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.4"
shape=rectangle
dpi=167
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.4"
display.shape=rectangle
display.dpi=167
lvgl.colorDepth=16
+12 -15
View File
@@ -1,19 +1,16 @@
[general]
vendor=CYD
name=2432S024R
general.vendor=CYD
general.name=2432S024R
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.4"
shape=rectangle
dpi=167
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.4"
display.shape=rectangle
display.dpi=167
lvgl.colorDepth=16
+13 -17
View File
@@ -1,22 +1,18 @@
[general]
vendor=CYD
name=2432S028R
general.vendor=CYD
general.name=2432S028R
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.8"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[cdn]
warningMessage=There are 3 hardware variants of this board. This build works on the original variant only ("v1").
display.size=2.8"
display.shape=rectangle
display.dpi=143
[lvgl]
colorDepth=16
cdn.warningMessage=There are 3 hardware variants of this board. This build works on the original variant only ("v1").
lvgl.colorDepth=16
+13 -17
View File
@@ -1,22 +1,18 @@
[general]
vendor=CYD
name=2432S028R v3
general.vendor=CYD
general.name=2432S028R v3
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.8"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[cdn]
warningMessage=There are 3 hardware variants of this board. This build only supports board version 3.
display.size=2.8"
display.shape=rectangle
display.dpi=143
[lvgl]
colorDepth=16
cdn.warningMessage=There are 3 hardware variants of this board. This build only supports board version 3.
lvgl.colorDepth=16
+12 -15
View File
@@ -1,19 +1,16 @@
[general]
vendor=CYD
name=2432S032C
general.vendor=CYD
general.name=2432S032C
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=3.2"
shape=rectangle
dpi=125
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=3.2"
display.shape=rectangle
display.dpi=125
lvgl.colorDepth=16
+16 -19
View File
@@ -1,19 +1,16 @@
[general]
vendor=CYD
name=3248S035C
[apps]
launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
[display]
size=3.5"
shape=rectangle
dpi=165
[lvgl]
colorDepth=16
general.vendor=CYD
general.name=3248S035C
apps.launcherAppId=Launcher
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
storage.userDataLocation=SD
display.size=3.5"
display.shape=rectangle
display.dpi=165
lvgl.colorDepth=16
@@ -12,9 +12,25 @@
#include <esp_lcd_panel_ops.h>
#include <esp_lcd_panel_io_additions.h>
#include <esp_lcd_st7701.h>
#include <esp_rom_gpio.h>
#include <soc/spi_periph.h>
#include <driver/spi_master.h>
static const auto LOGGER = tt::Logger("St7701Display");
// GPIO47/48 are physically shared between this bit-banged 3-wire command bus
// and the SD card's real SPI2 bus (no alternate pins exist on this PCB).
// esp_lcd_new_panel_io_3wire_spi() reconfigures them as plain GPIO via
// gpio_config(), severing their SPI2 matrix routing. Reconnect them here once
// the vendor init sequence is done, so SD card reads/writes keep working.
// Safe only because nothing else calls into the ST7701 IO handle after boot.
static void reclaimSpiPinsForSdCard() {
esp_rom_gpio_connect_out_signal(GPIO_NUM_47, spi_periph_signal[SPI2_HOST].spid_out, false, false);
esp_rom_gpio_connect_out_signal(GPIO_NUM_48, spi_periph_signal[SPI2_HOST].spiclk_out, false, false);
gpio_set_direction(GPIO_NUM_47, GPIO_MODE_OUTPUT);
gpio_set_direction(GPIO_NUM_48, GPIO_MODE_OUTPUT);
}
static const st7701_lcd_init_cmd_t st7701_lcd_init_cmds[] = {
// {cmd, { data }, data_size, delay_ms}
{0xFF, (uint8_t[]) {0x77, 0x01, 0x00, 0x00, 0x10}, 5, 0},
@@ -181,6 +197,8 @@ bool St7701Display::createPanelHandle(esp_lcd_panel_io_handle_t ioHandle, esp_lc
return false;
}
reclaimSpiPinsForSdCard();
return true;
}
+1 -1
View File
@@ -12,7 +12,7 @@ static error_t stop() {
return ERROR_NONE;
}
struct Module cyd_4848s040c_module = {
Module cyd_4848s040c_module = {
.name = "cyd-4848s040c",
.start = start,
.stop = stop,
+1 -14
View File
@@ -13,6 +13,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -27,18 +28,4 @@
pin-sda = <&gpio0 19 GPIO_FLAG_NONE>;
pin-scl = <&gpio0 45 GPIO_FLAG_NONE>;
};
spi0 {
compatible = "espressif,esp32-spi";
host = <SPI2_HOST>;
cs-gpios = <&gpio0 42 GPIO_FLAG_NONE>;
pin-mosi = <&gpio0 47 GPIO_FLAG_NONE>;
pin-miso = <&gpio0 41 GPIO_FLAG_NONE>;
pin-sclk = <&gpio0 48 GPIO_FLAG_NONE>;
sdcard@0 {
compatible = "espressif,esp32-sdspi";
frequency-khz = <20000>;
};
};
};
+15 -18
View File
@@ -1,22 +1,19 @@
[general]
vendor=CYD
name=4848S040C
general.vendor=CYD
general.name=4848S040C
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=80M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=80M
hardware.bluetooth=true
[display]
size=4"
shape=rectangle
dpi=170
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=4"
display.shape=rectangle
display.dpi=170
lvgl.colorDepth=16
+1
View File
@@ -14,6 +14,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+21 -25
View File
@@ -1,30 +1,26 @@
[general]
vendor=CYD
name=8048S043C
incubating=false
general.vendor=CYD
general.name=8048S043C
general.incubating=false
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=80M
esptoolFlashFreq=80M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=80M
hardware.esptoolFlashFreq=80M
hardware.bluetooth=true
[display]
size=4.3"
shape=rectangle
dpi=217
storage.userDataLocation=SD
[cdn]
infoMessage=
warningMessage=
display.size=4.3"
display.shape=rectangle
display.dpi=217
[lvgl]
theme=DefaultDark
colorDepth=16
fontSize=18
cdn.infoMessage=
cdn.warningMessage=
lvgl.theme=DefaultDark
lvgl.colorDepth=16
lvgl.fontSize=18
+12 -15
View File
@@ -1,19 +1,16 @@
[general]
vendor=CYD
name=E32R28T
general.vendor=CYD
general.name=E32R28T
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.8"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.8"
display.shape=rectangle
display.dpi=143
lvgl.colorDepth=16
+12 -15
View File
@@ -1,19 +1,16 @@
[general]
vendor=CYD
name=E32R32P
general.vendor=CYD
general.name=E32R32P
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.8"
shape=rectangle
dpi=125
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.8"
display.shape=rectangle
display.dpi=125
lvgl.colorDepth=16
@@ -1,24 +1,21 @@
[general]
vendor=Elecrow
name=CrowPanel Advance 2.8"
general.vendor=Elecrow
general.name=CrowPanel Advance 2.8"
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=2.8"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.8"
display.shape=rectangle
display.dpi=143
lvgl.colorDepth=16
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,24 +1,21 @@
[general]
vendor=Elecrow
name=CrowPanel Advance 3.5"
general.vendor=Elecrow
general.name=CrowPanel Advance 3.5"
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=3.5"
shape=rectangle
dpi=165
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=3.5"
display.shape=rectangle
display.dpi=165
lvgl.colorDepth=16
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,25 +1,22 @@
[general]
vendor=Elecrow
name=CrowPanel Advance 5.0"
general.vendor=Elecrow
general.name=CrowPanel Advance 5.0"
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=5"
shape=rectangle
dpi=187
storage.userDataLocation=SD
[lvgl]
colorDepth=16
fontSize=18
display.size=5"
display.shape=rectangle
display.dpi=187
lvgl.colorDepth=16
lvgl.fontSize=18
@@ -14,6 +14,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,19 +1,16 @@
[general]
vendor=Elecrow
name=CrowPanel Basic 2.8"
general.vendor=Elecrow
general.name=CrowPanel Basic 2.8"
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.8"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.8"
display.shape=rectangle
display.dpi=143
lvgl.colorDepth=16
@@ -1,19 +1,16 @@
[general]
vendor=Elecrow
name=CrowPanel Basic 3.5"
general.vendor=Elecrow
general.name=CrowPanel Basic 3.5"
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=3.5"
shape=rectangle
dpi=165
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=3.5"
display.shape=rectangle
display.dpi=165
lvgl.colorDepth=16
@@ -1,25 +1,22 @@
[general]
vendor=Elecrow
name=CrowPanel Basic 5.0"
general.vendor=Elecrow
general.name=CrowPanel Basic 5.0"
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=4MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=4MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=5.0"
shape=rectangle
dpi=187
storage.userDataLocation=SD
[lvgl]
colorDepth=16
fontSize=18
display.size=5.0"
display.shape=rectangle
display.dpi=187
lvgl.colorDepth=16
lvgl.fontSize=18
@@ -14,6 +14,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+7 -9
View File
@@ -1,12 +1,10 @@
[general]
vendor=Generic
name=ESP32
general.vendor=Generic
general.name=ESP32
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=8MB
hardware.spiRam=false
storage.userDataLocation=Internal
+7 -9
View File
@@ -1,12 +1,10 @@
[general]
vendor=Generic
name=ESP32-C6
general.vendor=Generic
general.name=ESP32-C6
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32C6
flashSize=4MB
spiRam=false
hardware.target=ESP32C6
hardware.flashSize=8MB
hardware.spiRam=false
storage.userDataLocation=Internal
+7 -9
View File
@@ -1,12 +1,10 @@
[general]
vendor=Generic
name=ESP32-P4
general.vendor=Generic
general.name=ESP32-P4
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32P4
flashSize=4MB
spiRam=false
hardware.target=ESP32P4
hardware.flashSize=8MB
hardware.spiRam=false
storage.userDataLocation=Internal
+7 -9
View File
@@ -1,12 +1,10 @@
[general]
vendor=Generic
name=ESP32-S3
general.vendor=Generic
general.name=ESP32-S3
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=4MB
spiRam=false
hardware.target=ESP32S3
hardware.flashSize=8MB
hardware.spiRam=false
storage.userDataLocation=Internal
@@ -1,33 +1,29 @@
[general]
vendor=Guition
name=JC1060P470C-I-W-Y
general.vendor=Guition
general.name=JC1060P470C-I-W-Y
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32P4
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=200M
esptoolFlashFreq=80M
bluetooth=true
hardware.target=ESP32P4
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=200M
hardware.esptoolFlashFreq=80M
hardware.bluetooth=true
[display]
size=7"
shape=rectangle
dpi=187
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=7"
display.shape=rectangle
display.dpi=187
[sdkconfig]
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
CONFIG_ESP_HOSTED_ENABLED=y
CONFIG_ESP_HOSTED_P4_DEV_BOARD_FUNC_BOARD=y
CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=y
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
CONFIG_ESP_HOSTED_USE_MEMPOOL=n
lvgl.colorDepth=16
sdkconfig.CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
sdkconfig.CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
sdkconfig.CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
sdkconfig.CONFIG_ESP_HOSTED_ENABLED=y
sdkconfig.CONFIG_ESP_HOSTED_P4_DEV_BOARD_FUNC_BOARD=y
sdkconfig.CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=y
sdkconfig.CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
sdkconfig.CONFIG_ESP_HOSTED_USE_MEMPOOL=n
@@ -21,6 +21,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+12 -15
View File
@@ -1,19 +1,16 @@
[general]
vendor=Guition
name=JC2432W328C
general.vendor=Guition
general.name=JC2432W328C
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
hardware.target=ESP32
hardware.flashSize=4MB
hardware.spiRam=false
[display]
size=2.8"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.8"
display.shape=rectangle
display.dpi=143
lvgl.colorDepth=16
+17 -20
View File
@@ -1,24 +1,21 @@
[general]
vendor=Guition
name=JC3248W535C
general.vendor=Guition
general.name=JC3248W535C
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=3.5"
shape=rectangle
dpi=165
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=3.5"
display.shape=rectangle
display.dpi=165
lvgl.colorDepth=16
@@ -16,6 +16,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+17 -20
View File
@@ -1,24 +1,21 @@
[general]
vendor=Guition
name=JC8048W550C
general.vendor=Guition
general.name=JC8048W550C
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=80M
esptoolFlashFreq=80M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=80M
hardware.esptoolFlashFreq=80M
hardware.bluetooth=true
[display]
size=5"
shape=rectangle
dpi=187
storage.userDataLocation=SD
[lvgl]
colorDepth=16
fontSize=18
display.size=5"
display.shape=rectangle
display.dpi=187
lvgl.colorDepth=16
lvgl.fontSize=18
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,30 +1,26 @@
[general]
vendor=Heltec
name=WiFi LoRa 32 v3
incubating=true
general.vendor=Heltec
general.name=WiFi LoRa 32 v3
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32S3
flashSize=8MB
spiRam=false
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=8MB
hardware.spiRam=false
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=0.96"
shape=rectangle
dpi=149
storage.userDataLocation=Internal
[cdn]
infoMessage=Due to the small size of the screen, the icons don't render properly.
display.size=0.96"
display.shape=rectangle
display.dpi=149
[lvgl]
theme=Mono
colorDepth=16
uiScale=70
uiDensity=compact
cdn.infoMessage=Due to the small size of the screen, the icons don't render properly.
lvgl.theme=Mono
lvgl.colorDepth=16
lvgl.uiScale=70
lvgl.uiDensity=compact
@@ -11,6 +11,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -38,7 +38,7 @@ std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay() {
.backlightDutyFunction = driver::pwmbacklight::setBacklightDuty,
.resetPin = GPIO_NUM_NC,
.lvglSwapBytes = false,
.buffSpiram = true
.buffSpiram = false // Enabling leads to crashes when refreshing App Hub list
};
auto spi_configuration = std::make_shared<St7789Display::SpiConfiguration>(St7789Display::SpiConfiguration {
@@ -9,7 +9,7 @@ constexpr auto LCD_PIN_CS = GPIO_NUM_12;
constexpr auto LCD_PIN_DC = GPIO_NUM_11; // RS
constexpr auto LCD_HORIZONTAL_RESOLUTION = 320;
constexpr auto LCD_VERTICAL_RESOLUTION = 240;
constexpr auto LCD_BUFFER_HEIGHT = (LCD_VERTICAL_RESOLUTION / 3);
constexpr auto LCD_BUFFER_HEIGHT = (LCD_VERTICAL_RESOLUTION / 10);
constexpr auto LCD_BUFFER_SIZE = (LCD_HORIZONTAL_RESOLUTION * LCD_BUFFER_HEIGHT);
constexpr auto LCD_SPI_TRANSFER_SIZE_LIMIT = LCD_BUFFER_SIZE * LV_COLOR_DEPTH / 8;
+18 -22
View File
@@ -1,27 +1,23 @@
[general]
vendor=LilyGO
name=T-Deck,T-Deck Plus
general.vendor=LilyGO
general.name=T-Deck,T-Deck Plus
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=2.8"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[cdn]
infoMessage=To put the device into bootloader mode: <br/>1. Press the trackball and then the reset button at the same time,<br/>2. Let go of the reset button, then the trackball.<br/><br/>When this website reports that flashing is finished, you likely have to press the reset button.
display.size=2.8"
display.shape=rectangle
display.dpi=143
[lvgl]
colorDepth=16
cdn.infoMessage=To put the device into bootloader mode: <br/>1. Press the trackball and then the reset button at the same time,<br/>2. Let go of the reset button, then the trackball.<br/><br/>When this website reports that flashing is finished, you likely have to press the reset button.
lvgl.colorDepth=16
+1
View File
@@ -18,6 +18,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+18 -21
View File
@@ -1,25 +1,22 @@
[general]
vendor=LilyGO
name=T-Display S3
general.vendor=LilyGO
general.name=T-Display S3
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=1.9"
shape=rectangle
dpi=191
storage.userDataLocation=Internal
[lvgl]
colorDepth=16
display.size=1.9"
display.shape=rectangle
display.dpi=191
lvgl.colorDepth=16
@@ -10,6 +10,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -12,7 +12,7 @@ constexpr auto LCD_PIN_RESET = GPIO_NUM_23;
constexpr auto LCD_PIN_BACKLIGHT = GPIO_NUM_4;
constexpr auto LCD_HORIZONTAL_RESOLUTION = 135;
constexpr auto LCD_VERTICAL_RESOLUTION = 240;
constexpr auto LCD_BUFFER_HEIGHT = LCD_VERTICAL_RESOLUTION / 3;
constexpr auto LCD_BUFFER_HEIGHT = LCD_VERTICAL_RESOLUTION / 6;
constexpr auto LCD_BUFFER_SIZE = LCD_HORIZONTAL_RESOLUTION * LCD_BUFFER_HEIGHT;
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay();
+16 -19
View File
@@ -1,23 +1,20 @@
[general]
vendor=LilyGO
name=T-Display
incubating=true
general.vendor=LilyGO
general.name=T-Display
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32
flashSize=16MB
spiRam=false
esptoolFlashFreq=80M
hardware.target=ESP32
hardware.flashSize=16MB
hardware.spiRam=false
hardware.esptoolFlashFreq=80M
[display]
size=1.14"
shape=rectangle
dpi=242
storage.userDataLocation=Internal
[lvgl]
colorDepth=16
uiDensity=compact
display.size=1.14"
display.shape=rectangle
display.dpi=242
lvgl.colorDepth=16
lvgl.uiDensity=compact
+19 -22
View File
@@ -1,26 +1,23 @@
[general]
vendor=LilyGO
name=T-Dongle S3
incubating=true
general.vendor=LilyGO
general.name=T-Dongle S3
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=false
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=false
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=0.96"
shape=rectangle
dpi=186
storage.userDataLocation=SD
[lvgl]
colorDepth=16
uiDensity=compact
fontSize=10
display.size=0.96"
display.shape=rectangle
display.dpi=186
lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.fontSize=10
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+17 -20
View File
@@ -1,24 +1,21 @@
[general]
vendor=LilyGO
name=T-HMI
general.vendor=LilyGO
general.name=T-HMI
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=2.8"
shape=rectangle
dpi=125
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2.8"
display.shape=rectangle
display.dpi=125
lvgl.colorDepth=16
+1
View File
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+19 -22
View File
@@ -1,26 +1,23 @@
[general]
vendor=LilyGO
name=T-Lora Pager
general.vendor=LilyGO
general.name=T-Lora Pager
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
flashMode=DIO
spiRam=true
spiRamMode=AUTO
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=40M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.flashMode=DIO
hardware.spiRam=true
hardware.spiRamMode=AUTO
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=40M
hardware.bluetooth=true
[display]
size=2.33"
shape=rectangle
dpi=227
storage.userDataLocation=SD
[lvgl]
colorDepth=16
dpi=150
display.size=2.33"
display.shape=rectangle
display.dpi=227
lvgl.colorDepth=16
lvgl.dpi=150
@@ -17,6 +17,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+16 -19
View File
@@ -1,24 +1,21 @@
[general]
vendor=M5Stack
name=Cardputer Adv
general.vendor=M5Stack
general.name=Cardputer Adv
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=8MB
spiRam=false
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=8MB
hardware.spiRam=false
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=1.14"
shape=rectangle
storage.userDataLocation=SD
display.size=1.14"
display.shape=rectangle
# TODO: dps is actually 242, but this breaks UI (button selection becomes invisible and switch visibility is reduced)
dpi=139
display.dpi=139
[lvgl]
colorDepth=16
uiDensity=compact
lvgl.colorDepth=16
lvgl.uiDensity=compact
@@ -19,6 +19,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+16 -19
View File
@@ -1,24 +1,21 @@
[general]
vendor=M5Stack
name=Cardputer,Cardputer v1.1
general.vendor=M5Stack
general.name=Cardputer,Cardputer v1.1
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=8MB
spiRam=false
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=8MB
hardware.spiRam=false
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=1.14"
shape=rectangle
storage.userDataLocation=SD
display.size=1.14"
display.shape=rectangle
# TODO: dps is actually 242, but this breaks UI (button selection becomes invisible and switch visibility is reduced)
dpi=139
display.dpi=139
[lvgl]
colorDepth=16
uiDensity=compact
lvgl.colorDepth=16
lvgl.uiDensity=compact
@@ -18,6 +18,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+16 -20
View File
@@ -1,25 +1,21 @@
[general]
vendor=M5Stack
name=Core2
general.vendor=M5Stack
general.name=Core2
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32
flashSize=16MB
spiRam=true
spiRamMode=QUAD
spiRamSpeed=80M
esptoolFlashFreq=80M
hardware.target=ESP32
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=QUAD
hardware.spiRamSpeed=80M
hardware.esptoolFlashFreq=80M
[display]
size=2"
shape=rectangle
dpi=200
storage.userDataLocation=SD
[cdn]
warningMessage=This board implementation concerns the original Core2 hardware and **not** the v1.1 variant
display.size=2"
display.shape=rectangle
display.dpi=200
[lvgl]
colorDepth=16
cdn.warningMessage=This board implementation concerns the original Core2 hardware and **not** the v1.1 variant
lvgl.colorDepth=16
+17 -20
View File
@@ -1,24 +1,21 @@
[general]
vendor=M5Stack
name=CoreS3
general.vendor=M5Stack
general.name=CoreS3
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=QUAD
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=QUAD
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=2"
shape=rectangle
dpi=200
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2"
display.shape=rectangle
display.dpi=200
lvgl.colorDepth=16
@@ -20,6 +20,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+20 -26
View File
@@ -1,32 +1,26 @@
[general]
vendor=M5Stack
name=PaperS3
incubating=true
general.vendor=M5Stack
general.name=PaperS3
general.incubating=true
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=esp32s3
flashSize=16MB
spiRam=true
spiRamMode=OPI
spiRamSpeed=80M
esptoolFlashFreq=80M
tinyUsb=true
bluetooth=true
hardware.target=esp32s3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OPI
hardware.spiRamSpeed=80M
hardware.esptoolFlashFreq=80M
hardware.tinyUsb=true
hardware.bluetooth=true
[display]
size=4.7"
shape=rectangle
dpi=235
storage.userDataLocation=SD
[lvgl]
colorDepth=8
fontSize=24
theme=Mono
[sdkconfig]
CONFIG_EPD_DISPLAY_TYPE_ED047TC2=y
display.size=4.7"
display.shape=rectangle
display.dpi=235
lvgl.colorDepth=8
lvgl.fontSize=24
lvgl.theme=Mono
sdkconfig.CONFIG_EPD_DISPLAY_TYPE_ED047TC2=y
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+17 -20
View File
@@ -1,24 +1,21 @@
[general]
vendor=M5Stack
name=StackChan
general.vendor=M5Stack
general.name=StackChan
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=QUAD
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=QUAD
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=2"
shape=rectangle
dpi=200
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=2"
display.shape=rectangle
display.dpi=200
lvgl.colorDepth=16
@@ -22,6 +22,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,7 +0,0 @@
file(GLOB_RECURSE SOURCE_FILES Source/*.c*)
idf_component_register(
SRCS ${SOURCE_FILES}
INCLUDE_DIRS "Source"
REQUIRES Tactility esp_lvgl_port esp_lcd AXP192 ST7789 ButtonControl
)
@@ -1,29 +0,0 @@
#include "devices/Display.h"
#include "devices/Power.h"
#include <Tactility/hal/Configuration.h>
#include <ButtonControl.h>
using namespace tt::hal;
static bool initBoot() {
// CH552 applies 4 V to GPIO 0, which reduces Wi-Fi sensitivity
// Setting output to high adds a bias of 3.3 V and suppresses over-voltage:
gpio::configure(0, gpio::Mode::Output, false, false);
gpio::setLevel(0, true);
return initAxp();
}
static DeviceVector createDevices() {
return {
getAxp192(),
ButtonControl::createTwoButtonControl(37, 39),
createDisplay()
};
}
extern const Configuration hardwareConfiguration = {
.initBoot = initBoot,
.createDevices = createDevices
};
@@ -1,67 +0,0 @@
#include "Display.h"
#include "Power.h"
#include <Tactility/Logger.h>
#include <St7789Display.h>
#include <bitset>
static const auto LOGGER = tt::Logger("StickCPlus");
static void setBacklightOn(bool on) {
const auto axp = getAxp192();
const auto* driver = axp->getAxp192();
uint8_t state;
if (axp192_read(driver, AXP192_DCDC13_LDO23_CONTROL, &state) != AXP192_OK) {
LOGGER.info("Failed to read LCD brightness state");
return;
}
std::bitset<8> new_state = state;
if (new_state[2] != on) {
new_state[2] = on;
const auto new_state_long = new_state.to_ulong();
axp192_write(driver, AXP192_DCDC13_LDO23_CONTROL, static_cast<uint8_t>(new_state_long)); // Display on/off
}
}
static void setBrightness(uint8_t brightness) {
const auto axp = getAxp192();
if (brightness)
{
brightness = (((brightness >> 1) + 8) / 13) + 5;
setBacklightOn(true);
axp192_write(axp->getAxp192(), AXP192_LDO23_VOLTAGE, brightness << 4); // Display brightness
}
else
{
setBacklightOn(false);
}
}
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay() {
St7789Display::Configuration panel_configuration = {
.horizontalResolution = LCD_HORIZONTAL_RESOLUTION,
.verticalResolution = LCD_VERTICAL_RESOLUTION,
.gapX = 52,
.gapY = 40,
.swapXY = false,
.mirrorX = false,
.mirrorY = false,
.invertColor = true,
.bufferSize = LCD_BUFFER_SIZE,
.touch = nullptr,
.backlightDutyFunction = setBrightness,
.resetPin = LCD_PIN_RESET,
.lvglSwapBytes = false
};
auto spi_configuration = std::make_shared<St7789Display::SpiConfiguration>(St7789Display::SpiConfiguration {
.spiHostDevice = LCD_SPI_HOST,
.csPin = LCD_PIN_CS,
.dcPin = LCD_PIN_DC,
.pixelClockFrequency = 40'000'000,
.transactionQueueDepth = 10
});
return std::make_shared<St7789Display>(panel_configuration, spi_configuration);
}
@@ -1,18 +0,0 @@
#pragma once
#include <Tactility/hal/display/DisplayDevice.h>
#include <memory>
#include <driver/gpio.h>
#include <driver/spi_common.h>
constexpr auto LCD_SPI_HOST = SPI2_HOST;
constexpr auto LCD_PIN_CS = GPIO_NUM_5;
constexpr auto LCD_PIN_DC = GPIO_NUM_23;
constexpr auto LCD_PIN_RESET = GPIO_NUM_18;
constexpr auto LCD_HORIZONTAL_RESOLUTION = 135;
constexpr auto LCD_VERTICAL_RESOLUTION = 240;
constexpr auto LCD_BUFFER_HEIGHT = LCD_VERTICAL_RESOLUTION / 3;
constexpr auto LCD_BUFFER_SIZE = LCD_HORIZONTAL_RESOLUTION * LCD_BUFFER_HEIGHT;
constexpr auto LCD_SPI_TRANSFER_SIZE_LIMIT = LCD_BUFFER_SIZE * LV_COLOR_DEPTH / 8;
std::shared_ptr<tt::hal::display::DisplayDevice> createDisplay();
@@ -1,39 +0,0 @@
#include <Axp192.h>
#include <tactility/device.h>
static std::shared_ptr<Axp192> axp192 = nullptr;
std::shared_ptr<Axp192> createAxp192() {
assert(axp192 == nullptr);
auto configuration = std::make_unique<Axp192::Configuration>(device_find_by_name("i2c_internal"));
axp192 = std::make_shared<Axp192>(std::move(configuration));
return axp192;
}
std::shared_ptr<Axp192> getAxp192() {
assert(axp192 != nullptr);
return axp192;
}
bool initAxp() {
const auto axp = createAxp192();
return axp->init([](auto* driver) {
// Reference: https://github.com/pr3y/Bruce/blob/main/lib/utility/AXP192.cpp
axp192_ioctl(driver, AXP192_LDO23_VOLTAGE, 3300); // LCD backlight
axp192_ioctl(driver, AXP192_ADC_ENABLE_1, 0xff); // Set all ADC enabled
axp192_ioctl(driver, AXP192_CHARGE_CONTROL_1, 0xc0); // Battery charging at 4.2 V and 100 mA
axp192_ioctl(driver, AXP192_ADC_ENABLE_1, 0xff); // Enable battery, AC in, Vbus, APS ADC
uint8_t buffer;
axp192_read(driver, AXP192_DCDC13_LDO23_CONTROL, &buffer);
axp192_ioctl(driver, AXP192_DCDC13_LDO23_CONTROL, buffer | 0x4D); // Enable Ext, LDO2, LDO3, DCDC1
axp192_ioctl(driver, AXP192_PEK, 0x0C); // 128 ms power on, 4 s power off
axp192_ioctl(driver, AXP192_GPIO0_LDOIO0_VOLTAGE, 0xF0); // 3.3 V RTC voltage
axp192_ioctl(driver, AXP192_GPIO0_CONTROL, 0x02); // Set GPIO0 to LDO
axp192_ioctl(driver, AXP192_VBUS_IPSOUT_CHANNEL, 0x80); // Disable Vbus hold limit
axp192_ioctl(driver, AXP192_BATTERY_CHARGE_HIGH_TEMP, 0xFC); // Set temperature protection
axp192_ioctl(driver, AXP192_BATTERY_CHARGE_CONTROL, 0xA2); // Enable RTC BAT charge
axp192_ioctl(driver, AXP192_SHUTDOWN_BATTERY_CHGLED_CONTROL, 0x46); // Enable bat detection
return true;
});
}
@@ -1,9 +0,0 @@
#pragma once
#include <Axp192.h>
bool initAxp();
// Must call initAxp() first before this returns a non-nullptr response
std::shared_ptr<Axp192> getAxp192();
@@ -1,23 +0,0 @@
#include <tactility/module.h>
extern "C" {
static error_t start() {
// Empty for now
return ERROR_NONE;
}
static error_t stop() {
// Empty for now
return ERROR_NONE;
}
struct Module m5stack_stickc_plus_module = {
.name = "m5stack-stickc-plus",
.start = start,
.stop = stop,
.symbols = nullptr,
.internal = nullptr
};
}
@@ -1,23 +0,0 @@
[general]
vendor=M5Stack
name=StickC Plus
incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware]
target=ESP32
flashSize=4MB
spiRam=false
esptoolFlashFreq=80M
[display]
size=1.14"
shape=rectangle
dpi=242
[lvgl]
colorDepth=16
uiDensity=compact
@@ -1,5 +0,0 @@
dependencies:
- Platforms/platform-esp32
- Drivers/mpu6886-module
- Drivers/bm8563-module
dts: m5stack,stickc-plus.dts
@@ -1,66 +0,0 @@
/dts-v1/;
#include <tactility/bindings/root.h>
#include <tactility/bindings/esp32_gpio.h>
#include <tactility/bindings/esp32_i2c.h>
#include <tactility/bindings/esp32_spi.h>
#include <tactility/bindings/esp32_uart.h>
#include <bindings/mpu6886.h>
#include <bindings/bm8563.h>
#include <tactility/bindings/display_placeholder.h>
/ {
compatible = "root";
model = "M5Stack StickC Plus";
gpio0 {
compatible = "espressif,esp32-gpio";
gpio-count = <40>;
};
i2c_internal {
compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>;
clock-frequency = <400000>;
pin-sda = <&gpio0 21 GPIO_FLAG_NONE>;
pin-scl = <&gpio0 22 GPIO_FLAG_NONE>;
mpu6886 {
compatible = "invensense,mpu6886";
reg = <0x68>;
};
bm8563 {
compatible = "belling,bm8563";
reg = <0x51>;
};
};
i2c_grove {
compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>;
clock-frequency = <400000>;
pin-sda = <&gpio0 32 GPIO_FLAG_NONE>;
pin-scl = <&gpio0 33 GPIO_FLAG_NONE>;
};
spi0 {
compatible = "espressif,esp32-spi";
host = <SPI2_HOST>;
cs-gpios = <&gpio0 5 GPIO_FLAG_NONE>;
pin-mosi = <&gpio0 15 GPIO_FLAG_NONE>;
pin-sclk = <&gpio0 13 GPIO_FLAG_NONE>;
display {
compatible = "display-placeholder";
};
};
uart_grove: uart1 {
compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>;
pin-tx = <&gpio0 33 GPIO_FLAG_NONE>;
pin-rx = <&gpio0 32 GPIO_FLAG_NONE>;
};
};
+18 -21
View File
@@ -1,25 +1,22 @@
[general]
vendor=M5Stack
name=StickC Plus2
incubating=true
general.vendor=M5Stack
general.name=StickC Plus2
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32
flashSize=8MB
spiRam=true
spiRamMode=QUAD
spiRamSpeed=80M
esptoolFlashFreq=80M
hardware.target=ESP32
hardware.flashSize=8MB
hardware.spiRam=true
hardware.spiRamMode=QUAD
hardware.spiRamSpeed=80M
hardware.esptoolFlashFreq=80M
[display]
size=1.14"
shape=rectangle
dpi=242
storage.userDataLocation=Internal
[lvgl]
colorDepth=16
uiDensity=compact
display.size=1.14"
display.shape=rectangle
display.dpi=242
lvgl.colorDepth=16
lvgl.uiDensity=compact
+18 -21
View File
@@ -1,25 +1,22 @@
[general]
vendor=M5Stack
name=StickS3
general.vendor=M5Stack
general.name=StickS3
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=8MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=80M
esptoolFlashFreq=80M
tinyUsb=true
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=8MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=80M
hardware.esptoolFlashFreq=80M
hardware.tinyUsb=true
hardware.bluetooth=true
[display]
size=1.14"
shape=rectangle
dpi=242
storage.userDataLocation=SD
[lvgl]
colorDepth=16
uiDensity=compact
display.size=1.14"
display.shape=rectangle
display.dpi=242
lvgl.colorDepth=16
lvgl.uiDensity=compact
@@ -17,6 +17,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+39 -43
View File
@@ -1,51 +1,47 @@
[general]
vendor=M5Stack
name=Tab5
general.vendor=M5Stack
general.name=Tab5
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32P4
flashSize=16MB
spiRam=true
spiRamMode=HEX
spiRamSpeed=200M
esptoolFlashFreq=80M
bluetooth=true
usbHostEnabled=true
tinyUsb=true
hardware.target=ESP32P4
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=HEX
hardware.spiRamSpeed=200M
hardware.esptoolFlashFreq=80M
hardware.bluetooth=true
hardware.usbHostEnabled=true
hardware.tinyUsb=true
[display]
size=5"
shape=rectangle
dpi=294
storage.userDataLocation=SD
[lvgl]
colorDepth=16
fontSize=28
dpi=250
display.size=5"
display.shape=rectangle
display.dpi=294
[sdkconfig]
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
CONFIG_ESP_HOSTED_ENABLED=y
CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=y
CONFIG_ESP_HOSTED_SDIO_SLOT_1=y
CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1=13
CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1=12
CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1=11
CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1=10
CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1=9
CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1=8
CONFIG_ESP_HOSTED_SDIO_GPIO_RESET_SLAVE=15
lvgl.colorDepth=16
lvgl.fontSize=28
lvgl.dpi=250
sdkconfig.CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
sdkconfig.CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
sdkconfig.CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
sdkconfig.CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
sdkconfig.CONFIG_ESP_HOSTED_ENABLED=y
sdkconfig.CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE=y
sdkconfig.CONFIG_ESP_HOSTED_SDIO_SLOT_1=y
sdkconfig.CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1=13
sdkconfig.CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1=12
sdkconfig.CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1=11
sdkconfig.CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1=10
sdkconfig.CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1=9
sdkconfig.CONFIG_ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1=8
sdkconfig.CONFIG_ESP_HOSTED_SDIO_GPIO_RESET_SLAVE=15
# Fixes recent changes to esp_hosted
CONFIG_ESP_HOSTED_USE_MEMPOOL=n
sdkconfig.CONFIG_ESP_HOSTED_USE_MEMPOOL=n
# Performance: larger L2 cache reduces PSRAM stalls for draw/DPI buffers
CONFIG_CACHE_L2_CACHE_256KB=y
sdkconfig.CONFIG_CACHE_L2_CACHE_256KB=y
# Performance: use P4's PPA (pixel processing accelerator for rotation)
CONFIG_LVGL_PORT_ENABLE_PPA=y
CONFIG_LV_DRAW_BUF_ALIGN=64
CONFIG_LV_DEF_REFR_PERIOD=15
sdkconfig.CONFIG_LVGL_PORT_ENABLE_PPA=y
sdkconfig.CONFIG_LV_DRAW_BUF_ALIGN=64
sdkconfig.CONFIG_LV_DEF_REFR_PERIOD=15
+1
View File
@@ -20,6 +20,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+8 -10
View File
@@ -1,13 +1,11 @@
[general]
vendor=Simulator
name=Tab5Simulator
general.vendor=Simulator
general.name=Tab5Simulator
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=POSIX
hardware.target=POSIX
[lvgl]
colorDepth=16
fontSize=14
storage.userDataLocation=Internal
lvgl.colorDepth=16
lvgl.fontSize=14
+16 -20
View File
@@ -1,25 +1,21 @@
[general]
vendor=unPhone
name=unPhone
general.vendor=unPhone
general.name=unPhone
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=8MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=80M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=8MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=80M
hardware.bluetooth=true
[display]
size=3.5"
shape=rectangle
dpi=165
storage.userDataLocation=SD
[cdn]
warningMessage=Put the device into bootloader mode by pressing the center nav button and reset for 2-3 seconds, then release reset, then release the nav button.<br/>After flashing is finished, press the reset button to reboot.
display.size=3.5"
display.shape=rectangle
display.dpi=165
[lvgl]
colorDepth=24
cdn.warningMessage=Put the device into bootloader mode by pressing the center nav button and reset for 2-3 seconds, then release reset, then release the nav button.<br/>After flashing is finished, press the reset button to reboot.
lvgl.colorDepth=24
+1
View File
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,33 +1,29 @@
[general]
vendor=Waveshare
name=ESP32 S3 GEEK
incubating=true
general.vendor=Waveshare
general.name=ESP32 S3 GEEK
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=QUAD
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=QUAD
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=1.14"
shape=rectangle
dpi=143
storage.userDataLocation=SD
[lvgl]
colorDepth=16
uiDensity=compact
display.size=1.14"
display.shape=rectangle
display.dpi=143
lvgl.colorDepth=16
lvgl.uiDensity=compact
[sdkconfig]
# Fix error "PSRAM space not enough for the Flash instructions" on boot:
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=n
CONFIG_SPIRAM_RODATA=n
CONFIG_SPIRAM_XIP_FROM_PSRAM=n
sdkconfig.CONFIG_SPIRAM_FETCH_INSTRUCTIONS=n
sdkconfig.CONFIG_SPIRAM_RODATA=n
sdkconfig.CONFIG_SPIRAM_XIP_FROM_PSRAM=n
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
+20 -23
View File
@@ -1,27 +1,24 @@
[general]
vendor=WaveShare
name=S3 LCD 1.3"
incubating=true
general.vendor=WaveShare
general.name=S3 LCD 1.3"
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=1.3"
shape=rectangle
dpi=261
storage.userDataLocation=SD
[lvgl]
colorDepth=16
uiDensity=compact
display.size=1.3"
display.shape=rectangle
display.dpi=261
lvgl.colorDepth=16
lvgl.uiDensity=compact
@@ -16,6 +16,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,33 +1,29 @@
[general]
vendor=WaveShare
name=S3 Touch LCD 1.28"
incubating=true
general.vendor=WaveShare
general.name=S3 Touch LCD 1.28"
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=QUAD
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=QUAD
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=1.28"
shape=circle
dpi=265
storage.userDataLocation=SD
[lvgl]
colorDepth=16
uiDensity=compact
display.size=1.28"
display.shape=circle
display.dpi=265
lvgl.colorDepth=16
lvgl.uiDensity=compact
[sdkconfig]
# Fix error "PSRAM space not enough for the Flash instructions" on boot:
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=n
CONFIG_SPIRAM_RODATA=n
CONFIG_SPIRAM_XIP_FROM_PSRAM=n
sdkconfig.CONFIG_SPIRAM_FETCH_INSTRUCTIONS=n
sdkconfig.CONFIG_SPIRAM_RODATA=n
sdkconfig.CONFIG_SPIRAM_XIP_FROM_PSRAM=n
@@ -16,6 +16,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -1,30 +1,26 @@
[general]
vendor=WaveShare
name=S3 Touch LCD 1.47"
incubating=true
general.vendor=WaveShare
general.name=S3 Touch LCD 1.47"
general.incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
apps.launcherAppId=Launcher
apps.autoStartAppId=ApWebServer
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=1.47"
shape=rectangle
dpi=247
storage.userDataLocation=SD
[cdn]
warningMessage=Touch doesn't work yet
display.size=1.47"
display.shape=rectangle
display.dpi=247
[lvgl]
colorDepth=16
uiDensity=compact
cdn.warningMessage=Touch doesn't work yet
lvgl.colorDepth=16
lvgl.uiDensity=compact
@@ -15,6 +15,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -2,8 +2,22 @@
#include <Tactility/hal/Configuration.h>
#include <tactility/drivers/i2c_controller.h>
using namespace tt::hal;
static bool init() {
auto* i2c = device_find_by_name("i2c0");
check(i2c);
uint8_t write_buf = 0x01;
i2c_controller_write(i2c, 0x24, &write_buf, 1, 200 / portTICK_PERIOD_MS);
write_buf = 0x0E; // Pin 2, 3 and 4 high, pin 1 and 5 low
i2c_controller_write(i2c, 0x38, &write_buf, 1, 200 / portTICK_PERIOD_MS);
return true;
}
static DeviceVector createDevices() {
return {
createDisplay(),
@@ -11,5 +25,6 @@ static DeviceVector createDevices() {
}
extern const Configuration hardwareConfiguration = {
.initBoot = init,
.createDevices = createDevices
};
@@ -12,7 +12,7 @@ static error_t stop() {
return ERROR_NONE;
}
struct Module waveshare_s3_touch_lcd_43_module = {
Module waveshare_s3_touch_lcd_43_module = {
.name = "waveshare-s3-touch-lcd-43",
.start = start,
.stop = stop,
@@ -1,25 +1,23 @@
[general]
vendor=WaveShare
name=S3 Touch LCD 4.3"
general.vendor=WaveShare
general.name=S3 Touch LCD 4.3"
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=4MB
spiRam=true
spiRamMode=OCT
spiRamSpeed=120M
tinyUsb=true
esptoolFlashFreq=120M
bluetooth=true
hardware.target=ESP32S3
# Some models have 16MB flash, but some have 8MB. We only support the latter to avoid making more builds.
hardware.flashSize=8MB
hardware.spiRam=true
hardware.spiRamMode=OCT
hardware.spiRamSpeed=120M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=120M
hardware.bluetooth=true
[display]
size=4.3"
shape=rectangle
dpi=217
storage.userDataLocation=SD
[lvgl]
colorDepth=16
fontSize=18
display.size=4.3"
display.shape=rectangle
display.dpi=217
lvgl.colorDepth=16
lvgl.fontSize=18
@@ -14,6 +14,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {
@@ -25,8 +26,8 @@
compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>;
clock-frequency = <400000>;
pin-sda = <&gpio0 8 GPIO_FLAG_NONE>;
pin-scl = <&gpio0 9 GPIO_FLAG_NONE>;
pin-sda = <&gpio0 8 GPIO_FLAG_PULL_UP>;
pin-scl = <&gpio0 9 GPIO_FLAG_PULL_UP>;
};
spi0 {
@@ -36,7 +37,7 @@
pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-miso = <&gpio0 13 GPIO_FLAG_NONE>;
pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>;
sdcard@0 {
compatible = "espressif,esp32-sdspi";
frequency-khz = <20000>;
@@ -1,24 +1,21 @@
[general]
vendor=Wireless Tag
name=WT32 SC01 Plus
general.vendor=Wireless Tag
general.name=WT32 SC01 Plus
[apps]
launcherAppId=Launcher
apps.launcherAppId=Launcher
[hardware]
target=ESP32S3
flashSize=16MB
spiRam=true
spiRamMode=QUAD
spiRamSpeed=80M
tinyUsb=true
esptoolFlashFreq=80M
bluetooth=true
hardware.target=ESP32S3
hardware.flashSize=16MB
hardware.spiRam=true
hardware.spiRamMode=QUAD
hardware.spiRamSpeed=80M
hardware.tinyUsb=true
hardware.esptoolFlashFreq=80M
hardware.bluetooth=true
[display]
size=3.5"
shape=rectangle
dpi=165
storage.userDataLocation=SD
[lvgl]
colorDepth=16
display.size=3.5"
display.shape=rectangle
display.dpi=165
lvgl.colorDepth=16
@@ -13,6 +13,7 @@
ble0 {
compatible = "espressif,esp32-ble";
status = "disabled";
};
gpio0 {