Files
halehound/include/board_config.h
2026-10-06 23:43:26 -07:00

105 lines
4.0 KiB
C

#ifndef BOARD_CONFIG_H
#define BOARD_CONFIG_H
// ============================================================================
// FREENOVE ESP32-S3 Display (2.8" Capacitive Touch, 240x320)
// ============================================================================
// Display (ILI9341V) - LCDWiki 2.8" ESP32-S3 Display
// Source: https://www.lcdwiki.com/2.8inch_ESP32-S3_Display
#define TFT_CS 10 // Chip Select (IO10)
#define TFT_DC 46 // Data/Command (IO46)
#define TFT_RST -1 // Reset shared with ESP32-S3 EN pin (no GPIO)
#define TFT_MOSI 11 // SPI MOSI (IO11)
#define TFT_CLK 12 // SPI Clock (IO12)
#define TFT_MISO 13 // SPI MISO (IO13)
#define TFT_BL 45 // Backlight (IO45, active high)
// Touch Screen (FT6336G Capacitive)
#define TOUCH_SDA 16 // I2C SDA (IO16)
#define TOUCH_SCL 15 // I2C SCL (IO15)
#define TOUCH_RST 18 // Reset (IO18)
#define TOUCH_INT 17 // Interrupt (IO17)
#define TOUCH_ADDR 0x38 // I2C address
// Display dimensions
#define SCREEN_WIDTH 240
#define SCREEN_HEIGHT 320
// ============================================================================
// Radio Modules (VSPI Bus)
// ============================================================================
// SPI Bus (shared with SD card)
#define RADIO_SPI_MOSI 11 // GPIO 11 (VSPI)
#define RADIO_SPI_MISO 13 // GPIO 13 (VSPI)
#define RADIO_SPI_CLK 12 // GPIO 12 (VSPI)
// CC1101 SubGHz Radio (300-928 MHz)
#define CC1101_CS 7 // Chip Select
#define CC1101_GDO0 6 // TX (data out)
#define CC1101_GDO2 37 // RX (data in)
#define CC1101_TX_EN 40 // TX Enable (E07 PA module)
#define CC1101_RX_EN 41 // RX Enable (E07 PA module)
// NRF24L01+ 2.4GHz Radio
#define NRF24_CSN 14 // Chip Select Not
#define NRF24_CE 15 // Chip Enable
#define NRF24_IRQ 16 // Interrupt (optional)
// PN532 NFC/RFID Reader (SPI mode)
#define PN532_CS 17 // Chip Select
#define PN532_ADDR 0x24 // I2C address (if used)
// GPS Module (UART)
#define GPS_TX_PIN 1 // GPIO 1 (UART0 TX) - receive GPS data
#define GPS_RX_PIN 3 // GPIO 3 (UART0 RX) - unused
#define GPS_BAUD 9600
// ============================================================================
// SD Card (also on VSPI)
// ============================================================================
#define SD_CS 21 // Chip Select
// ============================================================================
// LED / Status Indicators
// ============================================================================
#define LED_R 42 // Red (optional RGB LED)
#define LED_G 2 // Green
#define LED_B 1 // Blue
// ============================================================================
// Button / Input
// ============================================================================
#define BUTTON_RESET 0 // Boot button (GPIO 0)
// ============================================================================
// Memory Configuration (ESP32-S3 has 520KB SRAM)
// ============================================================================
#define HEAP_SIZE_WIFI (32 * 1024) // WiFi buffers
#define HEAP_SIZE_BLE (64 * 1024) // BLE buffers
#define HEAP_SIZE_RADIO (48 * 1024) // Radio packet buffers
#define HEAP_SIZE_UI (80 * 1024) // Display/UI frame buffers
// ============================================================================
// Feature Flags
// ============================================================================
#define ENABLE_WIFI 1
#define ENABLE_BLE 1
#define ENABLE_CC1101 1
#define ENABLE_NRF24 1
#define ENABLE_PN532 1
#define ENABLE_GPS 1
#define ENABLE_SDCARD 1
// ============================================================================
// Board Info
// ============================================================================
#define BOARD_NAME "FREENOVE ESP32-S3"
#define BOARD_VARIANT "CYD-2.8-CAP"
#define CPU_FREQ_MHZ 240
#define RAM_SIZE_KB 520
#define FLASH_SIZE_MB 16
#endif // BOARD_CONFIG_H