mirror of
https://github.com/pelgraine/Meck.git
synced 2026-05-18 07:15:58 +02:00
183 lines
6.5 KiB
C
183 lines
6.5 KiB
C
#pragma once
|
|
|
|
// =============================================================================
|
|
// LilyGo T-Deck Pro v1.1 - Pin Definitions
|
|
// Based on Meshtastic PR #9378 for T-Deck Pro V1.1 compatibility
|
|
// =============================================================================
|
|
|
|
// Peripheral Power Control
|
|
#define PIN_PERF_POWERON 10 // Powers on peripherals
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// E-Ink Display (GDEQ031T10 - 240x320)
|
|
// E-ink SHARES the SPI bus with LoRa (SCK=36, MOSI=33)
|
|
// They use different chip selects: E-ink CS=34, LoRa CS=3
|
|
// -----------------------------------------------------------------------------
|
|
#define PIN_EINK_CS 34
|
|
#define PIN_EINK_DC 35
|
|
#define PIN_EINK_RES 16 // Reset pin - must be held HIGH
|
|
#define PIN_EINK_BUSY 37
|
|
#define PIN_EINK_SCLK 36 // Shared with LoRa
|
|
#define PIN_EINK_MOSI 33 // Shared with LoRa
|
|
#define PIN_EINK_BL 45 // Backlight PWM (optional, V1.1 feature)
|
|
|
|
// Legacy aliases for MeshCore compatibility
|
|
#define PIN_DISPLAY_CS PIN_EINK_CS
|
|
#define PIN_DISPLAY_DC PIN_EINK_DC
|
|
#define PIN_DISPLAY_RST PIN_EINK_RES
|
|
#define PIN_DISPLAY_BUSY PIN_EINK_BUSY
|
|
#define PIN_DISPLAY_SCLK PIN_EINK_SCLK
|
|
#define PIN_DISPLAY_MOSI PIN_EINK_MOSI // GPIO 33, shared with LoRa
|
|
|
|
// Display dimensions - native resolution of GDEQ031T10
|
|
#define LCD_HOR_SIZE 240
|
|
#define LCD_VER_SIZE 320
|
|
|
|
// E-ink model for GxEPD2
|
|
#define EINK_DISPLAY_MODEL GxEPD2_310_GDEQ031T10
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// SPI Bus - Shared by LoRa, SD Card, AND E-ink display
|
|
// -----------------------------------------------------------------------------
|
|
#define BOARD_SPI_SCLK 36
|
|
#define BOARD_SPI_MISO 47
|
|
#define BOARD_SPI_MOSI 33
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// I2C Bus
|
|
// -----------------------------------------------------------------------------
|
|
#define I2C_SDA 13
|
|
#define I2C_SCL 14
|
|
|
|
// Aliases for ESP32Board base class compatibility
|
|
#define PIN_BOARD_SDA I2C_SDA
|
|
#define PIN_BOARD_SCL I2C_SCL
|
|
|
|
// I2C Device Addresses
|
|
#define I2C_ADDR_TOUCH 0x1A // CST328/CST3530
|
|
#define I2C_ADDR_GYROSCOPE 0x28 // BHI260AP
|
|
#define I2C_ADDR_KEYBOARD 0x34 // TCA8418
|
|
#define I2C_ADDR_BQ27220 0x55 // Fuel gauge
|
|
#define I2C_ADDR_DRV2605 0x5A // Motor driver (V1.1 only)
|
|
#define I2C_ADDR_BQ25896 0x6B // Charger
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Touch Controller (CST328/CST3530)
|
|
// V1.1 uses CST3530 with different reset pin
|
|
// -----------------------------------------------------------------------------
|
|
#define HAS_TOUCHSCREEN 1
|
|
#define CST328_PIN_INT 12
|
|
#define CST328_PIN_RST 38 // V1.1: GPIO 38 (was 45 on V1.0)
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// GPS
|
|
// -----------------------------------------------------------------------------
|
|
#define HAS_GPS 1
|
|
#define GPS_BAUDRATE 38400
|
|
#define PIN_GPS_EN 39
|
|
#define GPS_EN_ACTIVE 1
|
|
#define GPS_RX_PIN 44
|
|
#define GPS_TX_PIN 43
|
|
#define PIN_GPS_PPS 1
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Buttons & Controls
|
|
// -----------------------------------------------------------------------------
|
|
#define BUTTON_PIN 0
|
|
#define PIN_USER_BTN 0
|
|
|
|
// Vibration Motor - V1.1 uses DRV2605 driver
|
|
#define HAS_DRV2605 1
|
|
#define PIN_DRV_EN 2
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// SD Card
|
|
// -----------------------------------------------------------------------------
|
|
#define HAS_SDCARD
|
|
#define SDCARD_USE_SPI1
|
|
#define SPI_MOSI 33
|
|
#define SPI_SCK 36
|
|
#define SPI_MISO 47
|
|
#define SPI_CS 48
|
|
#define SDCARD_CS SPI_CS
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Keyboard (TCA8418)
|
|
// -----------------------------------------------------------------------------
|
|
#define KB_BL_PIN 42
|
|
#define BOARD_KEYBOARD_INT 15
|
|
#define HAS_PHYSICAL_KEYBOARD 1
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Audio - I2S Output (PCM5102A version)
|
|
// -----------------------------------------------------------------------------
|
|
#define BOARD_I2S_BCLK 7
|
|
#define BOARD_I2S_DOUT 8
|
|
#define BOARD_I2S_LRC 9
|
|
|
|
// Microphone (PDM)
|
|
#define BOARD_MIC_DATA 17
|
|
#define BOARD_MIC_CLOCK 18
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Sensors
|
|
// -----------------------------------------------------------------------------
|
|
// Note: V1.1 removed LTR553ALS light sensor to free up GPIO 16 for e-ink reset
|
|
#define HAS_BHI260AP // Gyroscope/IMU
|
|
#define BOARD_GYRO_INT 21
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Power Management
|
|
// -----------------------------------------------------------------------------
|
|
#define HAS_BQ27220 1
|
|
#define BQ27220_I2C_ADDR 0x55
|
|
#define BQ27220_I2C_SDA I2C_SDA
|
|
#define BQ27220_I2C_SCL I2C_SCL
|
|
#define BQ27220_DESIGN_CAPACITY 1400
|
|
|
|
#define HAS_PPM 1
|
|
#define XPOWERS_CHIP_BQ25896
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// LoRa Radio (SX1262)
|
|
// -----------------------------------------------------------------------------
|
|
#define USE_SX1262
|
|
#define USE_SX1268
|
|
|
|
#define LORA_EN 46 // Enable pin - must be HIGH for radio to work
|
|
#define LORA_SCK 36
|
|
#define LORA_MISO 47
|
|
#define LORA_MOSI 33 // Shared with e-ink and SD card
|
|
#define LORA_CS 3
|
|
#define LORA_RESET 4
|
|
#define LORA_DIO0 -1 // Not connected on SX1262
|
|
#define LORA_DIO1 5 // SX1262 IRQ
|
|
#define LORA_DIO2 6 // SX1262 BUSY
|
|
|
|
// SX126X driver aliases (Meshtastic compatibility)
|
|
#define SX126X_CS LORA_CS
|
|
#define SX126X_DIO1 LORA_DIO1
|
|
#define SX126X_BUSY LORA_DIO2
|
|
#define SX126X_RESET LORA_RESET
|
|
|
|
// RadioLib/MeshCore compatibility aliases
|
|
#define P_LORA_NSS LORA_CS
|
|
#define P_LORA_DIO_1 LORA_DIO1
|
|
#define P_LORA_RESET LORA_RESET
|
|
#define P_LORA_BUSY LORA_DIO2
|
|
#define P_LORA_SCLK LORA_SCK
|
|
#define P_LORA_MISO LORA_MISO
|
|
#define P_LORA_MOSI LORA_MOSI
|
|
#define P_LORA_EN LORA_EN
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 4G Modem - A7682E (A7682E version boards only)
|
|
// Note: I2S pins (7,8,9) conflict - don't use audio and modem simultaneously
|
|
// -----------------------------------------------------------------------------
|
|
#define MODEM_POWER_EN 41 // BOARD_6609_EN
|
|
#define MODEM_PWRKEY 40
|
|
#define MODEM_RST 9
|
|
#define MODEM_RI 7
|
|
#define MODEM_DTR 8
|
|
#define MODEM_RX 10
|
|
#define MODEM_TX 11 |