You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

144 lines
4.9 KiB

/*
* variant.h
*
* MIT License
*/
#pragma once
#include "WVariant.h"
////////////////////////////////////////////////////////////////////////////////
// Low frequency clock source
#define USE_LFXO // 32.768 kHz crystal oscillator
#define VARIANT_MCK (64000000ul)
#define WIRE_INTERFACES_COUNT (1)
////////////////////////////////////////////////////////////////////////////////
// Power
#define PIN_PWR_EN (30) // RT9080 LDO enable pin for 3v3 rail
#define PIN_BAT_CTL (31) // vdiv enable
#define PIN_VBAT_READ (2)
#define ADC_MULTIPLIER (4.90F)
#define ADC_RESOLUTION (14)
#define BATTERY_SENSE_RES (12)
#define AREF_VOLTAGE (3.0)
////////////////////////////////////////////////////////////////////////////////
// Number of pins
#define PINS_COUNT (48)
#define NUM_DIGITAL_PINS (48)
#define NUM_ANALOG_INPUTS (1)
#define NUM_ANALOG_OUTPUTS (0)
////////////////////////////////////////////////////////////////////////////////
// UART pin definition
#define PIN_SERIAL1_RX PIN_GPS_TX
#define PIN_SERIAL1_TX PIN_GPS_RX
////////////////////////////////////////////////////////////////////////////////
// I2C pin definition
#define PIN_WIRE_SDA (36) // P1.04
#define PIN_WIRE_SCL (34) // P1.02
#define I2C_NO_RESCAN
#define DISABLE_DS3231_PROBE // DS3231 lives at 0x68 but this board has ICM20948 at that address, causing broken clock.
////////////////////////////////////////////////////////////////////////////////
// SPI pin definition
#define SPI_INTERFACES_COUNT (1)
#define PIN_SPI_MISO (17)
#define PIN_SPI_MOSI (15)
#define PIN_SPI_SCK (13)
////////////////////////////////////////////////////////////////////////////////
// QSPI FLASH
#define PIN_QSPI_SCK (4)
#define PIN_QSPI_CS (12)
#define PIN_QSPI_IO0 (6)
#define PIN_QSPI_IO1 (8)
#define PIN_QSPI_IO2 (41) // P1.09
#define PIN_QSPI_IO3 (26)
#define EXTERNAL_FLASH_DEVICES ZD25WQ32CEIGR
#define EXTERNAL_FLASH_USE_QSPI
////////////////////////////////////////////////////////////////////////////////
// Builtin LEDs (only WS2812, no traditional LEDs available)
// WS1812 data lines
#define WS2812_DATA_1 (39) // P1.07
#define WS2812_DATA_2 (44) // P1.12
#define WS2812_DATA_3 (28) // P0.28
#define LED_BLUE (-1)
#define LED_BUILTIN (-1)
#define LED_PIN LED_BUILTIN
#define LED_STATE_ON LOW
////////////////////////////////////////////////////////////////////////////////
// Builtin buttons
#define PIN_BUTTON1 (42) // P1.10
#define BUTTON_PIN PIN_BUTTON1 // BUTTON A
#define PIN_USER_BTN BUTTON_PIN
#define PIN_BUTTON2 (24)
#define BUTTON_PIN2 PIN_BUTTON2 // BUTTON C
////////////////////////////////////////////////////////////////////////////////
// Lora (Acsip S62F)
#define USE_SX1262
#define P_LORA_SCLK PIN_SPI_SCK
#define P_LORA_MISO PIN_SPI_MISO
#define P_LORA_MOSI PIN_SPI_MOSI
#define P_LORA_DIO_1 (40) // P1.08
#define P_LORA_RESET (7) // P0.07
#define P_LORA_BUSY (14) // P0.14
#define P_LORA_NSS (11) // P0.11
#define SX126X_RXEN (33) // P1.01
#define SX126X_TXEN (27) // P0.27
#define SX126X_DIO3_TCXO_VOLTAGE (1.8f)
////////////////////////////////////////////////////////////////////////////////
// GPS
// NOTE: these pins are defined differently to how lilygo does them but they
// seem to work properly for how EnvironmentSensorManager operates.
// TODO: MAYBE? migrate to board based sensor manager / add GPS_WAKE_UP to ESM
#define PIN_GPS_RX (21) // GPS_UART_RX in lilygo pin defs
#define PIN_GPS_TX (19) // GPS_UART_TX in lilygo pin defs
#define PIN_GPS_EN (25) // GPS_WAKE_UP in lilygo pin defs
#define PIN_GPS_RESET (47) // GPS_EN in lilygo pin defs
#define PIN_GPS_STANDBY (29) // GPS_RF_EN in lilygo pin defs
#define PIN_GPS_PPS (23) // GPS_1PPS in lilygo pin defs
// buzzer - enabled in platformio.ini so it can be easily turned off if not wanted.
// #define PIN_BUZZER (38) // P1.06
// microphone
#define MICROPHONE_SCLK (35) // P1.03
#define MICROPHONE_DATA (37) // P1.05
// speaker
#define SPEAKER_EN (43) // P1.11
#define SPEAKER_EN_2 (3) // P0.03
#define SPEAKER_BCLK (16) // P0.16
#define SPEAKER_DATA (20) // P0.20
#define SPEAKER_WS_LRCK (22) // P0.22
// ICM20948 9dof motion sensor (accelerometer and magnetometer)
#define ICM20948_SDA PIN_WIRE_SDA // P1.4
#define ICM20948_SCL PIN_WIRE_SCL // P1.2
#define ICM20948_ADDRESS 0x68