From 9a705d3dfab2426cf1c1641ff908e4d7acc84617 Mon Sep 17 00:00:00 2001 From: "Ricardo Guzman (Richonguzman)" Date: Mon, 22 Dec 2025 21:29:50 -0300 Subject: [PATCH] Heltec Wireless Paper V1.2 added --- src/display.cpp | 19 +++---- src/power_utils.cpp | 8 +-- .../heltec_wireless_paper_v1_2/board_pinout.h | 56 +++++++++++++++++++ .../heltec_wireless_paper_v1_2/platformio.ini | 14 +++++ 4 files changed, 82 insertions(+), 15 deletions(-) create mode 100644 variants/heltec_wireless_paper_v1_2/board_pinout.h create mode 100644 variants/heltec_wireless_paper_v1_2/platformio.ini diff --git a/src/display.cpp b/src/display.cpp index 0b07125..a9cdaf8 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -47,9 +47,9 @@ #ifdef HELTEC_WP_V1 EInkDisplay_WirelessPaperV1_1 display; #endif - /*#ifdef HELTEC_WP_V1_2 + #ifdef HELTEC_WP_V1_2 EInkDisplay_WirelessPaperV1_2 display; - #endif*/ + #endif #ifdef HELTEC_VM_E290 EInkDisplay_VisionMasterE290 display; #endif @@ -100,17 +100,14 @@ void displaySetup() { #ifdef HAS_EPAPER display.landscape(); display.printCenter("LoRa APRS iGate Initialising..."); - if (Config.display.turn180) - #ifdef HELTEC_VM_E290 + if (Config.display.turn180) { + #if defined(HELTEC_VM_E290) || defined(HELTEC_WP_V1) display.setRotation(3); - #else - #ifdef HELTEC_WP_V1_2 - display.setRotation(1); - #else - display.setRotation(3) - #endif #endif - + #if defined(HELTEC_WP_V1_2) + display.setRotation(1); + #endif + } display.update(); #else #ifdef OLED_DISPLAY_HAS_RST_PIN diff --git a/src/power_utils.cpp b/src/power_utils.cpp index f408134..7d1e20d 100644 --- a/src/power_utils.cpp +++ b/src/power_utils.cpp @@ -52,7 +52,7 @@ namespace POWER_Utils { #if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3) || defined(HELTEC_VM_E290) digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH); #endif - #if defined(HELTEC_WP_V1) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) + #if defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW); #endif } @@ -61,7 +61,7 @@ namespace POWER_Utils { #if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3) || defined(HELTEC_VM_E290) digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW); #endif - #if defined(HELTEC_WP_V1) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) + #if defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH); #endif } @@ -73,7 +73,7 @@ namespace POWER_Utils { #if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2) || defined(HELTEC_VM_E290) digitalWrite(ADC_CTRL, HIGH); #endif - #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) + #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2) digitalWrite(ADC_CTRL, LOW); #endif } @@ -82,7 +82,7 @@ namespace POWER_Utils { #if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2) || defined(HELTEC_VM_E290) digitalWrite(ADC_CTRL, LOW); #endif - #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) + #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2) digitalWrite(ADC_CTRL, HIGH); #endif } diff --git a/variants/heltec_wireless_paper_v1_2/board_pinout.h b/variants/heltec_wireless_paper_v1_2/board_pinout.h new file mode 100644 index 0000000..5b4a375 --- /dev/null +++ b/variants/heltec_wireless_paper_v1_2/board_pinout.h @@ -0,0 +1,56 @@ +/* Copyright (C) 2025 Ricardo Guzman - CA2RXU + * + * This file is part of LoRa APRS iGate. + * + * LoRa APRS iGate is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * LoRa APRS iGate is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with LoRa APRS iGate. If not, see . + */ + +#ifndef BOARD_PINOUT_H_ +#define BOARD_PINOUT_H_ + + // LoRa Radio + #define HAS_SX1262 + #define HAS_TCXO + #define RADIO_SCLK_PIN 9 + #define RADIO_MISO_PIN 11 + #define RADIO_MOSI_PIN 10 + #define RADIO_CS_PIN 8 + #define RADIO_RST_PIN 12 + #define RADIO_DIO1_PIN 14 + #define RADIO_BUSY_PIN 13 + #define RADIO_WAKEUP_PIN RADIO_DIO1_PIN + #define GPIO_WAKEUP_PIN GPIO_SEL_14 + + // I2C + #define USE_WIRE1_WITH_BOARD_I2C_PINS + #define BOARD_I2C_SDA 37 + #define BOARD_I2C_SCL 36 + + // Display + #define HAS_DISPLAY + #define HAS_EPAPER + #define EPAPER_BUSY 7 + #define EPAPER_RST 6 + #define EPAPER_DC 5 + #define EPAPER_CS 4 + #define EPAPER_SCL 3 + #define EPAPER_SDA 2 + + // Aditional Config + #define INTERNAL_LED_PIN 18 + #define BATTERY_PIN 20 + #define ADC_CTRL 19 + #define VEXT_CTRL 45 + +#endif \ No newline at end of file diff --git a/variants/heltec_wireless_paper_v1_2/platformio.ini b/variants/heltec_wireless_paper_v1_2/platformio.ini new file mode 100644 index 0000000..b47e1ef --- /dev/null +++ b/variants/heltec_wireless_paper_v1_2/platformio.ini @@ -0,0 +1,14 @@ +[env:heltec_wireless_paper_v1_2] +board = esp32-s3-devkitc-1 +board_build.mcu = esp32s3 +build_flags = + ${common.build_flags} + -D RADIOLIB_EXCLUDE_LR11X0=1 + -D RADIOLIB_EXCLUDE_SX127X=1 + -D RADIOLIB_EXCLUDE_SX128X=1 + -D HELTEC_WP_V1_2 + -D WIRELESS_PAPER + -D V1_2 +lib_deps = + ${common.lib_deps} + https://github.com/todd-herbert/heltec-eink-modules.git \ No newline at end of file