* add heltec-v4-r8 board * Fixed default SPI pin and macro definition errors. * update platformio.ini according device-ui LGFX display definitions Co-authored-by: Copilot <copilot@github.com> * fix commit reference --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: mverch67 <manuel.verch@gmx.de> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Manuel <71137295+mverch67@users.noreply.github.com>
73 lines
2.7 KiB
C
73 lines
2.7 KiB
C
#define VEXT_ENABLE 40 // active low, powers the oled display and the lora antenna boost
|
|
#define VEXT_ON_VALUE LOW
|
|
#define BUTTON_PIN 0
|
|
|
|
#define BATTERY_PIN 1 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage
|
|
#define ADC_CHANNEL ADC1_GPIO1_CHANNEL
|
|
#define ADC_ATTENUATION ADC_ATTEN_DB_2_5 // lower dB for high resistance voltage divider
|
|
#define ADC_MULTIPLIER 4.9 * 1.035
|
|
|
|
#define USE_SX1262
|
|
#define LORA_DIO0 -1 // a No connect on the SX1262 module
|
|
#define LORA_RESET 12
|
|
#define LORA_DIO1 14 // SX1262 IRQ
|
|
#define LORA_DIO2 13 // SX1262 BUSY
|
|
#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262, if DIO3 is high the TCXO is enabled
|
|
|
|
#define LORA_SCK 9
|
|
#define LORA_MISO 11
|
|
#define LORA_MOSI 10
|
|
#define LORA_CS 8
|
|
|
|
#define SX126X_CS LORA_CS
|
|
#define SX126X_DIO1 LORA_DIO1
|
|
#define SX126X_BUSY LORA_DIO2
|
|
#define SX126X_RESET LORA_RESET
|
|
|
|
#define SX126X_DIO2_AS_RF_SWITCH
|
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
|
|
|
// Enable Traffic Management Module for Heltec V4
|
|
#ifndef HAS_TRAFFIC_MANAGEMENT
|
|
#define HAS_TRAFFIC_MANAGEMENT 1
|
|
#endif
|
|
#ifndef TRAFFIC_MANAGEMENT_CACHE_SIZE
|
|
#define TRAFFIC_MANAGEMENT_CACHE_SIZE 2048
|
|
#endif
|
|
|
|
// ---- KCT8103L RF FRONT END CONFIGURATION ----
|
|
// The Heltec V4.3 uses a KCT8103L FEM chip with integrated PA and LNA
|
|
// RF path: SX1262 -> Pi attenuator -> KCT8103L PA -> Antenna
|
|
// Control logic (from KCT8103L datasheet):
|
|
// Transmit PA: CSD=1, CTX=1, CPS=1
|
|
// Receive LNA: CSD=1, CTX=0, CPS=X (21dB gain, 1.9dB NF)
|
|
// Receive bypass: CSD=1, CTX=1, CPS=0
|
|
// Shutdown: CSD=0, CTX=X, CPS=X
|
|
// Pin mapping:
|
|
// CPS (pin 5) -> SX1262 DIO2: TX/RX path select (automatic via SX126X_DIO2_AS_RF_SWITCH)
|
|
// CSD (pin 4) -> GPIO2: Chip enable (HIGH=on, LOW=shutdown)
|
|
// CTX (pin 6) -> GPIO5: Switch between Receive LNA Mode and Receive Bypass Mode. (HIGH=RX bypass, LOW=RX LNA)
|
|
// VCC0/VCC1 -> Vfem via U3 LDO, controlled by GPIO7
|
|
// KCT8103L FEM: TX/RX path switching is handled by DIO2 -> CPS pin (via SX126X_DIO2_AS_RF_SWITCH)
|
|
|
|
#define USE_KCT8103L_PA
|
|
#define LORA_PA_POWER 7 // VFEM_Ctrl - KCT8103L LDO power enable
|
|
#define LORA_KCT8103L_PA_CSD 2 // CSD - KCT8103L chip enable (HIGH=on)
|
|
#define LORA_KCT8103L_PA_CTX 5 // CTX - Switch between Receive LNA Mode and Receive Bypass Mode. (HIGH=RX bypass, LOW=RX LNA)
|
|
|
|
#if HAS_TFT
|
|
#define USE_TFTDISPLAY 1
|
|
#endif
|
|
/*
|
|
* GPS pins
|
|
*/
|
|
#define GPS_L76K
|
|
#define PIN_GPS_EN (42)
|
|
#define GPS_EN_ACTIVE LOW
|
|
#define PERIPHERAL_WARMUP_MS 1000 // Make sure I2C QuickLink has stable power before continuing
|
|
#define PIN_GPS_PPS (41)
|
|
// Seems to be missing on this new board
|
|
#define GPS_TX_PIN (38) // This is for bits going TOWARDS the CPU
|
|
#define GPS_RX_PIN (39) // This is for bits going TOWARDS the GPS
|
|
#define GPS_THREAD_INTERVAL 50
|