from __future__ import annotations from typing import Final WEBFLASH_TARGETS: Final = ( { "id": "tlora-pager-sx1262", "env": "tlora_pager_sx1262", "build_system": "platformio", "name": "LilyGo T-LoRa Pager SX1262", "subtitle": "SX1262 build for the 480x222 keyboard pager", "chip_family": "ESP32-S3", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-tlora-pager-sx1262-webflash.bin", }, { "id": "tlora-pager-lr1121", "env": "tlora_pager_lr1121", "build_system": "platformio", "name": "LilyGo T-LoRa Pager LR1121", "subtitle": "LR1121 build for the Sub-GHz + 2.4 GHz keyboard pager", "chip_family": "ESP32-S3", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-tlora-pager-lr1121-webflash.bin", }, { "id": "tdeck", "env": "tdeck", "build_system": "platformio", "name": "LilyGo T-Deck", "subtitle": "ESP32-S3 handheld build with keyboard and touch", "chip_family": "ESP32-S3", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-tdeck-webflash.bin", }, { "id": "tdeck-pro-a7682e", "env": "tdeck_pro_a7682e", "build_system": "platformio", "name": "LilyGo T-Deck Pro (4G / A7682E)", "subtitle": "ESP32-S3 e-paper handheld build with A7682E cellular modem", "chip_family": "ESP32-S3", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-tdeck-pro-a7682e-webflash.bin", }, { "id": "tdeck-pro-pcm512a", "env": "tdeck_pro_pcm512a", "build_system": "platformio", "name": "LilyGo T-Deck Pro (PCM512A)", "subtitle": "ESP32-S3 e-paper handheld build with PCM512A audio DAC", "chip_family": "ESP32-S3", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-tdeck-pro-pcm512a-webflash.bin", }, { "id": "lilygo-twatch-s3", "env": "lilygo_twatch_s3", "build_system": "platformio", "name": "LilyGo T-Watch-S3", "subtitle": "Touch-first ESP32-S3 watch build", "chip_family": "ESP32-S3", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-lilygo-twatch-s3-webflash.bin", }, { "id": "t-display-p4-tft", "env": "t_display_p4_tft", "build_system": "esp_idf", "name": "LilyGo T-Display-P4 TFT", "subtitle": "ESP32-P4 TFT build with touch and optional keyboard module", "chip_family": "ESP32-P4", "esptool_chip": "esp32p4", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-t-display-p4-tft-webflash.bin", }, { "id": "t-display-p4-amoled", "env": "t_display_p4_amoled", "build_system": "esp_idf", "name": "LilyGo T-Display-P4 AMOLED", "subtitle": "ESP32-P4 AMOLED build with touch and optional keyboard module", "chip_family": "ESP32-P4", "esptool_chip": "esp32p4", "flash_mode": "dio", "flash_freq": "80m", "flash_size": "16MB", "merged_asset_name": "trail-mate-t-display-p4-amoled-webflash.bin", }, ) TARGETS_BY_ENV: Final = {target["env"]: target for target in WEBFLASH_TARGETS} TARGETS_BY_ID: Final = {target["id"]: target for target in WEBFLASH_TARGETS}