LilyGo-LoRa-Series/examples/Sensor/QMI8658_InterruptBlockExample/utilities.h
2025-12-31 13:56:30 +08:00

780 lines
22 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file utilities.h
* @author Lewis He (lewishe@outlook.com)
* @license MIT
* @copyright Copyright (c) 2024 ShenZhen XinYuan Electronic Technology Co., Ltd
* @date 2024-05-12
* @last-update 2025-07-07
*/
#pragma once
// Support board list , Macro definition below, select the board definition to be used
// 将要使用的板子型号注释打开,只能打开一个型号,如果不明白自己买的型号是什么,请找客服核对型号
/*********************************** Model definition start 型号定义起始 ***********************************/
// 1. --------------T3 V1.3 -------------------------------
// https://lilygo.cc/products/lora-v1-3
// #define T3_V1_3_SX1276
// #define T3_V1_3_SX1278
// 2. --------------T3 V1.6.1 -------------------------------
// https://lilygo.cc/products/lora3
// #define T3_V1_6_SX1276
// #define T3_V1_6_SX1278
// 3. --------------T3 V3.0 TCXO-------------------------------
// Product: https://lilygo.cc/products/t3-tcxo
// #define T3_V3_0_SX1276_TCXO
// 4. --------------T-BEAM ESP32-------------------------------
// Product: https://lilygo.cc/products/t-beam
// #define T_BEAM_SX1262
// #define T_BEAM_SX1276
// #define T_BEAM_SX1278
// #define T_BEAM_LR1121
// 5. --------------T-BEAM S3------------------------------
// Product: https://lilygo.cc/products/t-beam-supreme
// #define T_BEAM_S3_SUPREME_SX1262
// #define T_BEAM_S3_SUPREME_LR1121
// 6. --------------T3 S3 V1.0 or T3 S3 V1.3 -------------------
// Product: https://lilygo.cc/products/t3s3-v1-0 , same v1.3
// Product: https://lilygo.cc/products/t3-s3-v1-3
// #define T3_S3_V1_2_SX1262
// #define T3_S3_V1_2_SX1276
// #define T3_S3_V1_2_SX1278
// #define T3_S3_V1_2_SX1280
// #define T3_S3_V1_2_SX1280_PA
// #define T3_S3_V1_2_LR1121
// #define T3_S3_V1_2_LR1121_PA
// 7. --------------T-Motion -------------------------------------
// Product: https://lilygo.cc/products/t-motion-s76g-stm32-lora
// #define T_MOTION
// --------------T3 C6 -------------------------------------
// Product: https://lilygo.cc/products/t-lora-c6
// #define T3_C6
// --------------T-Beam BPF -------------------------------------
// Product: https://lilygo.cc/products/t-beam-bpf
// #define T_BEAM_S3_BPF
// --------------LoRa 2W -------------------------------------
// Product: ...
// #define T_BEAM_1W
// #define T3_V1_6_SX1276_TCXO // Production has stopped
/*********************************** Model definition end 型号定义结尾 ***********************************/
#define UNUSED_PIN (0)
#if defined(T_BEAM_SX1262) || defined(T_BEAM_SX1276) || defined(T_BEAM_SX1278) || defined(T_BEAM_LR1121)
#if defined(T_BEAM_SX1262)
#ifndef USING_SX1262
#define USING_SX1262
#endif
#elif defined(T_BEAM_SX1276)
#ifndef USING_SX1276
#define USING_SX1276
#endif
#elif defined(T_BEAM_SX1278)
#ifndef USING_SX1278
#define USING_SX1278
#endif
#elif defined(T_BEAM_LR1121)
#ifndef USING_LR1121
#define USING_LR1121
#endif
#endif // T_BEAM_SX1262
#define GPS_RX_PIN 34
#define GPS_TX_PIN 12
#define BUTTON_PIN 38
#define BUTTON_PIN_MASK GPIO_SEL_38
#define I2C_SDA 21
#define I2C_SCL 22
#define PMU_IRQ 35
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_DIO0_PIN 26
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN 33
// SX1276/78
#define RADIO_DIO2_PIN 32
// SX1262
#define RADIO_BUSY_PIN 32
// LR1121 Only
#define RADIO_DIO9_PIN 33
#define BOARD_LED 4
#define LED_ON LOW
#define LED_OFF HIGH
#define BUTTON_PIN 38
#define GPS_BAUD_RATE 9600
#define HAS_GPS
#define HAS_DISPLAY //Optional, bring your own board, no OLED !!
#define HAS_PMU
#define PMU_WIRE_PORT Wire
#define BOARD_VARIANT_NAME "T-Beam"
#define DISPLAY_MODEL_SSD_LIB SSD1306Wire
#define DISPLAY_MODEL U8G2_SSD1306_128X64_NONAME_F_HW_I2C
#elif defined(T3_V1_3_SX1276) || defined(T3_V1_3_SX1278)
#if defined(T3_V1_3_SX1276)
#ifndef USING_SX1276
#define USING_SX1276
#endif
#elif defined(T3_V1_3_SX1278)
#ifndef USING_SX1278
#define USING_SX1278
#endif
#endif // T3_V1_3_SX1276
#define I2C_SDA 21
#define I2C_SCL 22
#define OLED_RST UNUSED_PIN
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_DIO0_PIN 26
#define RADIO_RST_PIN 14
#define RADIO_DIO1_PIN 33
// SX1276/78
#define RADIO_DIO2_PIN 32
// SX1262
#define RADIO_BUSY_PIN 32
#define ADC_PIN 35
#define HAS_DISPLAY
#define BOARD_VARIANT_NAME "T3 V1.3"
#define DISPLAY_MODEL_SSD_LIB SSD1306Wire
#define DISPLAY_MODEL U8G2_SSD1306_128X64_NONAME_F_HW_I2C
#define BAT_ADC_PULLUP_RES (100000.0)
#define BAT_ADC_PULLDOWN_RES (100000.0)
#define BAT_MAX_VOLTAGE (4.2)
#define BAT_VOL_COMPENSATION (0.0)
#elif defined(T3_V1_6_SX1276) || defined(T3_V1_6_SX1278)
#if defined(T3_V1_6_SX1276)
#ifndef USING_SX1276
#define USING_SX1276
#endif
#elif defined(T3_V1_6_SX1278)
#ifndef USING_SX1278
#define USING_SX1278
#endif
#endif // T3_V1_6_SX1276
#define I2C_SDA 21
#define I2C_SCL 22
#define OLED_RST UNUSED_PIN
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_DIO0_PIN 26
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN 33
// SX1276/78
#define RADIO_DIO2_PIN 32
// SX1262
#define RADIO_BUSY_PIN 32
#define SDCARD_MOSI 15
#define SDCARD_MISO 2
#define SDCARD_SCLK 14
#define SDCARD_CS 13
#define BOARD_LED 25
#define LED_ON HIGH
#define ADC_PIN 35
#define HAS_SDCARD
#define HAS_DISPLAY
#define BOARD_VARIANT_NAME "T3 V1.6"
#define DISPLAY_MODEL_SSD_LIB SSD1306Wire
#define DISPLAY_MODEL U8G2_SSD1306_128X64_NONAME_F_HW_I2C
#define BAT_ADC_PULLUP_RES (100000.0)
#define BAT_ADC_PULLDOWN_RES (100000.0)
#define BAT_MAX_VOLTAGE (4.2)
#define BAT_VOL_COMPENSATION (0.0)
#elif defined(T3_V1_6_SX1276_TCXO)
#ifndef USING_SX1276
#define USING_SX1276
#endif
#define I2C_SDA 21
#define I2C_SCL 22
#define OLED_RST UNUSED_PIN
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_DIO0_PIN 26
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN -1//33
/*
* In the T3 V1.6.1 TCXO version, Radio DIO1 is connected to Radios
* internal temperature-compensated crystal oscillator enable
* */
// TCXO pin must be set to HIGH before enabling Radio
#define RADIO_TCXO_ENABLE 33
#define RADIO_BUSY_PIN 32
#define SDCARD_MOSI 15
#define SDCARD_MISO 2
#define SDCARD_SCLK 14
#define SDCARD_CS 13
#define BOARD_LED 25
#define LED_ON HIGH
#define ADC_PIN 35
#define HAS_SDCARD
#define HAS_DISPLAY
#define BOARD_VARIANT_NAME "T3 V1.6 TCXO"
#define DISPLAY_MODEL_SSD_LIB SSD1306Wire
#define DISPLAY_MODEL U8G2_SSD1306_128X64_NONAME_F_HW_I2C
#define BAT_ADC_PULLUP_RES (100000.0)
#define BAT_ADC_PULLDOWN_RES (100000.0)
#define BAT_MAX_VOLTAGE (4.2)
#define BAT_VOL_COMPENSATION (0.0)
#elif defined(T3_V3_0) || defined(T3_V3_0_SX1276_TCXO)
#ifdef T3_V3_0_SX1276_TCXO
#ifndef USING_SX1276
#define USING_SX1276
#endif
#endif
#define I2C_SDA 21
#define I2C_SCL 22
#define OLED_RST 4
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 23
// TCXO pin must be set to HIGH before enabling Radio
#define RADIO_TCXO_ENABLE 12 //only sx1276 tcxo version
#define RADIO_BUSY_PIN 32
#if defined(USING_SX1262)
#define RADIO_DIO1_PIN 26
#define RADIO_BUSY_PIN 32
#elif defined(USING_SX1276) || defined(USING_SX1278)
//!SX1276/78 module only
#define RADIO_DIO0_PIN 26
#define RADIO_DIO1_PIN 32
#elif defined(USING_LR1121)
#define RADIO_DIO9_PIN 26 //LR1121 DIO9
#define RADIO_BUSY_PIN 32 //LR1121 BUSY
#endif
#define SDCARD_MOSI 15
#define SDCARD_MISO 2
#define SDCARD_SCLK 14
#define SDCARD_CS 13
#define BOARD_LED 25
#define LED_ON HIGH
#define HAS_SDCARD
#define HAS_DISPLAY
#define BOARD_VARIANT_NAME "T3 V3.0"
#define DISPLAY_MODEL_SSD_LIB SSD1306Wire
#define DISPLAY_MODEL U8G2_SSD1306_128X64_NONAME_F_HW_I2C
#define BUTTON_PIN 0
#define ADC_PIN 35
#define BAT_ADC_PULLUP_RES (100000.0)
#define BAT_ADC_PULLDOWN_RES (100000.0)
#define BAT_MAX_VOLTAGE (4.2)
#define BAT_VOL_COMPENSATION (0.0)
#elif defined(T3_S3_V1_2_SX1262) || defined(ARDUINO_LILYGO_T3S3_SX1262) || \
defined(T3_S3_V1_2_SX1276) || defined(ARDUINO_LILYGO_T3S3_SX1276) || \
defined(T3_S3_V1_2_SX1278) || defined(ARDUINO_LILYGO_T3S3_SX1278) || \
defined(T3_S3_V1_2_SX1280) || defined(ARDUINO_LILYGO_T3S3_SX1280) || \
defined(T3_S3_V1_2_SX1280_PA) || defined(ARDUINO_LILYGO_T3S3_SX1280PA) || \
defined(T3_S3_V1_2_LR1121) || defined(ARDUINO_LILYGO_T3S3_LR1121) || \
defined(T3_S3_V1_2_LR1121_PA) || defined(ARDUINO_LILYGO_T3S3_LR1121PA)
#if defined(T3_S3_V1_2_SX1262) || defined(ARDUINO_LILYGO_T3S3_SX1262)
#ifndef USING_SX1262
#define USING_SX1262
#endif
#elif defined(T3_S3_V1_2_SX1276) || defined(ARDUINO_LILYGO_T3S3_SX1276)
#ifndef USING_SX1276
#define USING_SX1276
#endif
#elif defined(T3_S3_V1_2_SX1278) || defined(ARDUINO_LILYGO_T3S3_SX1278)
#ifndef USING_SX1278
#define USING_SX1278
#endif
#elif defined(T3_S3_V1_2_SX1280) || defined(ARDUINO_LILYGO_T3S3_SX1280)
#ifndef USING_SX1280
#define USING_SX1280
#endif
#elif defined(T3_S3_V1_2_SX1280_PA) || defined(ARDUINO_LILYGO_T3S3_SX1280PA)
#ifndef USING_SX1280PA
#define USING_SX1280PA
#endif
#elif defined(T3_S3_V1_2_LR1121) || defined(ARDUINO_LILYGO_T3S3_LR1121)
#ifndef USING_LR1121
#define USING_LR1121
#endif
#elif defined(T3_S3_V1_2_LR1121_PA) || defined(ARDUINO_LILYGO_T3S3_LR1121PA)
#ifndef USING_LR1121PA
#define USING_LR1121PA
#endif
#endif // T3_S3_V1_2_SX1262
#define I2C_SDA 18
#define I2C_SCL 17
#define OLED_RST UNUSED_PIN
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 3
#define RADIO_MOSI_PIN 6
#define RADIO_CS_PIN 7
#define SDCARD_MOSI 11
#define SDCARD_MISO 2
#define SDCARD_SCLK 14
#define SDCARD_CS 13
#define BOARD_LED 37
#define LED_ON HIGH
#define BUTTON_PIN 0
#define ADC_PIN 1
#define RADIO_RST_PIN 8
#define BAT_ADC_PULLUP_RES (100000.0)
#define BAT_ADC_PULLDOWN_RES (100000.0)
#define BAT_MAX_VOLTAGE (4.2)
#define BAT_VOL_COMPENSATION (0.0)
#if defined(USING_SX1262)
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 34
#elif defined(USING_SX1276) || defined(USING_SX1278)
//!SX1276/78 module only
#define RADIO_BUSY_PIN 33 //DIO1
#define RADIO_DIO0_PIN 9
#define RADIO_DIO1_PIN 33
#define RADIO_DIO2_PIN 34
#define RADIO_DIO3_PIN 21
#define RADIO_DIO4_PIN 10
#define RADIO_DIO5_PIN 36
#elif defined(USING_SX1280)
#define RADIO_DIO1_PIN 9 //SX1280 DIO1 = IO9
#define RADIO_BUSY_PIN 36 //SX1280 BUSY = IO36
#elif defined(USING_SX1280PA)
#define RADIO_DIO1_PIN 9 //SX1280 DIO1 = IO9
#define RADIO_BUSY_PIN 36 //SX1280 BUSY = IO36
#define RADIO_RX_PIN 21
#define RADIO_TX_PIN 10
#elif defined(USING_LR1121)
#define RADIO_DIO9_PIN 36 //LR1121 DIO9 = IO36
#define RADIO_BUSY_PIN 34 //LR1121 BUSY = IO34
#define LILYGO_RADIO_2G4_TX_POWER_LIMIT 13 //LR1121 2.4G TX Power Limit
#elif defined(USING_LR1121PA)
#define RADIO_DIO9_PIN 36 //LR1121 DIO9 = IO36
#define RADIO_BUSY_PIN 34 //LR1121 BUSY = IO34
#define LILYGO_RADIO_2G4_TX_POWER_LIMIT 0 //LR1121 2.4G TX Power Limit
#define USING_LR1121
#endif
#define BUTTON_PIN 0
#define HAS_SDCARD
#define HAS_DISPLAY
#define BOARD_VARIANT_NAME "T3-S3-V1.X"
#define DISPLAY_MODEL_SSD_LIB SSD1306Wire
#define DISPLAY_MODEL U8G2_SSD1306_128X64_NONAME_F_HW_I2C
#elif defined(T_BEAM_S3_SUPREME_SX1262) || defined(T_BEAM_S3_SUPREME_LR1121)
#ifndef T_BEAM_S3_SUPREME
#define T_BEAM_S3_SUPREME
#endif
#if defined(T_BEAM_S3_SUPREME_SX1262)
#ifndef USING_SX1262
#define USING_SX1262
#endif
#elif defined(T_BEAM_S3_SUPREME_LR1121)
#ifndef USING_LR1121
#define USING_LR1121
#endif
#endif
#define I2C_SDA (17)
#define I2C_SCL (18)
#define I2C1_SDA (42)
#define I2C1_SCL (41)
#define PMU_IRQ (40)
#define GPS_RX_PIN (9)
#define GPS_TX_PIN (8)
#define GPS_EN_PIN (7)
#define GPS_PPS_PIN (6)
#define BUTTON_PIN (0)
#define BUTTON_PIN_MASK (GPIO_SEL_0)
#define BUTTON_COUNT (1)
#define BUTTON_ARRAY {BUTTON_PIN}
#define RADIO_SCLK_PIN (12)
#define RADIO_MISO_PIN (13)
#define RADIO_MOSI_PIN (11)
#define RADIO_CS_PIN (10)
#define RADIO_DIO0_PIN (-1)
#define RADIO_RST_PIN (5)
#define RADIO_DIO1_PIN (1)
#define RADIO_BUSY_PIN (4)
// LR1121 Version
#define RADIO_DIO9_PIN (1)
#define SPI_MOSI (35)
#define SPI_SCK (36)
#define SPI_MISO (37)
#define SPI_CS (47)
#define IMU_CS (34)
#define IMU_INT (33)
#define SDCARD_MOSI SPI_MOSI
#define SDCARD_MISO SPI_MISO
#define SDCARD_SCLK SPI_SCK
#define SDCARD_CS SPI_CS
#define RTC_INT (14)
#define GPS_BAUD_RATE (9600)
#define HAS_SDCARD
#define HAS_GPS
#define HAS_DISPLAY
#define HAS_PMU
#define __HAS_SPI1__
#define HAS_SENSOR
#define PMU_WIRE_PORT Wire1
#define DISPLAY_MODEL U8G2_SH1106_128X64_NONAME_F_HW_I2C
#define DISPLAY_MODEL_SSD_LIB SH1106Wire
#define BOARD_VARIANT_NAME "T-Beam S3"
#elif defined(T_MOTION_S76G)
#ifndef USING_SX1276
#define USING_SX1276
#endif
#define RADIO_SCLK_PIN PB13
#define RADIO_MISO_PIN PB14
#define RADIO_MOSI_PIN PB15
#define RADIO_CS_PIN PB12
#define RADIO_RST_PIN PB10
#define RADIO_DIO0_PIN PB11
#define RADIO_DIO1_PIN PC13
#define RADIO_DIO2_PIN PB9
#define RADIO_DIO3_PIN PB4
#define RADIO_DIO4_PIN PB3
#define RADIO_DIO5_PIN PA15
#undef RADIO_BUSY_PIN
#undef RADIO_DIO1_PIN
#define RADIO_BUSY_PIN PC13 //DIO1
#define RADIO_DIO1_PIN PB11 //DIO0
#define RADIO_SWITCH_PIN PA1 //1:Rx, 0:Tx
#define GPS_EN_PIN PC6
#define GPS_RST_PIN PB2
#define GPS_RX_PIN PC11
#define GPS_TX_PIN PC10
#define GPS_ENABLE_PIN PC6
#define GPS_BAUD_RATE 115200
#define GPS_PPS_PIN PB5
#define UART_RX_PIN PA10
#define UART_TX_PIN PA9
#define I2C_SCL PB6
#define I2C_SDA PB7
#define BOARD_VARIANT_NAME "T-Motion S76G"
#define HAS_GPS
#elif defined(T3_C6)
#ifndef USING_SX1262
#define USING_SX1262
#endif
#define RADIO_SCLK_PIN 6
#define RADIO_MISO_PIN 1
#define RADIO_MOSI_PIN 0
#define RADIO_CS_PIN 18
#define RADIO_DIO1_PIN 23
#define RADIO_BUSY_PIN 22
#define RADIO_RST_PIN 21
#define I2C_SDA 8
#define I2C_SCL 9
#define BOARD_LED 7
#define LED_ON HIGH
#define RADIO_RX_PIN 15
#define RADIO_TX_PIN 14
#define BOARD_VARIANT_NAME "T3-C6"
#define USING_DIO2_AS_RF_SWITCH
#elif defined(T_BEAM_S3_BPF)
#ifndef USING_SX1278
#define USING_SX1278
#endif
#define I2C_SDA (8)
#define I2C_SCL (9)
#define PMU_IRQ (4)
#define GPS_RX_PIN (5)
#define GPS_TX_PIN (6)
#define GPS_PPS_PIN (7)
#define BUTTON_PIN (0)
#define BUTTON2_PIN (3) /*BUTTON 2 = GPIO3*/
#define BUTTON_PIN_MASK GPIO_SEL_0 /*BUTTON 1 = GPIO0*/
#define BUTTON_COUNT (2)
#define BUTTON_ARRAY {BUTTON_PIN, BUTTON2_PIN /*BUTTON 2 = GPIO3*/}
#define RADIO_SCLK_PIN (12)//(41)
#define RADIO_MISO_PIN (13)//(42)
#define RADIO_MOSI_PIN (11)//(2)
#define RADIO_CS_PIN (1)
#define RADIO_RST_PIN (18)
#define RADIO_DIO0_PIN (14)
#define RADIO_DIO1_PIN (21)
// #define RADIO_TCXO_ENABLE (17)
#define RADIO_LDO_EN (16)
#define RADIO_CTRL (39)
#define SPI_MOSI (11)
#define SPI_SCK (12)
#define SPI_MISO (13)
#define SPI_CS (10)
#define SDCARD_MOSI SPI_MOSI
#define SDCARD_MISO SPI_MISO
#define SDCARD_SCLK SPI_SCK
#define SDCARD_CS SPI_CS
#define GPS_BAUD_RATE 9600
#define HAS_SDCARD
#define HAS_GPS
#define HAS_DISPLAY
#define HAS_PMU
#define SD_SHARE_SPI_BUS
#define PMU_WIRE_PORT Wire
#define DISPLAY_MODEL U8G2_SH1106_128X64_NONAME_F_HW_I2C
#define DISPLAY_MODEL_SSD_LIB SH1106Wire
#define BOARD_VARIANT_NAME "T-Beam BPF"
#elif defined(T_BEAM_1W)
#ifndef USING_SX1262
#define USING_SX1262
#endif
#define I2C_SDA (8)
#define I2C_SCL (9)
#define GPS_RX_PIN (5)
#define GPS_TX_PIN (6)
#define GPS_PPS_PIN (7)
#define GPS_EN_PIN (16)
#define BUTTON_PIN (0) /*BUTTON 1 = GPIO0*/
#define BUTTON2_PIN (17) /*BUTTON 2 = GPIO17*/
#define BUTTON_PIN_MASK GPIO_SEL_0
#define BUTTON_COUNT (2)
#define BUTTON_ARRAY {BUTTON_PIN,BUTTON2_PIN/*BUTTON 2 = GPIO3*/}
#define SPI_MOSI (11)
#define SPI_SCK (13)
#define SPI_MISO (12)
#define SPI_CS (10)
#define SDCARD_CS SPI_CS
#define RADIO_SCLK_PIN (SPI_SCK)
#define RADIO_MISO_PIN (SPI_MISO)
#define RADIO_MOSI_PIN (SPI_MOSI)
#define RADIO_CS_PIN (15)
#define RADIO_RST_PIN (3)
#define RADIO_LDO_EN (40)
#define RADIO_CTRL (21)
#define RADIO_DIO1_PIN (1)
#define RADIO_BUSY_PIN (38)
#define BOARD_LED 18
#define LED_ON HIGH
#define LED_OFF LOW
#define NTC_PIN (14)
#define FAN_CTRL (41)
#define ADC_PIN (4)
#define BAT_ADC_PULLUP_RES (300000.0)
#define BAT_ADC_PULLDOWN_RES (150000.0)
#define BAT_MAX_VOLTAGE (7.4)
#define BAT_VOL_COMPENSATION (0.25)
#define GPS_SLEEP_HOLD_ON_LOW
#define GPS_BAUD_RATE 9600
#define HAS_SDCARD
#define HAS_GPS
#define HAS_DISPLAY
#define SD_SHARE_SPI_BUS // SD-CARD AND RADIO SHARE SPI BUS
#define __HAS_SPI1__
#define DISPLAY_MODEL U8G2_SH1106_128X64_NONAME_F_HW_I2C
#define DISPLAY_MODEL_SSD_LIB SH1106Wire
#define BOARD_VARIANT_NAME "LoRa 2W"
#else
#error "When using it for the first time, please define the board model in <utilities.h> 首次使用时,请在<utilities.h> 文件最上方定义板卡模型"
#endif
#if defined(USING_SX1262)
#define RADIO_TYPE_STR "SX1262"
#elif defined(USING_SX1276)
#define RADIO_TYPE_STR "SX1276"
#elif defined(USING_SX1278)
#define RADIO_TYPE_STR "SX1278"
#elif defined(USING_LR1121)
#define RADIO_TYPE_STR "LR1121"
#elif defined(USING_SX1280)
#define RADIO_TYPE_STR "SX1280"
#elif defined(USING_SX1280PA)
#define RADIO_TYPE_STR "SX1280PA"
#endif