mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-08 06:02:05 +00:00
Lilygo T3S3 E-Paper support (#4569)
* t3s3 e-paper support * remove GPS autodetect (which leads to crashes during startup when no GPS present) * update EINK defines * keep definitions for external GPS connector but disable GPS auto scan by default
This commit is contained in:
parent
dd933e6bab
commit
6a24566efb
@ -157,7 +157,7 @@ bool EInkDisplay::connect()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_WIRELESS_PAPER) || defined(HELTEC_VISION_MASTER_E213) || \
|
#elif defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_WIRELESS_PAPER) || defined(HELTEC_VISION_MASTER_E213) || \
|
||||||
defined(HELTEC_VISION_MASTER_E290)
|
defined(HELTEC_VISION_MASTER_E290) || defined(TLORA_T3S3_EPAPER)
|
||||||
{
|
{
|
||||||
// Start HSPI
|
// Start HSPI
|
||||||
hspi = new SPIClass(HSPI);
|
hspi = new SPIClass(HSPI);
|
||||||
|
@ -68,7 +68,7 @@ class EInkDisplay : public OLEDDisplay
|
|||||||
|
|
||||||
// If display uses HSPI
|
// If display uses HSPI
|
||||||
#if defined(HELTEC_WIRELESS_PAPER) || defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_VISION_MASTER_E213) || \
|
#if defined(HELTEC_WIRELESS_PAPER) || defined(HELTEC_WIRELESS_PAPER_V1_0) || defined(HELTEC_VISION_MASTER_E213) || \
|
||||||
defined(HELTEC_VISION_MASTER_E290)
|
defined(HELTEC_VISION_MASTER_E290) || defined(TLORA_T3S3_EPAPER)
|
||||||
SPIClass *hspi = NULL;
|
SPIClass *hspi = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@ void NodeDB::installDefaultConfig()
|
|||||||
#else
|
#else
|
||||||
config.device.disable_triple_click = true;
|
config.device.disable_triple_click = true;
|
||||||
#endif
|
#endif
|
||||||
#if !HAS_GPS || defined(T_DECK)
|
#if !HAS_GPS || defined(T_DECK) || defined(TLORA_T3S3_EPAPER)
|
||||||
config.position.gps_mode = meshtastic_Config_PositionConfig_GpsMode_NOT_PRESENT;
|
config.position.gps_mode = meshtastic_Config_PositionConfig_GpsMode_NOT_PRESENT;
|
||||||
#elif !defined(GPS_RX_PIN)
|
#elif !defined(GPS_RX_PIN)
|
||||||
if (config.position.rx_gpio == 0)
|
if (config.position.rx_gpio == 0)
|
||||||
|
@ -122,6 +122,8 @@
|
|||||||
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_WIRELESS_PAPER
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_WIRELESS_PAPER
|
||||||
#elif defined(TLORA_T3S3_V1)
|
#elif defined(TLORA_T3S3_V1)
|
||||||
#define HW_VENDOR meshtastic_HardwareModel_TLORA_T3_S3
|
#define HW_VENDOR meshtastic_HardwareModel_TLORA_T3_S3
|
||||||
|
#elif defined(TLORA_T3S3_EPAPER)
|
||||||
|
#define HW_VENDOR meshtastic_HardwareModel_TLORA_T3_S3
|
||||||
#elif defined(CDEBYTE_EORA_S3)
|
#elif defined(CDEBYTE_EORA_S3)
|
||||||
#define HW_VENDOR meshtastic_HardwareModel_CDEBYTE_EORA_S3
|
#define HW_VENDOR meshtastic_HardwareModel_CDEBYTE_EORA_S3
|
||||||
#elif defined(BETAFPV_2400_TX)
|
#elif defined(BETAFPV_2400_TX)
|
||||||
|
26
variants/tlora_t3s3_epaper/pins_arduino.h
Normal file
26
variants/tlora_t3s3_epaper/pins_arduino.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef Pins_Arduino_h
|
||||||
|
#define Pins_Arduino_h
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define USB_VID 0x303a
|
||||||
|
#define USB_PID 0x1001
|
||||||
|
|
||||||
|
// The default Wire will be mapped to PMU and RTC
|
||||||
|
static const uint8_t SDA = 18;
|
||||||
|
static const uint8_t SCL = 12; // t3s3 e-Paper has no pin 17 as t3s3 v1, so use another free pin next to it
|
||||||
|
|
||||||
|
// Default SPI will be mapped to Radio
|
||||||
|
static const uint8_t SS = 7;
|
||||||
|
static const uint8_t MOSI = 6;
|
||||||
|
static const uint8_t MISO = 3;
|
||||||
|
static const uint8_t SCK = 5;
|
||||||
|
|
||||||
|
#define SPI_MOSI (11)
|
||||||
|
#define SPI_SCK (14)
|
||||||
|
#define SPI_MISO (2)
|
||||||
|
#define SPI_CS (13)
|
||||||
|
|
||||||
|
#define SDCARD_CS SPI_CS
|
||||||
|
|
||||||
|
#endif /* Pins_Arduino_h */
|
23
variants/tlora_t3s3_epaper/platformio.ini
Normal file
23
variants/tlora_t3s3_epaper/platformio.ini
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[env:tlora-t3s3-epaper]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = tlora-t3s3-v1
|
||||||
|
board_check = true
|
||||||
|
upload_protocol = esptool
|
||||||
|
|
||||||
|
build_flags =
|
||||||
|
${esp32_base.build_flags} -D TLORA_T3S3_EPAPER -I variants/tlora_t3s3_epaper
|
||||||
|
-DGPS_POWER_TOGGLE
|
||||||
|
-DEINK_DISPLAY_MODEL=GxEPD2_213_BN
|
||||||
|
-DEINK_WIDTH=250
|
||||||
|
-DEINK_HEIGHT=122
|
||||||
|
-DUSE_EINK_DYNAMICDISPLAY ; Enable Dynamic EInk
|
||||||
|
-DEINK_LIMIT_FASTREFRESH=10 ; How many consecutive fast-refreshes are permitted
|
||||||
|
-DEINK_LIMIT_RATE_BACKGROUND_SEC=30 ; Minimum interval between BACKGROUND updates
|
||||||
|
-DEINK_LIMIT_RATE_RESPONSIVE_SEC=1 ; Minimum interval between RESPONSIVE updates
|
||||||
|
-DEINK_HASQUIRK_VICIOUSFASTREFRESH ; Identify that pixels drawn by fast-refresh are harder to clear
|
||||||
|
;-DEINK_LIMIT_GHOSTING_PX=2000 ; (Optional) How much image ghosting is tolerated
|
||||||
|
;-DEINK_BACKGROUND_USES_FAST ; (Optional) Use FAST refresh for both BACKGROUND and RESPONSIVE, until a limit is reached.
|
||||||
|
|
||||||
|
lib_deps =
|
||||||
|
${esp32s3_base.lib_deps}
|
||||||
|
https://github.com/meshtastic/GxEPD2#b202ebfec6a4821e098cf7a625ba0f6f2400292d
|
69
variants/tlora_t3s3_epaper/variant.h
Normal file
69
variants/tlora_t3s3_epaper/variant.h
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
#define HAS_SDCARD
|
||||||
|
#define SDCARD_USE_SPI1
|
||||||
|
|
||||||
|
// Display (E-Ink)
|
||||||
|
#define USE_EINK
|
||||||
|
#define PIN_EINK_CS 15
|
||||||
|
#define PIN_EINK_BUSY 48
|
||||||
|
#define PIN_EINK_DC 16
|
||||||
|
#define PIN_EINK_RES 47
|
||||||
|
#define PIN_EINK_SCLK 14
|
||||||
|
#define PIN_EINK_MOSI 11
|
||||||
|
|
||||||
|
#define BATTERY_PIN 1 // A battery voltage measurement pin, voltage divider connected here to
|
||||||
|
// measure battery voltage ratio of voltage divider = 2.0 (assumption)
|
||||||
|
#define ADC_MULTIPLIER 2.11 // 2.0 + 10% for correction of display undervoltage.
|
||||||
|
#define ADC_CHANNEL ADC1_GPIO1_CHANNEL
|
||||||
|
|
||||||
|
#define I2C_SDA SDA
|
||||||
|
#define I2C_SCL SCL
|
||||||
|
|
||||||
|
// external qwiic connector
|
||||||
|
#define GPS_RX_PIN 44
|
||||||
|
#define GPS_TX_PIN 43
|
||||||
|
|
||||||
|
#define LED_PIN 37
|
||||||
|
#define BUTTON_PIN 0
|
||||||
|
#define BUTTON_NEED_PULLUP
|
||||||
|
|
||||||
|
// TTGO uses a common pinout for their SX1262 vs RF95 modules - both can be enabled and
|
||||||
|
// we will probe at runtime for RF95 and if not found then probe for SX1262
|
||||||
|
#define USE_RF95 // RFM95/SX127x
|
||||||
|
#define USE_SX1262
|
||||||
|
#define USE_SX1280
|
||||||
|
|
||||||
|
#define LORA_SCK 5
|
||||||
|
#define LORA_MISO 3
|
||||||
|
#define LORA_MOSI 6
|
||||||
|
#define LORA_CS 7
|
||||||
|
#define LORA_RESET 8
|
||||||
|
|
||||||
|
// per SX1276_Receive_Interrupt/utilities.h
|
||||||
|
#define LORA_DIO0 9
|
||||||
|
#define LORA_DIO1 33 // TCXO_EN ?
|
||||||
|
#define LORA_DIO2 34
|
||||||
|
#define LORA_RXEN 21
|
||||||
|
#define LORA_TXEN 10
|
||||||
|
|
||||||
|
// per SX1262_Receive_Interrupt/utilities.h
|
||||||
|
#ifdef USE_SX1262
|
||||||
|
#define SX126X_CS LORA_CS
|
||||||
|
#define SX126X_DIO1 33
|
||||||
|
#define SX126X_BUSY 34
|
||||||
|
#define SX126X_RESET LORA_RESET
|
||||||
|
#define SX126X_DIO2_AS_RF_SWITCH
|
||||||
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// per SX128x_Receive_Interrupt/utilities.h
|
||||||
|
#ifdef USE_SX1280
|
||||||
|
#define SX128X_CS LORA_CS
|
||||||
|
#define SX128X_DIO1 9
|
||||||
|
#define SX128X_DIO2 33
|
||||||
|
#define SX128X_DIO3 34
|
||||||
|
#define SX128X_BUSY 36
|
||||||
|
#define SX128X_RESET LORA_RESET
|
||||||
|
#define SX128X_RXEN 21
|
||||||
|
#define SX128X_TXEN 10
|
||||||
|
#define SX128X_MAX_POWER 3
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user