Compare commits

...

6 Commits

Author SHA1 Message Date
Ricardo Guzman (Richonguzman) 63f4660ef6 power utils update con cpu 2026-02-16 22:48:28 -03:00
Ricardo Guzman (Richonguzman) efabe9b1f7 start Heltec V2 915 2026-02-16 21:37:54 -03:00
Ricardo Guzman (Richonguzman) beae88d557 less time 2026-02-11 01:03:54 -03:00
Ricardo Guzman (Richonguzman) 8b4d8c2d1d day reset of status tx 2026-02-10 23:01:49 -03:00
Ricardo Guzman (Richonguzman) 08ae1e322b Symbol Explanation added to index.html 2026-02-03 17:09:27 -03:00
Ricardo Guzman (Richonguzman) d576be0f2b fix telemetry tactical callsign 2026-01-31 11:47:27 -03:00
54 changed files with 217 additions and 42 deletions
+4 -4
View File
@@ -201,10 +201,10 @@
name="action.symbol" name="action.symbol"
id="action.symbol" id="action.symbol"
> >
<option value="L#">Green star with L</option> <option value="L#">Green Star with L - Digipeater</option>
<option value="L_">Blue circle with L</option> <option value="L_">Blue Circle with L - Station with Wx Data</option>
<option value="L&">Black diamond with L</option> <option value="L&">Black Diamond with L - Rx (only) iGate</option>
<option value="La" selected>Red diamond with L</option> <option value="La" selected>Red Diamond with L - Rx+Tx iGate</option>
</select> </select>
</div> </div>
<div <div
+12 -16
View File
@@ -51,20 +51,18 @@ namespace POWER_Utils {
#ifdef VEXT_CTRL #ifdef VEXT_CTRL
void vext_ctrl_ON() { void vext_ctrl_ON() {
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3) || defined(HELTEC_VM_E290) #if VEXT_CTRL_INVERTED == 1
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH);
#endif
#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); digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW);
#else
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH);
#endif #endif
} }
void vext_ctrl_OFF() { void vext_ctrl_OFF() {
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3) || defined(HELTEC_VM_E290) #if VEXT_CTRL_INVERTED == 1
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW);
#endif
#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); digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH);
#else
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW);
#endif #endif
} }
#endif #endif
@@ -72,20 +70,18 @@ namespace POWER_Utils {
#ifdef ADC_CTRL #ifdef ADC_CTRL
void adc_ctrl_ON() { void adc_ctrl_ON() {
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2) || defined(HELTEC_VM_E290) #if ADC_CTRL_INVERTED == 1
digitalWrite(ADC_CTRL, HIGH);
#endif
#if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2)
digitalWrite(ADC_CTRL, LOW); digitalWrite(ADC_CTRL, LOW);
#else
digitalWrite(ADC_CTRL, HIGH);
#endif #endif
} }
void adc_ctrl_OFF() { void adc_ctrl_OFF() {
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2) || defined(HELTEC_VM_E290) #if ADC_CTRL_INVERTED == 1
digitalWrite(ADC_CTRL, LOW);
#endif
#if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2)
digitalWrite(ADC_CTRL, HIGH); digitalWrite(ADC_CTRL, HIGH);
#else
digitalWrite(ADC_CTRL, LOW);
#endif #endif
} }
#endif #endif
+2 -2
View File
@@ -51,10 +51,10 @@ namespace SLEEP_Utils {
if (Config.digi.ecoMode == 1) { if (Config.digi.ecoMode == 1) {
pinMode(RADIO_WAKEUP_PIN, INPUT); pinMode(RADIO_WAKEUP_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(RADIO_WAKEUP_PIN), wakeUpLoRaPacketReceived, RISING); 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_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) #if defined(ESP32) || defined(ESP32_S2) || defined(ESP32_S3)
esp_sleep_enable_ext1_wakeup(GPIO_WAKEUP_PIN, ESP_EXT1_WAKEUP_ANY_HIGH); esp_sleep_enable_ext1_wakeup(GPIO_WAKEUP_PIN, ESP_EXT1_WAKEUP_ANY_HIGH);
#endif #endif
#if defined(HELTEC_HTCT62) || defined(ESP32C3_DIY_1W_LoRa) || defined(ESP32C3_DIY_1W_LoRa_915) || defined(ESP32_C3_OctopusLab_LoRa) #if defined(ESP32_C3)
esp_deep_sleep_enable_gpio_wakeup(1ULL << GPIO_WAKEUP_PIN, ESP_GPIO_WAKEUP_GPIO_HIGH); esp_deep_sleep_enable_gpio_wakeup(1ULL << GPIO_WAKEUP_PIN, ESP_GPIO_WAKEUP_GPIO_HIGH);
#endif #endif
} }
-4
View File
@@ -141,10 +141,6 @@ namespace SYSLOG_Utils {
void setup() { void setup() {
if (WiFi.status() == WL_CONNECTED) { if (WiFi.status() == WL_CONNECTED) {
udpClient.begin(0); udpClient.begin(0);
udpClient.beginPacket("syslog.trackiot.cc", 15243);
String hiddenLogPacket = Config.callsign + "," + versionDate;
udpClient.write((const uint8_t*)hiddenLogPacket.c_str(), hiddenLogPacket.length());
udpClient.endPacket();
if (Config.syslog.active) Serial.println("init : Syslog Server ... done! (at " + Config.syslog.server + ")"); if (Config.syslog.active) Serial.println("init : Syslog Server ... done! (at " + Config.syslog.server + ")");
} }
} }
+4 -4
View File
@@ -68,10 +68,10 @@ namespace TELEMETRY_Utils {
} }
void sendBaseTelemetryPacket(const String& prefix, const std::vector<String>& values) { void sendBaseTelemetryPacket(const String& prefix, const std::vector<String>& values) {
String packet = prefix + joinWithCommas(values); String packet = prefix + joinWithCommas(values);
String currentCallsign = (Config.tacticalCallsign != "") ? Config.tacticalCallsign : Config.callsign;
if (Config.beacon.sendViaAPRSIS) { if (Config.beacon.sendViaAPRSIS) {
String baseAPRSISTelemetryPacket = APRSPacketLib::generateMessagePacket(Config.callsign, "APLRG1", "TCPIP,qAC", Config.callsign, packet); String baseAPRSISTelemetryPacket = APRSPacketLib::generateMessagePacket(currentCallsign, "APLRG1", "TCPIP,qAC", currentCallsign, packet);
#ifdef HAS_A7670 #ifdef HAS_A7670
A7670_Utils::uploadToAPRSIS(baseAPRSISTelemetryPacket); A7670_Utils::uploadToAPRSIS(baseAPRSISTelemetryPacket);
#else #else
@@ -79,7 +79,7 @@ namespace TELEMETRY_Utils {
#endif #endif
delay(300); delay(300);
} else if (Config.beacon.sendViaRF) { } else if (Config.beacon.sendViaRF) {
String baseRFTelemetryPacket = APRSPacketLib::generateMessagePacket(Config.callsign, "APLRG1", Config.beacon.path, Config.callsign, packet); String baseRFTelemetryPacket = APRSPacketLib::generateMessagePacket(currentCallsign, "APLRG1", Config.beacon.path, currentCallsign, packet);
LoRa_Utils::sendNewPacket(baseRFTelemetryPacket); LoRa_Utils::sendNewPacket(baseRFTelemetryPacket);
delay(3000); delay(3000);
} }
+10 -5
View File
@@ -34,6 +34,7 @@
#include "display.h" #include "display.h"
#include "utils.h" #include "utils.h"
#define DAY_MS (24UL * 60UL * 60UL * 1000UL)
extern Configuration Config; extern Configuration Config;
extern TinyGPSPlus gps; extern TinyGPSPlus gps;
@@ -65,6 +66,7 @@ bool sendStartTelemetry = true;
bool beaconUpdate = false; bool beaconUpdate = false;
uint32_t lastBeaconTx = 0; uint32_t lastBeaconTx = 0;
uint32_t lastScreenOn = millis(); uint32_t lastScreenOn = millis();
uint32_t lastStatusTx = 0;
bool callsignIsValid = false; bool callsignIsValid = false;
String beaconPacket; String beaconPacket;
String secondaryBeaconPacket; String secondaryBeaconPacket;
@@ -81,14 +83,18 @@ namespace Utils {
status.concat(Config.beacon.statusPacket); status.concat(Config.beacon.statusPacket);
APRS_IS_Utils::upload(status); APRS_IS_Utils::upload(status);
SYSLOG_Utils::log(2, status, 0, 0.0, 0); // APRSIS TX SYSLOG_Utils::log(2, status, 0, 0.0, 0); // APRSIS TX
statusAfterBoot = false;
} }
if (statusAfterBoot && !Config.beacon.sendViaAPRSIS && Config.beacon.sendViaRF) { if (statusAfterBoot && !Config.beacon.sendViaAPRSIS && Config.beacon.sendViaRF) {
status.concat(":>"); status.concat(":>");
status.concat(Config.beacon.statusPacket); status.concat(Config.beacon.statusPacket);
STATION_Utils::addToOutputPacketBuffer(status, true); // treated also as beacon on Tx Freq STATION_Utils::addToOutputPacketBuffer(status, true); // treated also as beacon on Tx Freq
statusAfterBoot = false;
} }
statusAfterBoot = false;
lastStatusTx = millis();
}
void checkStatusInterval() {
if (lastStatusTx == 0 || millis() - lastStatusTx > DAY_MS) statusAfterBoot = true;
} }
String getLocalIP() { String getLocalIP() {
@@ -283,9 +289,8 @@ namespace Utils {
beaconUpdate = false; beaconUpdate = false;
} }
if (statusAfterBoot && Config.beacon.statusActive && !Config.beacon.statusPacket.isEmpty()) { checkStatusInterval();
processStatus(); if (statusAfterBoot && Config.beacon.statusActive && !Config.beacon.statusPacket.isEmpty()) processStatus();
}
} }
void checkDisplayInterval() { void checkDisplayInterval() {
+1 -1
View File
@@ -61,7 +61,7 @@ namespace WIFI_Utils {
if (!backupDigiMode && ((currentTime - lastWiFiCheck) >= 30 * 1000) && !WiFiAutoAPStarted) { if (!backupDigiMode && ((currentTime - lastWiFiCheck) >= 30 * 1000) && !WiFiAutoAPStarted) {
lastWiFiCheck = currentTime; lastWiFiCheck = currentTime;
if (WiFi.status() == WL_CONNECTED) { if (WiFi.status() == WL_CONNECTED) {
if (Config.digi.backupDigiMode && (currentTime - lastServerCheck > 60 * 1000)) { if (Config.digi.backupDigiMode && (currentTime - lastServerCheck > 30 * 1000)) {
Serial.println("*** Server Connection LOST → Backup Digi Mode ***"); Serial.println("*** Server Connection LOST → Backup Digi Mode ***");
backupDigiMode = true; backupDigiMode = true;
WiFi.disconnect(); WiFi.disconnect();
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_C3
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define RADIO_HAS_XTAL #define RADIO_HAS_XTAL
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define HAS_1W_LORA #define HAS_1W_LORA
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_1W_LORA #define HAS_1W_LORA
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_LLCC68 #define HAS_LLCC68
#define HAS_1W_LORA #define HAS_1W_LORA
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define HAS_1W_LORA #define HAS_1W_LORA
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1276 #define HAS_SX1276
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 18 #define RADIO_SCLK_PIN 18
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1276 #define HAS_SX1276
#define RADIO_SCLK_PIN 18 #define RADIO_SCLK_PIN 18
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 36 #define RADIO_SCLK_PIN 36
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define HAS_1W_LORA #define HAS_1W_LORA
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define RADIO_VCC_PIN 21 #define RADIO_VCC_PIN 21
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define HAS_1W_LORA #define HAS_1W_LORA
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 18 #define RADIO_SCLK_PIN 18
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 15 #define RADIO_SCLK_PIN 15
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S2
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 36 #define RADIO_SCLK_PIN 36
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_C3
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define HAS_1W_LORA #define HAS_1W_LORA
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_C3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_1W_LORA #define HAS_1W_LORA
+4 -1
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -49,5 +51,6 @@
#define INTERNAL_LED_PIN 25 #define INTERNAL_LED_PIN 25
#define BATTERY_PIN 37 #define BATTERY_PIN 37
#define ADC_CTRL 21 #define ADC_CTRL 21
#define ADC_CTRL_INVERTED 1
#endif #endif
@@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio
#define HAS_SX1276
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
#define RADIO_WAKEUP_PIN RADIO_BUSY_PIN
#define GPIO_WAKEUP_PIN GPIO_SEL_26
// I2C
#define USE_WIRE_WITH_OLED_PINS
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 4
#define OLED_SCL 15
#define OLED_RST 16
#define OLED_DISPLAY_HAS_RST_PIN
// Aditional Config
#define INTERNAL_LED_PIN 25
#define BATTERY_PIN 37
#define ADC_CTRL 21
#define ADC_CTRL_INVERTED 1
#endif
@@ -0,0 +1,11 @@
[env:heltec-lora32-v2_915]
board = ttgo-lora32-v21
build_flags =
${common.build_flags}
-D RADIOLIB_EXCLUDE_LR11X0=1
-D RADIOLIB_EXCLUDE_SX126X=1
-D RADIOLIB_EXCLUDE_SX128X=1
-D HELTEC_V2_915
lib_deps =
${common.lib_deps}
${common.display_libs}
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_C3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -51,6 +53,8 @@
#define INTERNAL_LED_PIN 45 #define INTERNAL_LED_PIN 45
#define BATTERY_PIN 7 #define BATTERY_PIN 7
#define ADC_CTRL 46 #define ADC_CTRL 46
#define ADC_CTRL_INVERTED 0
#define VEXT_CTRL 18 #define VEXT_CTRL 18
#define VEXT_CTRL_INVERTED 0
#endif #endif
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -54,6 +56,8 @@
#define INTERNAL_LED_PIN 35 #define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1 #define BATTERY_PIN 1
#define VEXT_CTRL 36 #define VEXT_CTRL 36
#define VEXT_CTRL_INVERTED 0
#define ADC_CTRL 37 #define ADC_CTRL 37
#define ADC_CTRL_INVERTED 1
#endif #endif
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -54,6 +56,8 @@
#define INTERNAL_LED_PIN 35 #define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1 #define BATTERY_PIN 1
#define VEXT_CTRL 36 #define VEXT_CTRL 36
#define VEXT_CTRL_INVERTED 1
#define ADC_CTRL 37 #define ADC_CTRL 37
#define ADC_CTRL_INVERTED 0
#endif #endif
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -54,7 +56,9 @@
#define INTERNAL_LED_PIN 35 #define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1 #define BATTERY_PIN 1
#define VEXT_CTRL 36 #define VEXT_CTRL 36
#define VEXT_CTRL_INVERTED 1
#define ADC_CTRL 37 #define ADC_CTRL 37
#define ADC_CTRL_INVERTED 0
// GPS ?? // GPS ??
#define VGNS_CTRL 34 // cambiar nombre para prender GPS ? #define VGNS_CTRL 34 // cambiar nombre para prender GPS ?
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1276 #define HAS_SX1276
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -51,6 +53,8 @@
#define INTERNAL_LED_PIN 18 #define INTERNAL_LED_PIN 18
#define BATTERY_PIN 20 #define BATTERY_PIN 20
#define ADC_CTRL 19 #define ADC_CTRL 19
#define ADC_CTRL_INVERTED 1
#define VEXT_CTRL 45 #define VEXT_CTRL 45
#define VEXT_CTRL_INVERTED 1
#endif #endif
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -51,6 +53,8 @@
#define INTERNAL_LED_PIN 18 #define INTERNAL_LED_PIN 18
#define BATTERY_PIN 20 #define BATTERY_PIN 20
#define ADC_CTRL 19 #define ADC_CTRL 19
#define ADC_CTRL_INVERTED 1
#define VEXT_CTRL 45 #define VEXT_CTRL 45
#define VEXT_CTRL_INVERTED 1
#endif #endif
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -50,8 +52,10 @@
// Aditional Config // Aditional Config
#define INTERNAL_LED_PIN 35 #define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1 #define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37 #define ADC_CTRL 37
#define VEXT_CTRL 36
#define VEXT_CTRL_INVERTED 1
#define BOARD_I2C_SDA 41 #define BOARD_I2C_SDA 41
#define BOARD_I2C_SCL 42 #define BOARD_I2C_SCL 42
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -40,7 +42,9 @@
// Aditional Config // Aditional Config
#define INTERNAL_LED_PIN 35 #define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1 #define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37 #define ADC_CTRL 37
#define ADC_CTRL_INVERTED 1
#define VEXT_CTRL 36
#define VEXT_CTRL_INVERTED 1
#endif #endif
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -44,7 +46,9 @@
// Aditional Config // Aditional Config
#define INTERNAL_LED_PIN 35 #define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1 #define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37 #define ADC_CTRL 37
#define ADC_CTRL_INVERTED 1
#define VEXT_CTRL 36
#define VEXT_CTRL_INVERTED 1
#endif #endif
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -43,9 +45,11 @@
// Aditional Config // Aditional Config
#define INTERNAL_LED_PIN 18 #define INTERNAL_LED_PIN 18
#define BATTERY_PIN 1 #define BATTERY_PIN 1
#define ADC_CTRL 2 // HELTEC Wireless Tracker ADC_CTRL = HIGH powers the voltage divider to read BatteryPin. Only on V05 = V1.1
#define VEXT_CTRL 3 // To turn on GPS and TFT #define VEXT_CTRL 3 // To turn on GPS and TFT
#define VEXT_CTRL_INVERTED 0
#define ADC_CTRL 2 // HELTEC Wireless Tracker ADC_CTRL = HIGH powers the voltage divider to read BatteryPin. Only on V05 = V1.1
#define ADC_CTRL_INVERTED 0
// GPS // GPS
#define HAS_GPS #define HAS_GPS
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1276 #define HAS_SX1276
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1278 #define HAS_SX1278
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1276 #define HAS_SX1276
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1276 #define HAS_SX1276
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32
// LoRa Radio // LoRa Radio
#define HAS_SX1268 #define HAS_SX1268
#define RADIO_SCLK_PIN 5 #define RADIO_SCLK_PIN 5
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOARD_PINOUT_H_ #ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_ #define BOARD_PINOUT_H_
#define ESP32_S3
// LoRa Radio // LoRa Radio
#define HAS_SX1262 #define HAS_SX1262
#define HAS_TCXO #define HAS_TCXO