diff --git a/src/battery_utils.cpp b/src/battery_utils.cpp index 478380a..8b52b2e 100644 --- a/src/battery_utils.cpp +++ b/src/battery_utils.cpp @@ -147,7 +147,7 @@ namespace BATTERY_Utils { #ifdef ADC_CTRL POWER_Utils::adc_ctrl_OFF(); - #ifdef HELTEC_WP + #ifdef HELTEC_WP_V1 double inputDivider = (1.0 / (10.0 + 10.0)) * 10.0; // The voltage divider is a 10k + 10k resistor in series #else double inputDivider = (1.0 / (390.0 + 100.0)) * 100.0; // The voltage divider is a 390k + 100k resistor in series, 100k on the low side. @@ -216,7 +216,7 @@ namespace BATTERY_Utils { shouldSleepLowVoltage = true; } #endif - #ifndef HELTEC_WP + #ifndef HELTEC_WP_V1 if (Config.battery.monitorExternalVoltage && checkExternalVoltage() < Config.battery.externalSleepVoltage + 0.1) { shouldSleepLowVoltage = true; } diff --git a/src/display.cpp b/src/display.cpp index e304311..e3b2746 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -44,7 +44,9 @@ #ifdef HAS_EPAPER #include #include "Fonts/FreeSansBold9pt7b.h" - EInkDisplay_WirelessPaperV1_1 display; + #ifdef HELTEC_WP_V1 + EInkDisplay_WirelessPaperV1_1 display; + #endif String lastEpaperText; #else #include diff --git a/src/power_utils.cpp b/src/power_utils.cpp index c13f537..35a2edc 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) digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH); #endif - #if defined(HELTEC_WP) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) + #if defined(HELTEC_WP_V1) || 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) digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW); #endif - #if defined(HELTEC_WP) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) + #if defined(HELTEC_WP_V1) || 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) digitalWrite(ADC_CTRL, HIGH); #endif - #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP) + #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) digitalWrite(ADC_CTRL, LOW); #endif } @@ -82,7 +82,7 @@ namespace POWER_Utils { #if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2) digitalWrite(ADC_CTRL, LOW); #endif - #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP) + #if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) digitalWrite(ADC_CTRL, HIGH); #endif } @@ -304,7 +304,7 @@ namespace POWER_Utils { Wire.begin(OLED_SDA, OLED_SCL); #endif - #if defined(HELTEC_V3) || defined(HELTEC_V3_2) || defined(HELTEC_WP) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY) + #if defined(HELTEC_V3) || defined(HELTEC_V3_2) || defined(HELTEC_WP_V1) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY) Wire1.begin(BOARD_I2C_SDA, BOARD_I2C_SCL); #endif diff --git a/src/sleep_utils.cpp b/src/sleep_utils.cpp index cf6e71b..c6ca2e4 100644 --- a/src/sleep_utils.cpp +++ b/src/sleep_utils.cpp @@ -51,7 +51,7 @@ namespace SLEEP_Utils { if (Config.digi.ecoMode == 1) { pinMode(RADIO_WAKEUP_PIN, INPUT); attachInterrupt(digitalPinToInterrupt(RADIO_WAKEUP_PIN), wakeUpLoRaPacketReceived, RISING); - #if defined(TTGO_LORA32_V2_1) || defined(TTGO_LORA32_V2_1_915) || defined(TTGO_LORA32_T3S3_V1_2) || defined(TTGO_T_BEAM_V1_0) || defined(TTGO_T_BEAM_V1_0_915) || defined(TTGO_T_BEAM_V1_0_SX1268) || defined(TTGO_T_BEAM_V1_2) || defined(TTGO_T_BEAM_V1_2_915) || defined(TTGO_T_BEAM_V1_2_SX1262) || defined(TTGO_T_DECK_PLUS) || defined(TTGO_T_DECK_GPS) || defined(TTGO_T_Beam_S3_SUPREME_V3) || defined(HELTEC_V3) || defined(HELTEC_V3_2) || defined(HELTEC_WP) || defined(HELTEC_WS) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY) || defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V2) || defined(XIAO_ESP32S3_LORA) || defined(LIGHTGATEWAY_1_0) || defined(LIGHTGATEWAY_PLUS_1_0) || defined(TROY_LoRa_APRS) || defined(OE5HWN_MeshCom) || defined(ESP32_DIY_LoRa) || defined(ESP32_DIY_LoRa_915) || defined(ESP32_DIY_1W_LoRa) || defined(ESP32_DIY_1W_LoRa_915) || defined(ESP32_DIY_1W_LoRa_LLCC68) || defined(ESP32_DIY_1W_LoRa_Mesh_V1_2) || defined(WEMOS_S2_MINI_DIY_LoRa) || defined(WEMOS_D1_R32_RA02) || defined(WEMOS_LOLIN32_OLED_DIY_LoRa) + #if defined(TTGO_LORA32_V2_1) || defined(TTGO_LORA32_V2_1_915) || defined(TTGO_LORA32_T3S3_V1_2) || defined(TTGO_T_BEAM_V1_0) || defined(TTGO_T_BEAM_V1_0_915) || defined(TTGO_T_BEAM_V1_0_SX1268) || defined(TTGO_T_BEAM_V1_2) || defined(TTGO_T_BEAM_V1_2_915) || defined(TTGO_T_BEAM_V1_2_SX1262) || defined(TTGO_T_DECK_PLUS) || defined(TTGO_T_DECK_GPS) || defined(TTGO_T_Beam_S3_SUPREME_V3) || defined(HELTEC_V3) || defined(HELTEC_V3_2) || defined(HELTEC_WP_V1) || defined(HELTEC_WS) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY) || defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V2) || defined(XIAO_ESP32S3_LORA) || defined(LIGHTGATEWAY_1_0) || defined(LIGHTGATEWAY_PLUS_1_0) || defined(TROY_LoRa_APRS) || defined(OE5HWN_MeshCom) || defined(ESP32_DIY_LoRa) || defined(ESP32_DIY_LoRa_915) || defined(ESP32_DIY_1W_LoRa) || defined(ESP32_DIY_1W_LoRa_915) || defined(ESP32_DIY_1W_LoRa_LLCC68) || defined(ESP32_DIY_1W_LoRa_Mesh_V1_2) || defined(WEMOS_S2_MINI_DIY_LoRa) || defined(WEMOS_D1_R32_RA02) || defined(WEMOS_LOLIN32_OLED_DIY_LoRa) esp_sleep_enable_ext1_wakeup(GPIO_WAKEUP_PIN, ESP_EXT1_WAKEUP_ANY_HIGH); #endif #if defined(HELTEC_HTCT62) || defined(ESP32C3_DIY_1W_LoRa) || defined(ESP32C3_DIY_1W_LoRa_915) || defined(ESP32_C3_OctopusLab_LoRa) diff --git a/src/utils.cpp b/src/utils.cpp index 6da7f16..1cc1e95 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -210,7 +210,7 @@ namespace Utils { } #endif - #ifndef HELTEC_WP + #ifndef HELTEC_WP_V1 if (Config.battery.sendExternalVoltage || Config.battery.monitorExternalVoltage) { float externalVoltage = BATTERY_Utils::checkExternalVoltage(); if (Config.battery.monitorExternalVoltage && externalVoltage < Config.battery.externalSleepVoltage) { diff --git a/variants/heltec_wireless_paper_v1/board_pinout.h b/variants/heltec_wireless_paper_v1/board_pinout.h new file mode 100644 index 0000000..f715d04 --- /dev/null +++ b/variants/heltec_wireless_paper_v1/board_pinout.h @@ -0,0 +1,52 @@ +/* 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 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 + + // 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 + #define BOARD_I2C_SDA 37 + #define BOARD_I2C_SCL 36 + +#endif \ No newline at end of file diff --git a/variants/heltec_wireless_paper_v1/platformio.ini b/variants/heltec_wireless_paper_v1/platformio.ini new file mode 100644 index 0000000..04929f4 --- /dev/null +++ b/variants/heltec_wireless_paper_v1/platformio.ini @@ -0,0 +1,10 @@ +[env:heltec_wireless_paper_v1] +board = esp32-s3-devkitc-1 +board_build.mcu = esp32s3 +build_flags = + ${common.build_flags} + -D HELTEC_WP_V1 + -D WIRELESS_PAPER +lib_deps = + ${common.lib_deps} + todd-herbert/heltec-eink-modules @ 4.5.0 \ No newline at end of file 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..f715d04 --- /dev/null +++ b/variants/heltec_wireless_paper_v1_2/board_pinout.h @@ -0,0 +1,52 @@ +/* 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 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 + + // 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 + #define BOARD_I2C_SDA 37 + #define BOARD_I2C_SCL 36 + +#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..9f8651d --- /dev/null +++ b/variants/heltec_wireless_paper_v1_2/platformio.ini @@ -0,0 +1,10 @@ +[env:heltec_wireless_paper_v1_2] +board = esp32-s3-devkitc-1 +board_build.mcu = esp32s3 +build_flags = + ${common.build_flags} + -D HELTEC_WP_V1_2 + -D WIRELESS_PAPER +lib_deps = + ${common.lib_deps} + todd-herbert/heltec-eink-modules @ 4.5.0 \ No newline at end of file