mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-26 22:33:24 +00:00
Partial Heltec Wireless Paper and Wireless Tracker support (#2594)
* WIP * Comment * WIP * TFT_CTRL * Update platformio.ini update to current latest version available * Update EInkDisplay2.cpp Is the e-ink Display a DEPG0213BN ? * Logging * trunk fmt --------- Co-authored-by: Mark Trevor Birss <markbirss@gmail.com>
This commit is contained in:
parent
aa0b56e947
commit
4ace59fc18
src
variants
@ -181,10 +181,14 @@ bool GPS::setupGPS()
|
|||||||
config.position.tx_gpio = GPS_TX_PIN;
|
config.position.tx_gpio = GPS_TX_PIN;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//#define BAUD_RATE 115200
|
||||||
// ESP32 has a special set of parameters vs other arduino ports
|
// ESP32 has a special set of parameters vs other arduino ports
|
||||||
#if defined(ARCH_ESP32)
|
#if defined(ARCH_ESP32)
|
||||||
if (config.position.rx_gpio)
|
if (config.position.rx_gpio) {
|
||||||
|
LOG_DEBUG("Using GPIO%d for GPS RX\n", config.position.rx_gpio);
|
||||||
|
LOG_DEBUG("Using GPIO%d for GPS TX\n", config.position.tx_gpio);
|
||||||
_serial_gps->begin(GPS_BAUDRATE, SERIAL_8N1, config.position.rx_gpio, config.position.tx_gpio);
|
_serial_gps->begin(GPS_BAUDRATE, SERIAL_8N1, config.position.rx_gpio, config.position.tx_gpio);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
_serial_gps->begin(GPS_BAUDRATE);
|
_serial_gps->begin(GPS_BAUDRATE);
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,6 +7,10 @@
|
|||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
|
|
||||||
|
// #ifdef HELTEC_WIRELESS_PAPER
|
||||||
|
// SPIClass *hspi = NULL;
|
||||||
|
// #endif
|
||||||
|
|
||||||
#define COLORED GxEPD_BLACK
|
#define COLORED GxEPD_BLACK
|
||||||
#define UNCOLORED GxEPD_WHITE
|
#define UNCOLORED GxEPD_WHITE
|
||||||
|
|
||||||
@ -19,13 +23,13 @@
|
|||||||
#define TECHO_DISPLAY_MODEL GxEPD2_213_BN
|
#define TECHO_DISPLAY_MODEL GxEPD2_213_BN
|
||||||
|
|
||||||
// 4.2 inch 300x400 - GxEPD2_420_M01
|
// 4.2 inch 300x400 - GxEPD2_420_M01
|
||||||
//#define TECHO_DISPLAY_MODEL GxEPD2_420_M01
|
// #define TECHO_DISPLAY_MODEL GxEPD2_420_M01
|
||||||
|
|
||||||
// 2.9 inch 296x128 - GxEPD2_290_T5D
|
// 2.9 inch 296x128 - GxEPD2_290_T5D
|
||||||
//#define TECHO_DISPLAY_MODEL GxEPD2_290_T5D
|
// #define TECHO_DISPLAY_MODEL GxEPD2_290_T5D
|
||||||
|
|
||||||
// 1.54 inch 200x200 - GxEPD2_154_M09
|
// 1.54 inch 200x200 - GxEPD2_154_M09
|
||||||
//#define TECHO_DISPLAY_MODEL GxEPD2_154_M09
|
// #define TECHO_DISPLAY_MODEL GxEPD2_154_M09
|
||||||
|
|
||||||
#elif defined(MAKERPYTHON)
|
#elif defined(MAKERPYTHON)
|
||||||
// 2.9 inch 296x128 - GxEPD2_290_T5D
|
// 2.9 inch 296x128 - GxEPD2_290_T5D
|
||||||
@ -41,6 +45,9 @@
|
|||||||
// 1.54 inch 200x200 - GxEPD2_154_M09
|
// 1.54 inch 200x200 - GxEPD2_154_M09
|
||||||
#define TECHO_DISPLAY_MODEL GxEPD2_154_M09
|
#define TECHO_DISPLAY_MODEL GxEPD2_154_M09
|
||||||
|
|
||||||
|
#elif defined(HELTEC_WIRELESS_PAPER)
|
||||||
|
//#define TECHO_DISPLAY_MODEL GxEPD2_213_T5D
|
||||||
|
#define TECHO_DISPLAY_MODEL GxEPD2_213_BN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GxEPD2_BW<TECHO_DISPLAY_MODEL, TECHO_DISPLAY_MODEL::HEIGHT> *adafruitDisplay;
|
GxEPD2_BW<TECHO_DISPLAY_MODEL, TECHO_DISPLAY_MODEL::HEIGHT> *adafruitDisplay;
|
||||||
@ -62,6 +69,10 @@ EInkDisplay::EInkDisplay(uint8_t address, int sda, int scl, OLEDDISPLAY_GEOMETRY
|
|||||||
|
|
||||||
// GxEPD2_154_M09
|
// GxEPD2_154_M09
|
||||||
// setGeometry(GEOMETRY_RAWMODE, 200, 200);
|
// setGeometry(GEOMETRY_RAWMODE, 200, 200);
|
||||||
|
|
||||||
|
#elif defined(HELTEC_WIRELESS_PAPER)
|
||||||
|
// setGeometry(GEOMETRY_RAWMODE, 212, 104);
|
||||||
|
setGeometry(GEOMETRY_RAWMODE, 250, 122);
|
||||||
#elif defined(MAKERPYTHON)
|
#elif defined(MAKERPYTHON)
|
||||||
// GxEPD2_290_T5D
|
// GxEPD2_290_T5D
|
||||||
setGeometry(GEOMETRY_RAWMODE, 296, 128);
|
setGeometry(GEOMETRY_RAWMODE, 296, 128);
|
||||||
@ -218,6 +229,16 @@ bool EInkDisplay::connect()
|
|||||||
(void)adafruitDisplay;
|
(void)adafruitDisplay;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#elif defined(HELTEC_WIRELESS_PAPER)
|
||||||
|
{
|
||||||
|
auto lowLevel = new TECHO_DISPLAY_MODEL(PIN_EINK_CS, PIN_EINK_DC, PIN_EINK_RES, PIN_EINK_BUSY);
|
||||||
|
adafruitDisplay = new GxEPD2_BW<TECHO_DISPLAY_MODEL, TECHO_DISPLAY_MODEL::HEIGHT>(*lowLevel);
|
||||||
|
// hspi = new SPIClass(HSPI);
|
||||||
|
// hspi->begin(PIN_EINK_SCLK, -1, PIN_EINK_MOSI, PIN_EINK_CS); // SCLK, MISO, MOSI, SS
|
||||||
|
adafruitDisplay->init(115200, true, 10, false, SPI, SPISettings(6000000, MSBFIRST, SPI_MODE0));
|
||||||
|
adafruitDisplay->setRotation(3);
|
||||||
|
adafruitDisplay->setPartialWindow(0, 0, displayWidth, displayHeight);
|
||||||
|
}
|
||||||
#elif defined(PCA10059)
|
#elif defined(PCA10059)
|
||||||
{
|
{
|
||||||
auto lowLevel = new TECHO_DISPLAY_MODEL(PIN_EINK_CS, PIN_EINK_DC, PIN_EINK_RES, PIN_EINK_BUSY);
|
auto lowLevel = new TECHO_DISPLAY_MODEL(PIN_EINK_CS, PIN_EINK_DC, PIN_EINK_RES, PIN_EINK_BUSY);
|
||||||
|
@ -65,6 +65,10 @@ bool TFTDisplay::connect()
|
|||||||
digitalWrite(TFT_BL, HIGH);
|
digitalWrite(TFT_BL, HIGH);
|
||||||
pinMode(TFT_BL, OUTPUT);
|
pinMode(TFT_BL, OUTPUT);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef TFT_POWER_EN
|
||||||
|
digitalWrite(TFT_POWER_EN, HIGH);
|
||||||
|
pinMode(TFT_POWER_EN, OUTPUT);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ST7735_BACKLIGHT_EN
|
#ifdef ST7735_BACKLIGHT_EN
|
||||||
digitalWrite(ST7735_BACKLIGHT_EN, HIGH);
|
digitalWrite(ST7735_BACKLIGHT_EN, HIGH);
|
||||||
|
10
src/main.cpp
10
src/main.cpp
@ -214,6 +214,16 @@ void setup()
|
|||||||
digitalWrite(VEXT_ENABLE, 0); // turn on the display power
|
digitalWrite(VEXT_ENABLE, 0); // turn on the display power
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef VGNSS_CTRL
|
||||||
|
pinMode(VGNSS_CTRL, OUTPUT);
|
||||||
|
digitalWrite(VGNSS_CTRL, LOW);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(VTFT_CTRL)
|
||||||
|
pinMode(VTFT_CTRL, OUTPUT);
|
||||||
|
digitalWrite(VTFT_CTRL, LOW);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef RESET_OLED
|
#ifdef RESET_OLED
|
||||||
pinMode(RESET_OLED, OUTPUT);
|
pinMode(RESET_OLED, OUTPUT);
|
||||||
digitalWrite(RESET_OLED, 1);
|
digitalWrite(RESET_OLED, 1);
|
||||||
|
@ -97,6 +97,10 @@
|
|||||||
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_V3
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_V3
|
||||||
#elif defined(HELTEC_WSL_V3)
|
#elif defined(HELTEC_WSL_V3)
|
||||||
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_WSL_V3
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_WSL_V3
|
||||||
|
#elif defined(HELTEC_WIRELESS_TRACKER)
|
||||||
|
#define HW_VENDOR meshtastic_HardwareModel_HELTEC_WIRELESS_TRACKER
|
||||||
|
#elif defined(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(BETAFPV_2400_TX)
|
#elif defined(BETAFPV_2400_TX)
|
||||||
|
8
variants/heltec_wireless_paper/platformio.ini
Normal file
8
variants/heltec_wireless_paper/platformio.ini
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[env:heltec-wireless-paper]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = heltec_wifi_lora_32_V3
|
||||||
|
build_flags =
|
||||||
|
${esp32s3_base.build_flags} -D HELTEC_WIRELESS_PAPER -I variants/heltec_wireless_paper
|
||||||
|
lib_deps =
|
||||||
|
${esp32s3_base.lib_deps}
|
||||||
|
zinggjm/GxEPD2@^1.5.2
|
39
variants/heltec_wireless_paper/variant.h
Normal file
39
variants/heltec_wireless_paper/variant.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#define LED_PIN 18
|
||||||
|
|
||||||
|
#define USE_EINK
|
||||||
|
/*
|
||||||
|
* eink display pins
|
||||||
|
*/
|
||||||
|
#define PIN_EINK_CS 4
|
||||||
|
#define PIN_EINK_BUSY 7
|
||||||
|
#define PIN_EINK_DC 5
|
||||||
|
#define PIN_EINK_RES 6
|
||||||
|
#define PIN_EINK_SCLK 3
|
||||||
|
#define PIN_EINK_MOSI 2
|
||||||
|
|
||||||
|
#define VEXT_ENABLE Vext // active low, powers the oled display and the lora antenna boost
|
||||||
|
#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
|
||||||
|
|
||||||
|
#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 TXCO is enabled
|
||||||
|
|
||||||
|
#define RF95_SCK 9
|
||||||
|
#define RF95_MISO 11
|
||||||
|
#define RF95_MOSI 10
|
||||||
|
#define RF95_NSS 8
|
||||||
|
|
||||||
|
#define SX126X_CS RF95_NSS
|
||||||
|
#define SX126X_DIO1 LORA_DIO1
|
||||||
|
#define SX126X_BUSY LORA_DIO2
|
||||||
|
#define SX126X_RESET LORA_RESET
|
||||||
|
#define SX126X_E22
|
23
variants/heltec_wireless_tracker/platformio.ini
Normal file
23
variants/heltec_wireless_tracker/platformio.ini
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[env:heltec-wireless-tracker]
|
||||||
|
extends = esp32s3_base
|
||||||
|
board = heltec_wifi_lora_32_V3
|
||||||
|
build_flags =
|
||||||
|
${esp32s3_base.build_flags} -D HELTEC_WIRELESS_TRACKER -I variants/heltec_wireless_tracker
|
||||||
|
-DUSER_SETUP_LOADED
|
||||||
|
-DTFT_WIDTH=80
|
||||||
|
-DTFT_HEIGHT=160
|
||||||
|
-DST7735_GREENTAB160x80
|
||||||
|
-DST7735_DRIVER
|
||||||
|
;-TFT_RGB_ORDER=TFT_BGR
|
||||||
|
-DTFT_CS=38
|
||||||
|
-DTFT_DC=40
|
||||||
|
-DTFT_RST=39
|
||||||
|
-DTFT_WR=42
|
||||||
|
-DTFT_SCLK=41
|
||||||
|
;-DSPI_FREQUENCY=40000000
|
||||||
|
;-DSPI_FREQUENCY=27000000
|
||||||
|
;-DSPI_READ_FREQUENCY=16000000
|
||||||
|
;-DDISABLE_ALL_LIBRARY_WARNINGS
|
||||||
|
lib_deps =
|
||||||
|
${esp32s3_base.lib_deps}
|
||||||
|
bodmer/TFT_eSPI@^2.4.76
|
53
variants/heltec_wireless_tracker/variant.h
Normal file
53
variants/heltec_wireless_tracker/variant.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#define LED_PIN 18
|
||||||
|
|
||||||
|
#define TFT_POWER_EN 46
|
||||||
|
|
||||||
|
#define ST7735_RESET 39 // Output
|
||||||
|
#define ST7735_CS 38
|
||||||
|
#define ST7735_BACKLIGHT_EN 45
|
||||||
|
#define ST7735_RS 40
|
||||||
|
#define ST7735_SDA 42
|
||||||
|
#define ST7735_SCK 41
|
||||||
|
|
||||||
|
// #define RESET_OLED 21
|
||||||
|
// #define I2C_SDA 17 // I2C pins for this board
|
||||||
|
// #define I2C_SCL 18
|
||||||
|
|
||||||
|
#define SCREEN_TRANSITION_FRAMERATE 1 // fps
|
||||||
|
|
||||||
|
#define VEXT_ENABLE Vext // active low, powers the oled display and the lora antenna boost
|
||||||
|
#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
|
||||||
|
|
||||||
|
#undef GPS_RX_PIN
|
||||||
|
#undef GPS_TX_PIN
|
||||||
|
#define GPS_RX_PIN 33
|
||||||
|
#define GPS_TX_PIN 34
|
||||||
|
#define PIN_GPS_RESET 35
|
||||||
|
#define PIN_GPS_PPS 36
|
||||||
|
#define VGNSS_CTRL 37 // Heltec Tracker needs this pulled low for GPS
|
||||||
|
|
||||||
|
#define VTFT_CTRL 46 // Heltec Tracker needs this pulled low for TFT
|
||||||
|
|
||||||
|
#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 TXCO is enabled
|
||||||
|
|
||||||
|
#define RF95_SCK 9
|
||||||
|
#define RF95_MISO 11
|
||||||
|
#define RF95_MOSI 10
|
||||||
|
#define RF95_NSS 8
|
||||||
|
|
||||||
|
#define SX126X_CS RF95_NSS
|
||||||
|
#define SX126X_DIO1 LORA_DIO1
|
||||||
|
#define SX126X_BUSY LORA_DIO2
|
||||||
|
#define SX126X_RESET LORA_RESET
|
||||||
|
#define SX126X_E22
|
Loading…
Reference in New Issue
Block a user