mirror of
https://github.com/richonguzman/LoRa_APRS_iGate.git
synced 2026-05-02 19:32:13 +02:00
Compare commits
11 Commits
moreHeltec
...
25segBuffe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e6d44c1b7f | ||
|
|
d4fc99466f | ||
|
|
41f09af7b5 | ||
|
|
0eec028c5d | ||
|
|
c48dd15bd6 | ||
|
|
f26ded5b5c | ||
|
|
c887689406 | ||
|
|
775e08a10a | ||
|
|
f9291821d2 | ||
|
|
12d0bb760e | ||
|
|
f020eb7491 |
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -37,8 +37,7 @@ namespace STATION_Utils {
|
|||||||
void deleteNotHeard();
|
void deleteNotHeard();
|
||||||
void updateLastHeard(const String& station);
|
void updateLastHeard(const String& station);
|
||||||
bool wasHeard(const String& station);
|
bool wasHeard(const String& station);
|
||||||
void clean25SegBuffer();
|
bool isIn25SegHashBuffer(const String& station, const String& textMessage);
|
||||||
bool check25SegBuffer(const String& station, const String& textMessage);
|
|
||||||
void processOutputPacketBufferUltraEcoMode();
|
void processOutputPacketBufferUltraEcoMode();
|
||||||
void processOutputPacketBuffer();
|
void processOutputPacketBuffer();
|
||||||
void addToOutputPacketBuffer(const String& packet, bool flag = false);
|
void addToOutputPacketBuffer(const String& packet, bool flag = false);
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -45,7 +45,7 @@ namespace Utils {
|
|||||||
void checkRebootMode();
|
void checkRebootMode();
|
||||||
void checkRebootTime();
|
void checkRebootTime();
|
||||||
void checkSleepByLowBatteryVoltage(uint8_t mode);
|
void checkSleepByLowBatteryVoltage(uint8_t mode);
|
||||||
bool checkValidCallsign(const String& callsign);
|
bool callsignIsValid(const String& callsign);
|
||||||
void startupDelay();
|
void startupDelay();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#ifdef HAS_A7670
|
#ifdef HAS_A7670
|
||||||
#define TINY_GSM_MODEM_SIM7600 //The AT instruction of A7670 is compatible with SIM7600
|
#define TINY_GSM_MODEM_SIM7600 //The AT instruction of A7670 is compatible with SIM7600
|
||||||
#define TINY_GSM_RX_BUFFER 1024 // Set RX buffer to 1Kb
|
#define TINY_GSM_RX_BUFFER 1024 // Set RX buffer to 1Kb
|
||||||
#define SerialAT Serial1
|
#define SerialAT Serial1
|
||||||
#include <TinyGsmClient.h>
|
#include <TinyGsmClient.h>
|
||||||
@@ -115,6 +115,8 @@
|
|||||||
if (SerialAT.available()) {
|
if (SerialAT.available()) {
|
||||||
String response = SerialAT.readString();
|
String response = SerialAT.readString();
|
||||||
//Serial.println(response); // DEBUG of Modem AT message
|
//Serial.println(response); // DEBUG of Modem AT message
|
||||||
|
int responseOKIndex = response.indexOf("OK");
|
||||||
|
int callsignIndex = ATMessage.indexOf(Config.callsign);
|
||||||
if(response.indexOf("verified") >= 0) {
|
if(response.indexOf("verified") >= 0) {
|
||||||
Serial.println("Logged! (User Validated)\n");
|
Serial.println("Logged! (User Validated)\n");
|
||||||
displayShow(firstLine, "Connecting APRS-IS...", "---> Logged!", " ", 1000);
|
displayShow(firstLine, "Connecting APRS-IS...", "---> Logged!", " ", 1000);
|
||||||
@@ -122,7 +124,7 @@
|
|||||||
validAT = true;
|
validAT = true;
|
||||||
i = 1;
|
i = 1;
|
||||||
delayATMessage = 0;
|
delayATMessage = 0;
|
||||||
} else if (ATMessage == "AT+NETOPEN" && response.indexOf("OK") >= 0) {
|
} else if (ATMessage == "AT+NETOPEN" && responseOKIndex >= 0) {
|
||||||
Serial.println("Port Open!");
|
Serial.println("Port Open!");
|
||||||
displayShow(firstLine, "Opening Port...", "---> Port Open", " ", 0);
|
displayShow(firstLine, "Opening Port...", "---> Port Open", " ", 0);
|
||||||
validAT = true;
|
validAT = true;
|
||||||
@@ -145,14 +147,14 @@
|
|||||||
validAT = true;
|
validAT = true;
|
||||||
i = 1;
|
i = 1;
|
||||||
delayATMessage = 0;
|
delayATMessage = 0;
|
||||||
} else if (ATMessage.indexOf(Config.callsign) >= 3 && !modemLoggedToAPRSIS && response.indexOf("OK") >= 0 && !stationBeacon) { // login info
|
} else if (callsignIndex >= 3 && !modemLoggedToAPRSIS && responseOKIndex >= 0 && !stationBeacon) { // login info
|
||||||
validAT = true;
|
validAT = true;
|
||||||
delayATMessage = 0;
|
delayATMessage = 0;
|
||||||
} else if (ATMessage.indexOf(Config.callsign) == 0 && !beaconSent && response.indexOf("OK") >= 0 && !stationBeacon) { // self beacon or querys
|
} else if (callsignIndex == 0 && !beaconSent && responseOKIndex >= 0 && !stationBeacon) { // self beacon or querys
|
||||||
validAT = true;
|
validAT = true;
|
||||||
i = 1;
|
i = 1;
|
||||||
delayATMessage = 0;
|
delayATMessage = 0;
|
||||||
} else if (stationBeacon && response.indexOf("OK") >= 0) { //upload others beacons
|
} else if (stationBeacon && responseOKIndex >= 0) { //upload others beacons
|
||||||
validAT = true;
|
validAT = true;
|
||||||
i = 1;
|
i = 1;
|
||||||
delayATMessage = 0;
|
delayATMessage = 0;
|
||||||
@@ -200,7 +202,7 @@
|
|||||||
if (beaconBytesSent) {
|
if (beaconBytesSent) {
|
||||||
Serial.print(".");
|
Serial.print(".");
|
||||||
beaconSent = checkATResponse(packet);
|
beaconSent = checkATResponse(packet);
|
||||||
}
|
}
|
||||||
if (!beaconSent) {
|
if (!beaconSent) {
|
||||||
Serial.println("------------------------------------> UPLOAD FAILED!!!");
|
Serial.println("------------------------------------> UPLOAD FAILED!!!");
|
||||||
} else {
|
} else {
|
||||||
@@ -221,5 +223,5 @@
|
|||||||
delay(1);
|
delay(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
██║ ██║ ██║██╔══██╗██╔══██║ ██╔══██║██╔═══╝ ██╔══██╗╚════██║
|
██║ ██║ ██║██╔══██╗██╔══██║ ██╔══██║██╔═══╝ ██╔══██╗╚════██║
|
||||||
███████╗╚██████╔╝██║ ██║██║ ██║ ██║ ██║██║ ██║ ██║███████║
|
███████╗╚██████╔╝██║ ██║██║ ██║ ██║ ██║██║ ██║ ██║███████║
|
||||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚══════╝
|
╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚══════╝
|
||||||
|
|
||||||
██╗ ██████╗ █████╗ ████████╗███████╗
|
██╗ ██████╗ █████╗ ████████╗███████╗
|
||||||
██║██╔════╝ ██╔══██╗╚══██╔══╝██╔════╝
|
██║██╔════╝ ██╔══██╗╚══██╔══╝██╔════╝
|
||||||
██║██║ ███╗███████║ ██║ █████╗
|
██║██║ ███╗███████║ ██║ █████╗
|
||||||
@@ -67,7 +67,7 @@ ___________________________________________________________________*/
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
String versionDate = "2026-01-21";
|
String versionDate = "2026-02-20";
|
||||||
String versionNumber = "3.2";
|
String versionNumber = "3.2";
|
||||||
Configuration Config;
|
Configuration Config;
|
||||||
WiFiClient aprsIsClient;
|
WiFiClient aprsIsClient;
|
||||||
@@ -138,7 +138,7 @@ void loop() {
|
|||||||
ElegantOTA.loop();
|
ElegantOTA.loop();
|
||||||
return; // Don't process IGate and Digi during OTA update
|
return; // Don't process IGate and Digi during OTA update
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
if (Config.beacon.gpsActive) {
|
if (Config.beacon.gpsActive) {
|
||||||
if (millis() - gpsSatelliteTime > 5000) {
|
if (millis() - gpsSatelliteTime > 5000) {
|
||||||
@@ -174,7 +174,7 @@ void loop() {
|
|||||||
|
|
||||||
Utils::checkDisplayInterval();
|
Utils::checkDisplayInterval();
|
||||||
Utils::checkBeaconInterval();
|
Utils::checkBeaconInterval();
|
||||||
|
|
||||||
APRS_IS_Utils::checkStatus(); // Need that to update display, maybe split this and send APRSIS status to display func?
|
APRS_IS_Utils::checkStatus(); // Need that to update display, maybe split this and send APRSIS status to display func?
|
||||||
|
|
||||||
String packet = "";
|
String packet = "";
|
||||||
@@ -188,7 +188,6 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Config.loramodule.txActive && (Config.digi.mode == 2 || Config.digi.mode == 3 || backupDigiMode)) { // If Digi enabled
|
if (Config.loramodule.txActive && (Config.digi.mode == 2 || Config.digi.mode == 3 || backupDigiMode)) { // If Digi enabled
|
||||||
STATION_Utils::clean25SegBuffer();
|
|
||||||
DIGI_Utils::processLoRaPacket(packet); // Send received packet to Digi
|
DIGI_Utils::processLoRaPacket(packet); // Send received packet to Digi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <APRSPacketLib.h>
|
#include <APRSPacketLib.h>
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include "aprs_is_utils.h"
|
#include "aprs_is_utils.h"
|
||||||
@@ -204,7 +204,7 @@ namespace APRS_IS_Utils {
|
|||||||
int firstColonIndex = packet.indexOf(":");
|
int firstColonIndex = packet.indexOf(":");
|
||||||
if (firstColonIndex > 5 && firstColonIndex < (packet.length() - 1) && packet[firstColonIndex + 1] != '}' && packet.indexOf("TCPIP") == -1) {
|
if (firstColonIndex > 5 && firstColonIndex < (packet.length() - 1) && packet[firstColonIndex + 1] != '}' && packet.indexOf("TCPIP") == -1) {
|
||||||
const String& Sender = packet.substring(3, packet.indexOf(">"));
|
const String& Sender = packet.substring(3, packet.indexOf(">"));
|
||||||
if (Sender != Config.callsign && Utils::checkValidCallsign(Sender)) {
|
if (Sender != Config.callsign && Utils::callsignIsValid(Sender)) {
|
||||||
STATION_Utils::updateLastHeard(Sender);
|
STATION_Utils::updateLastHeard(Sender);
|
||||||
Utils::typeOfPacket(packet.substring(3), 0); // LoRa-APRS
|
Utils::typeOfPacket(packet.substring(3), 0); // LoRa-APRS
|
||||||
const String& AddresseeAndMessage = packet.substring(packet.indexOf("::") + 2);
|
const String& AddresseeAndMessage = packet.substring(packet.indexOf("::") + 2);
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -105,9 +105,9 @@ namespace BATTERY_Utils {
|
|||||||
void getI2CVoltageSensorAddress() {
|
void getI2CVoltageSensorAddress() {
|
||||||
uint8_t err, addr;
|
uint8_t err, addr;
|
||||||
for(addr = 1; addr < 0x7F; addr++) {
|
for(addr = 1; addr < 0x7F; addr++) {
|
||||||
#if defined(HELTEC_V3) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY)
|
#ifdef SENSOR_I2C_BUS
|
||||||
Wire1.beginTransmission(addr);
|
SENSOR_I2C_BUS.beginTransmission(addr);
|
||||||
err = Wire1.endTransmission();
|
err = SENSOR_I2C_BUS.endTransmission();
|
||||||
#else
|
#else
|
||||||
Wire.beginTransmission(addr);
|
Wire.beginTransmission(addr);
|
||||||
err = Wire.endTransmission();
|
err = Wire.endTransmission();
|
||||||
@@ -145,7 +145,7 @@ namespace BATTERY_Utils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float checkInternalVoltage() {
|
float checkInternalVoltage() {
|
||||||
#if defined(HAS_AXP192) || defined(HAS_AXP2101)
|
#if defined(HAS_AXP192) || defined(HAS_AXP2101)
|
||||||
if(POWER_Utils::isBatteryConnected()) {
|
if(POWER_Utils::isBatteryConnected()) {
|
||||||
return POWER_Utils::getBatteryVoltage();
|
return POWER_Utils::getBatteryVoltage();
|
||||||
@@ -153,7 +153,7 @@ namespace BATTERY_Utils {
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef ADC_CTRL
|
#ifdef ADC_CTRL
|
||||||
POWER_Utils::adc_ctrl_ON();
|
POWER_Utils::adc_ctrl_ON();
|
||||||
#endif
|
#endif
|
||||||
@@ -177,7 +177,7 @@ namespace BATTERY_Utils {
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
delay(3);
|
delay(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ADC_CTRL
|
#ifdef ADC_CTRL
|
||||||
@@ -241,7 +241,7 @@ namespace BATTERY_Utils {
|
|||||||
#else
|
#else
|
||||||
extVoltage = ((((sampleSum/100.0)* adcReadingTransformation) + readingCorrection) * voltageDividerTransformation) - multiplyCorrection;
|
extVoltage = ((((sampleSum/100.0)* adcReadingTransformation) + readingCorrection) * voltageDividerTransformation) - multiplyCorrection;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return extVoltage; // raw voltage without mapping
|
return extVoltage; // raw voltage without mapping
|
||||||
|
|
||||||
// return mapVoltage(voltage, 5.05, 6.32, 4.5, 5.5); // mapped voltage
|
// return mapVoltage(voltage, 5.05, 6.32, 4.5, 5.5); // mapped voltage
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -43,137 +43,134 @@ extern bool backupDigiMode;
|
|||||||
|
|
||||||
namespace DIGI_Utils {
|
namespace DIGI_Utils {
|
||||||
|
|
||||||
String buildPacket(const String& path, const String& packet, bool thirdParty, bool crossFreq) {
|
String cleanPathAsterisks(String path) {
|
||||||
if (!crossFreq) {
|
String terms[] = {",WIDE1*", ",WIDE2*", "*"};
|
||||||
String packetToRepeat = packet.substring(0, packet.indexOf(",") + 1);
|
for (String term : terms) {
|
||||||
String tempPath = path;
|
int index = path.indexOf(term);
|
||||||
|
if (index != -1) path.remove(index, term.length()); // less memory than: tempPath.replace("*", "");
|
||||||
|
}
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
if (path.indexOf("WIDE1-1") != -1 && (Config.digi.mode == 2 || Config.digi.mode == 3)) {
|
String buildPacket(const String& path, const String& packet, bool thirdParty, bool crossFreq) {
|
||||||
tempPath.replace("WIDE1-1", (Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign) + "*");
|
String stationCallsign = (Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign);
|
||||||
} else if (path.indexOf("WIDE2-") != -1 && Config.digi.mode == 3) {
|
String suffix = thirdParty ? ":}" : ":";
|
||||||
if (path.indexOf(",WIDE1*") != -1) {
|
int suffixIndex = packet.indexOf(suffix);
|
||||||
tempPath.remove(path.indexOf(",WIDE1*"), 7);
|
String packetToRepeat;
|
||||||
}
|
if (!crossFreq) {
|
||||||
if (path.indexOf("*") != -1) {
|
int digiMode = Config.digi.mode;
|
||||||
tempPath.remove(path.indexOf("*"), 1);
|
String tempPath = path;
|
||||||
}
|
|
||||||
|
if (tempPath.indexOf("WIDE1-1") != -1 && (digiMode == 2 || digiMode == 3)) { // WIDE1-1 Digipeater
|
||||||
|
if (tempPath.indexOf("*") != -1 ) return ""; // "*" shouldn't be in WIDE1-1 (only) type of packet
|
||||||
|
tempPath.replace("WIDE1-1", stationCallsign + "*");
|
||||||
|
} else if (tempPath.indexOf("WIDE2-") != -1 && digiMode == 3) { // WIDE2-n Digipeater
|
||||||
|
tempPath = cleanPathAsterisks(path);
|
||||||
if (path.indexOf("WIDE2-1") != -1) {
|
if (path.indexOf("WIDE2-1") != -1) {
|
||||||
tempPath.replace("WIDE2-1", (Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign) + "*");
|
tempPath.replace("WIDE2-1", stationCallsign + "*");
|
||||||
} else if (path.indexOf("WIDE2-2") != -1) {
|
} else if (path.indexOf("WIDE2-2") != -1) {
|
||||||
tempPath.replace("WIDE2-2", (Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign) + "*,WIDE2-1");
|
tempPath.replace("WIDE2-2", stationCallsign + "*,WIDE2-1");
|
||||||
} else {
|
} else {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
packetToRepeat = packet.substring(0, packet.indexOf(",") + 1);
|
||||||
packetToRepeat += tempPath;
|
packetToRepeat += tempPath;
|
||||||
if (thirdParty) {
|
|
||||||
packetToRepeat += APRS_IS_Utils::checkForStartingBytes(packet.substring(packet.indexOf(":}")));
|
|
||||||
} else {
|
|
||||||
packetToRepeat += APRS_IS_Utils::checkForStartingBytes(packet.substring(packet.indexOf(":")));
|
|
||||||
}
|
|
||||||
return packetToRepeat;
|
|
||||||
} else { // CrossFreq Digipeater
|
} else { // CrossFreq Digipeater
|
||||||
String suffix = thirdParty ? ":}" : ":";
|
packetToRepeat = cleanPathAsterisks(packet.substring(0, suffixIndex));
|
||||||
String packetToRepeat = packet.substring(0, packet.indexOf(suffix));
|
if (packetToRepeat.indexOf(stationCallsign) != -1) return ""; // stationCallsign shouldn't be in path
|
||||||
|
|
||||||
String terms[] = {",WIDE1*", ",WIDE2*", "*"};
|
|
||||||
for (String term : terms) {
|
|
||||||
int index = packetToRepeat.indexOf(term);
|
|
||||||
if (index != -1) {
|
|
||||||
packetToRepeat.remove(index, term.length());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
packetToRepeat += ",";
|
packetToRepeat += ",";
|
||||||
packetToRepeat += (Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign);
|
packetToRepeat += stationCallsign;
|
||||||
packetToRepeat += "*";
|
packetToRepeat += "*";
|
||||||
packetToRepeat += APRS_IS_Utils::checkForStartingBytes(packet.substring(packet.indexOf(suffix)));
|
|
||||||
return packetToRepeat;
|
|
||||||
}
|
}
|
||||||
|
packetToRepeat += APRS_IS_Utils::checkForStartingBytes(packet.substring(suffixIndex));
|
||||||
|
return packetToRepeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
String generateDigipeatedPacket(const String& packet, bool thirdParty){
|
String generateDigipeatedPacket(const String& packet, bool thirdParty){
|
||||||
String temp;
|
String temp;
|
||||||
if (thirdParty) { // only header is used
|
if (thirdParty) { // only header is used
|
||||||
const String& header = packet.substring(0, packet.indexOf(":}"));
|
const String& header = packet.substring(0, packet.indexOf(":}"));
|
||||||
temp = header.substring(header.indexOf(">") + 1);
|
temp = header.substring(header.indexOf(">") + 1);
|
||||||
} else {
|
} else {
|
||||||
temp = packet.substring(packet.indexOf(">") + 1, packet.indexOf(":"));
|
temp = packet.substring(packet.indexOf(">") + 1, packet.indexOf(":"));
|
||||||
}
|
}
|
||||||
if (temp.indexOf(",") > 2) { // checks for path
|
int commaIndex = temp.indexOf(",");
|
||||||
const String& path = temp.substring(temp.indexOf(",") + 1); // after tocall
|
int digiMode = Config.digi.mode;
|
||||||
if (Config.digi.mode == 2 || backupDigiMode) {
|
bool crossFreq = abs(Config.loramodule.txFreq - Config.loramodule.rxFreq) >= 125000; // CrossFreq Digi
|
||||||
if (path.indexOf("WIDE1-1") != - 1) {
|
|
||||||
return buildPacket(path, packet, thirdParty, false);
|
|
||||||
} else if (path.indexOf("WIDE1-1") == -1 && (abs(Config.loramodule.txFreq - Config.loramodule.rxFreq) >= 125000)) { // CrossFreq Digi
|
|
||||||
return buildPacket(path, packet, thirdParty, true);
|
|
||||||
} else {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
} else if (Config.digi.mode == 3) {
|
|
||||||
if (path.indexOf("WIDE1-1") != -1 || path.indexOf("WIDE2-") != -1) {
|
|
||||||
int wide1Index = path.indexOf("WIDE1-1");
|
|
||||||
int wide2Index = path.indexOf("WIDE2-");
|
|
||||||
|
|
||||||
// WIDE1-1 && WIDE2-n / only WIDE1-1 / only WIDE2-n
|
if (commaIndex > 2) { // "path" found
|
||||||
if ((wide1Index != -1 && wide2Index != -1 && wide1Index < wide2Index) || (wide1Index != -1 && wide2Index == -1) || (wide1Index == -1 && wide2Index != -1)) {
|
const String& path = temp.substring(commaIndex + 1);
|
||||||
return buildPacket(path, packet, thirdParty, false);
|
if (digiMode == 2 || backupDigiMode) {
|
||||||
}
|
bool hasWide = path.indexOf("WIDE1-1") != -1;
|
||||||
return "";
|
if (hasWide || crossFreq) {
|
||||||
} else if (path.indexOf("WIDE1-1") == -1 && path.indexOf("WIDE2-") == -1 && (abs(Config.loramodule.txFreq - Config.loramodule.rxFreq) >= 125000)) { // CrossFreq Digi
|
return buildPacket(path, packet, thirdParty, !hasWide);
|
||||||
return buildPacket(path, packet, thirdParty, true);
|
|
||||||
} else {
|
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
} else if (temp.indexOf(",") == -1 && (Config.digi.mode == 2 || backupDigiMode || Config.digi.mode == 3) && (abs(Config.loramodule.txFreq - Config.loramodule.rxFreq) >= 125000)) {
|
if (digiMode == 3) {
|
||||||
return buildPacket("", packet, thirdParty, true);
|
int wide1Index = path.indexOf("WIDE1-1");
|
||||||
} else {
|
int wide2Index = path.indexOf("WIDE2-");
|
||||||
|
bool hasWide1 = wide1Index != -1;
|
||||||
|
bool hasWide2 = wide2Index != -1;
|
||||||
|
|
||||||
|
if (hasWide1 && hasWide2 && wide2Index < wide1Index) return ""; // check that WIDE1 before WIDE2
|
||||||
|
|
||||||
|
if (hasWide1 || hasWide2) return buildPacket(path, packet, thirdParty, false); // regular APRS with WIDEn-N
|
||||||
|
|
||||||
|
if (crossFreq) return buildPacket(path, packet, thirdParty, true); // CrossFreq (without WIDE)
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (commaIndex == -1 && (digiMode == 2 || backupDigiMode || digiMode == 3) && crossFreq) return buildPacket("", packet, thirdParty, true); // no "path" but is CrossFreq Digi
|
||||||
|
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
void processLoRaPacket(const String& packet) {
|
void processLoRaPacket(const String& packet) {
|
||||||
if (packet.indexOf("NOGATE") == -1) {
|
if (packet.indexOf("NOGATE") >= 0) return;
|
||||||
bool thirdPartyPacket = false;
|
|
||||||
String temp, Sender;
|
bool thirdPartyPacket = false;
|
||||||
int firstColonIndex = packet.indexOf(":");
|
String temp, Sender;
|
||||||
if (firstColonIndex > 5 && firstColonIndex < (packet.length() - 1) && packet[firstColonIndex + 1] == '}' && packet.indexOf("TCPIP") > 0) { // 3rd Party
|
int firstColonIndex = packet.indexOf(":");
|
||||||
thirdPartyPacket = true;
|
if (firstColonIndex > 5 && firstColonIndex < (packet.length() - 1) && packet[firstColonIndex + 1] == '}' && packet.indexOf("TCPIP") > 0) { // 3rd Party
|
||||||
temp = packet.substring(packet.indexOf(":}") + 2);
|
thirdPartyPacket = true;
|
||||||
Sender = temp.substring(0, temp.indexOf(">"));
|
temp = packet.substring(packet.indexOf(":}") + 2);
|
||||||
} else {
|
Sender = temp.substring(0, temp.indexOf(">"));
|
||||||
temp = packet.substring(3);
|
} else {
|
||||||
Sender = packet.substring(3, packet.indexOf(">"));
|
temp = packet.substring(3);
|
||||||
}
|
Sender = packet.substring(3, packet.indexOf(">"));
|
||||||
if (Sender != (Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign)) { // Avoid listening to own packets
|
}
|
||||||
if (!thirdPartyPacket && Config.tacticalCallsign == "" && !Utils::checkValidCallsign(Sender)) {
|
|
||||||
return;
|
String stationCallsign = Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign;
|
||||||
}
|
if (Sender == stationCallsign) return; // Avoid listening to self packets
|
||||||
if (STATION_Utils::check25SegBuffer(Sender, temp.substring(temp.indexOf(":") + 2))) {
|
if (!thirdPartyPacket && Config.tacticalCallsign == "" && !Utils::callsignIsValid(Sender)) return; // No thirdParty + no tactical y no valid callsign
|
||||||
STATION_Utils::updateLastHeard(Sender);
|
|
||||||
Utils::typeOfPacket(temp, 2); // Digi
|
if (STATION_Utils::isIn25SegHashBuffer(Sender, temp.substring(temp.indexOf(":") + 2))) return;
|
||||||
bool queryMessage = false;
|
|
||||||
if (temp.indexOf("::") > 10) { // it's a message
|
STATION_Utils::updateLastHeard(Sender);
|
||||||
String AddresseeAndMessage = temp.substring(temp.indexOf("::") + 2);
|
Utils::typeOfPacket(temp, 2); // Digi
|
||||||
String Addressee = AddresseeAndMessage.substring(0, AddresseeAndMessage.indexOf(":"));
|
bool queryMessage = false;
|
||||||
Addressee.trim();
|
int doubleColonIndex = temp.indexOf("::");
|
||||||
if (Addressee == (Config.tacticalCallsign == "" ? Config.callsign : Config.tacticalCallsign)) { // it's a message for me!
|
if (doubleColonIndex > 10) { // it's a message
|
||||||
queryMessage = APRS_IS_Utils::processReceivedLoRaMessage(Sender, AddresseeAndMessage, thirdPartyPacket);
|
String AddresseeAndMessage = temp.substring(doubleColonIndex + 2);
|
||||||
}
|
String Addressee = AddresseeAndMessage.substring(0, AddresseeAndMessage.indexOf(":"));
|
||||||
}
|
Addressee.trim();
|
||||||
if (!queryMessage) {
|
if (Addressee == stationCallsign) { // it's a message for me!
|
||||||
String loraPacket = generateDigipeatedPacket(packet.substring(3), thirdPartyPacket);
|
queryMessage = APRS_IS_Utils::processReceivedLoRaMessage(Sender, AddresseeAndMessage, thirdPartyPacket);
|
||||||
if (loraPacket != "") {
|
|
||||||
STATION_Utils::addToOutputPacketBuffer(loraPacket);
|
|
||||||
if (Config.digi.ecoMode != 1) displayToggle(true);
|
|
||||||
lastScreenOn = millis();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (queryMessage) return; // answer should not be repeated.
|
||||||
|
|
||||||
|
String loraPacket = generateDigipeatedPacket(packet.substring(3), thirdPartyPacket);
|
||||||
|
if (loraPacket != "") {
|
||||||
|
STATION_Utils::addToOutputPacketBuffer(loraPacket);
|
||||||
|
if (Config.digi.ecoMode != 1) displayToggle(true);
|
||||||
|
lastScreenOn = millis();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
extern Configuration Config;
|
extern Configuration Config;
|
||||||
extern HardwareSerial gpsSerial;
|
extern HardwareSerial gpsSerial;
|
||||||
extern TinyGPSPlus gps;
|
extern TinyGPSPlus gps;
|
||||||
extern bool callsignIsValid;
|
extern bool stationCallsignIsValid;
|
||||||
String distance, iGateBeaconPacket, iGateLoRaBeaconPacket;
|
String distance, iGateBeaconPacket, iGateLoRaBeaconPacket;
|
||||||
|
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ namespace GPS_Utils {
|
|||||||
String encodedGPS = APRSPacketLib::encodeGPSIntoBase91(Config.beacon.latitude, Config.beacon.longitude, 0, 0, Config.beacon.symbol, false, 0, true, Config.beacon.ambiguityLevel);
|
String encodedGPS = APRSPacketLib::encodeGPSIntoBase91(Config.beacon.latitude, Config.beacon.longitude, 0, 0, Config.beacon.symbol, false, 0, true, Config.beacon.ambiguityLevel);
|
||||||
|
|
||||||
if (Config.callsign.indexOf("NOCALL-10") != 0) {
|
if (Config.callsign.indexOf("NOCALL-10") != 0) {
|
||||||
if (!callsignIsValid) {
|
if (!stationCallsignIsValid) {
|
||||||
displayShow("***** ERROR ******", "CALLSIGN = NOT VALID!", "", "Only Rx Mode Active", 3000);
|
displayShow("***** ERROR ******", "CALLSIGN = NOT VALID!", "", "Only Rx Mode Active", 3000);
|
||||||
Config.loramodule.txActive = false;
|
Config.loramodule.txActive = false;
|
||||||
Config.aprs_is.messagesToRF = false;
|
Config.aprs_is.messagesToRF = false;
|
||||||
@@ -57,7 +57,7 @@ namespace GPS_Utils {
|
|||||||
Config.beacon.sendViaRF = false;
|
Config.beacon.sendViaRF = false;
|
||||||
Config.digi.mode = 0;
|
Config.digi.mode = 0;
|
||||||
Config.digi.backupDigiMode = false;
|
Config.digi.backupDigiMode = false;
|
||||||
} else if (callsignIsValid && Config.tacticalCallsign != "") {
|
} else if (stationCallsignIsValid && Config.tacticalCallsign != "") {
|
||||||
beaconPacket = APRSPacketLib::generateBasePacket(Config.tacticalCallsign, "APLRG1", Config.beacon.path);
|
beaconPacket = APRSPacketLib::generateBasePacket(Config.tacticalCallsign, "APLRG1", Config.beacon.path);
|
||||||
Config.aprs_is.active = false;
|
Config.aprs_is.active = false;
|
||||||
Config.beacon.sendViaAPRSIS = false;
|
Config.beacon.sendViaAPRSIS = false;
|
||||||
@@ -134,15 +134,17 @@ namespace GPS_Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String Latitude = infoGPS.substring(0,8); // First 8 characters are Latitude
|
String Latitude = infoGPS.substring(0,8); // First 8 characters are Latitude
|
||||||
|
int latitudeColonIndex = Latitude.indexOf(".");
|
||||||
float convertedLatitude = Latitude.substring(0,2).toFloat(); // First 2 digits (Degrees)
|
float convertedLatitude = Latitude.substring(0,2).toFloat(); // First 2 digits (Degrees)
|
||||||
convertedLatitude += Latitude.substring(2,4).toFloat() / 60; // Next 2 digits (Minutes)
|
convertedLatitude += Latitude.substring(2,4).toFloat() / 60; // Next 2 digits (Minutes)
|
||||||
convertedLatitude += Latitude.substring(Latitude.indexOf(".") + 1, Latitude.indexOf(".") + 3).toFloat() / (60*100);
|
convertedLatitude += Latitude.substring(latitudeColonIndex + 1, latitudeColonIndex + 3).toFloat() / (60*100);
|
||||||
if (Latitude.endsWith("S")) convertedLatitude = -convertedLatitude; // Handle Southern Hemisphere
|
if (Latitude.endsWith("S")) convertedLatitude = -convertedLatitude; // Handle Southern Hemisphere
|
||||||
|
|
||||||
String Longitude = infoGPS.substring(9,18); // Next 9 characters are Longitude
|
String Longitude = infoGPS.substring(9,18); // Next 9 characters are Longitude
|
||||||
|
int longitudeColonIndex = Longitude.indexOf(".");
|
||||||
float convertedLongitude = Longitude.substring(0,3).toFloat(); // First 3 digits (Degrees)
|
float convertedLongitude = Longitude.substring(0,3).toFloat(); // First 3 digits (Degrees)
|
||||||
convertedLongitude += Longitude.substring(3,5).toFloat() / 60; // Next 2 digits (Minutes)
|
convertedLongitude += Longitude.substring(3,5).toFloat() / 60; // Next 2 digits (Minutes)
|
||||||
convertedLongitude += Longitude.substring(Longitude.indexOf(".") + 1, Longitude.indexOf(".") + 3).toFloat() / (60*100);
|
convertedLongitude += Longitude.substring(longitudeColonIndex + 1, longitudeColonIndex + 3).toFloat() / (60*100);
|
||||||
if (Longitude.endsWith("W")) convertedLongitude = -convertedLongitude; // Handle Western Hemisphere
|
if (Longitude.endsWith("W")) convertedLongitude = -convertedLongitude; // Handle Western Hemisphere
|
||||||
|
|
||||||
return buildDistanceAndComment(convertedLatitude, convertedLongitude, infoGPS.substring(19));
|
return buildDistanceAndComment(convertedLatitude, convertedLongitude, infoGPS.substring(19));
|
||||||
@@ -155,7 +157,7 @@ namespace GPS_Utils {
|
|||||||
const uint8_t nonEncondedLatitudeOffset = 9; // "N" / "S"
|
const uint8_t nonEncondedLatitudeOffset = 9; // "N" / "S"
|
||||||
const uint8_t nonEncondedLongitudeOffset = 19; // "E" / "W"
|
const uint8_t nonEncondedLongitudeOffset = 19; // "E" / "W"
|
||||||
const uint8_t encodedByteOffset = 14;
|
const uint8_t encodedByteOffset = 14;
|
||||||
|
|
||||||
int indexOfExclamation = packet.indexOf(":!");
|
int indexOfExclamation = packet.indexOf(":!");
|
||||||
int indexOfEqual = packet.indexOf(":=");
|
int indexOfEqual = packet.indexOf(":=");
|
||||||
int baseIndex = - 1;
|
int baseIndex = - 1;
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -29,17 +29,16 @@ bool validateKISSFrame(const String& kissFormattedFrame) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String encodeAddressAX25(String tnc2Address) {
|
String encodeAddressAX25(String tnc2Address) {
|
||||||
bool hasBeenDigipited = tnc2Address.indexOf('*') != -1;
|
bool hasBeenDigipited = tnc2Address.indexOf('*') != -1;
|
||||||
|
int tnc2AddressIndex = tnc2Address.indexOf('-');
|
||||||
if (tnc2Address.indexOf('-') == -1) {
|
if (tnc2AddressIndex == -1) {
|
||||||
if (hasBeenDigipited) {
|
if (hasBeenDigipited) {
|
||||||
tnc2Address = tnc2Address.substring(0, tnc2Address.length() - 1);
|
tnc2Address = tnc2Address.substring(0, tnc2Address.length() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
tnc2Address += "-0";
|
tnc2Address += "-0";
|
||||||
}
|
}
|
||||||
|
|
||||||
int separatorIndex = tnc2Address.indexOf('-');
|
int separatorIndex = tnc2AddressIndex;
|
||||||
int ssid = tnc2Address.substring(separatorIndex + 1).toInt();
|
int ssid = tnc2Address.substring(separatorIndex + 1).toInt();
|
||||||
|
|
||||||
String kissAddress = "";
|
String kissAddress = "";
|
||||||
@@ -131,8 +130,9 @@ String encodeKISS(const String& frame) {
|
|||||||
|
|
||||||
if (validateTNC2Frame(frame)) {
|
if (validateTNC2Frame(frame)) {
|
||||||
String address = "";
|
String address = "";
|
||||||
bool dstAddresWritten = false;
|
bool dstAddresWritten = false;
|
||||||
for (int p = 0; p <= frame.indexOf(':'); p++) {
|
int colonFrameIndex = frame.indexOf(':');
|
||||||
|
for (int p = 0; p <= colonFrameIndex; p++) {
|
||||||
char currentChar = frame.charAt(p);
|
char currentChar = frame.charAt(p);
|
||||||
if (currentChar == ':' || currentChar == '>' || currentChar == ',') {
|
if (currentChar == ':' || currentChar == '>' || currentChar == ',') {
|
||||||
if (!dstAddresWritten && (currentChar == ',' || currentChar == ':')) {
|
if (!dstAddresWritten && (currentChar == ',' || currentChar == ':')) {
|
||||||
@@ -151,7 +151,7 @@ String encodeKISS(const String& frame) {
|
|||||||
ax25Frame.setCharAt(ax25Frame.length() - 1, (char)(lastAddressChar | IS_LAST_ADDRESS_POSITION_MASK));
|
ax25Frame.setCharAt(ax25Frame.length() - 1, (char)(lastAddressChar | IS_LAST_ADDRESS_POSITION_MASK));
|
||||||
ax25Frame += (char)APRS_CONTROL_FIELD;
|
ax25Frame += (char)APRS_CONTROL_FIELD;
|
||||||
ax25Frame += (char)APRS_INFORMATION_FIELD;
|
ax25Frame += (char)APRS_INFORMATION_FIELD;
|
||||||
ax25Frame += frame.substring(frame.indexOf(':') + 1);
|
ax25Frame += frame.substring(colonFrameIndex + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
String kissFrame = encapsulateKISS(ax25Frame, CMD_DATA);
|
String kissFrame = encapsulateKISS(ax25Frame, CMD_DATA);
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -44,45 +44,28 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern Configuration Config;
|
extern Configuration Config;
|
||||||
extern bool callsignIsValid;
|
extern bool stationCallsignIsValid;
|
||||||
|
|
||||||
|
|
||||||
namespace POWER_Utils {
|
namespace POWER_Utils {
|
||||||
|
|
||||||
#ifdef VEXT_CTRL
|
#ifdef ADC_CTRL_PIN
|
||||||
void vext_ctrl_ON() {
|
|
||||||
#if VEXT_CTRL_INVERTED == 1
|
|
||||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW);
|
|
||||||
#else
|
|
||||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void vext_ctrl_OFF() {
|
|
||||||
#if VEXT_CTRL_INVERTED == 1
|
|
||||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH);
|
|
||||||
#else
|
|
||||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef ADC_CTRL
|
|
||||||
void adc_ctrl_ON() {
|
void adc_ctrl_ON() {
|
||||||
#if ADC_CTRL_INVERTED == 1
|
digitalWrite(ADC_CTRL_PIN, ADC_CTRL_ON_STATE);
|
||||||
digitalWrite(ADC_CTRL, LOW);
|
|
||||||
#else
|
|
||||||
digitalWrite(ADC_CTRL, HIGH);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void adc_ctrl_OFF() {
|
void adc_ctrl_OFF() {
|
||||||
#if ADC_CTRL_INVERTED == 1
|
digitalWrite(ADC_CTRL_PIN, !ADC_CTRL_ON_STATE);
|
||||||
digitalWrite(ADC_CTRL, HIGH);
|
}
|
||||||
#else
|
#endif
|
||||||
digitalWrite(ADC_CTRL, LOW);
|
|
||||||
#endif
|
#ifdef VEXT_CTRL_PIN
|
||||||
|
void vext_ctrl_ON() {
|
||||||
|
digitalWrite(VEXT_CTRL_PIN, Config.digi.ecoMode == 1 ? !VEXT_CTRL_ON_STATE : VEXT_CTRL_ON_STATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void vext_ctrl_OFF() {
|
||||||
|
digitalWrite(VEXT_CTRL_PIN, Config.digi.ecoMode == 1 ? VEXT_CTRL_ON_STATE : !VEXT_CTRL_ON_STATE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -110,7 +93,7 @@ namespace POWER_Utils {
|
|||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void activateGPS() {
|
void activateGPS() {
|
||||||
#ifdef HAS_AXP192
|
#ifdef HAS_AXP192
|
||||||
@@ -313,18 +296,14 @@ namespace POWER_Utils {
|
|||||||
Wire.begin(OLED_SDA, OLED_SCL);
|
Wire.begin(OLED_SDA, OLED_SCL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_WIRE_WITH_BOARD_I2C_PINS
|
#ifdef SENSOR_I2C_BUS
|
||||||
Wire.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
|
SENSOR_I2C_BUS.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_WIRE1_WITH_BOARD_I2C_PINS
|
|
||||||
Wire1.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
delay(1000);
|
delay(1000);
|
||||||
BATTERY_Utils::setup();
|
BATTERY_Utils::setup();
|
||||||
BATTERY_Utils::startupBatteryHealth();
|
BATTERY_Utils::startupBatteryHealth();
|
||||||
callsignIsValid = Utils::checkValidCallsign(Config.callsign);
|
stationCallsignIsValid = Utils::callsignIsValid(Config.callsign);
|
||||||
setCpuFrequencyMhz(80);
|
setCpuFrequencyMhz(80);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -49,9 +49,9 @@ namespace QUERY_Utils {
|
|||||||
answer.concat(versionDate);
|
answer.concat(versionDate);
|
||||||
} else if (queryQuestion == "?APRSP") {
|
} else if (queryQuestion == "?APRSP") {
|
||||||
answer.concat("iGate QTH: ");
|
answer.concat("iGate QTH: ");
|
||||||
answer.concat(String(Config.beacon.latitude,3));
|
answer.concat(String(Config.beacon.latitude,2));
|
||||||
answer.concat(" ");
|
answer.concat(" ");
|
||||||
answer.concat(String(Config.beacon.longitude,3));
|
answer.concat(String(Config.beacon.longitude,2));
|
||||||
} else if (queryQuestion == "?APRSL") {
|
} else if (queryQuestion == "?APRSL") {
|
||||||
if (lastHeardStations.size() == 0) {
|
if (lastHeardStations.size() == 0) {
|
||||||
char answerArray[50];
|
char answerArray[50];
|
||||||
@@ -66,21 +66,25 @@ namespace QUERY_Utils {
|
|||||||
} else if (queryQuestion == "?APRSSR") {
|
} else if (queryQuestion == "?APRSSR") {
|
||||||
char signalData[35];
|
char signalData[35];
|
||||||
snprintf(signalData, sizeof(signalData), " %ddBm / %.2fdB / %dHz", rssi, snr, freqError);
|
snprintf(signalData, sizeof(signalData), " %ddBm / %.2fdB / %dHz", rssi, snr, freqError);
|
||||||
answer.concat(signalData);
|
answer.concat(signalData);
|
||||||
} /*else if (queryQuestion.indexOf("?APRSH") == 0) {
|
} /*else if (queryQuestion.indexOf("?APRSH") == 0) {
|
||||||
// sacar callsign despues de ?APRSH
|
// sacar callsign despues de ?APRSH
|
||||||
Serial.println("escuchaste a X estacion? en las ultimas 24 o 8 horas?");
|
Serial.println("escuchaste a X estacion? en las ultimas 24 o 8 horas?");
|
||||||
answer.concat("?APRSH on development 73!");
|
answer.concat("?APRSH on development 73!");
|
||||||
} *//*else if (queryQuestion.indexOf("?WHERE") == 0) {
|
} *//*else if (queryQuestion.indexOf("?WHERE") == 0) {
|
||||||
// agregar callsign para completar donde esta X callsign --> posicion
|
// agregar callsign para completar donde esta X callsign --> posicion
|
||||||
Serial.println("estaciones escuchadas directo (ultimos 30 min)");
|
Serial.println("estaciones escuchadas directo (ultimos 30 min)");
|
||||||
answer.concat("?WHERE on development 73!");
|
answer.concat("?WHERE on development 73!");
|
||||||
} */
|
} */
|
||||||
else if (STATION_Utils::isManager(station) && (!queryFromAPRSIS || !Config.remoteManagement.rfOnly)) {
|
else if (STATION_Utils::isManager(station) && (!queryFromAPRSIS || !Config.remoteManagement.rfOnly)) {
|
||||||
if (queryQuestion.indexOf("?EM=OFF") == 0) {
|
int digiMode = Config.digi.mode;
|
||||||
if ((Config.digi.mode == 2 || Config.digi.mode == 3) && Config.loramodule.txActive && Config.loramodule.rxActive && !Config.aprs_is.active) {
|
int digiEcoMode = Config.digi.ecoMode;
|
||||||
if (Config.digi.ecoMode == 1 || Config.digi.ecoMode == 2) { // Exit Digipeater EcoMode or Digipeater without WiFiAP
|
int radioTxActive = Config.loramodule.txActive;
|
||||||
answer = (Config.digi.ecoMode == 1) ? "DigiEcoMode:OFF" : "Digipeater + WiFiAP enabled";
|
bool onlyRadioActive = radioTxActive && Config.loramodule.rxActive && !Config.aprs_is.active;
|
||||||
|
if (queryQuestion.startsWith("?EM=OFF")) {
|
||||||
|
if ((digiMode == 2 || digiMode == 3) && onlyRadioActive) {
|
||||||
|
if (digiEcoMode == 1 || digiEcoMode == 2) { // Exit Digipeater EcoMode or Digipeater without WiFiAP
|
||||||
|
answer = (digiEcoMode == 1) ? "DigiEcoMode:OFF" : "Digipeater + WiFiAP enabled";
|
||||||
Config.digi.ecoMode = 0;
|
Config.digi.ecoMode = 0;
|
||||||
Config.display.alwaysOn = true;
|
Config.display.alwaysOn = true;
|
||||||
Config.display.timeout = 10;
|
Config.display.timeout = 10;
|
||||||
@@ -92,9 +96,9 @@ namespace QUERY_Utils {
|
|||||||
} else {
|
} else {
|
||||||
answer = "Digipeater Mode control not possible";
|
answer = "Digipeater Mode control not possible";
|
||||||
}
|
}
|
||||||
} else if (queryQuestion.indexOf("?EM=ON") == 0) {
|
} else if (queryQuestion.startsWith("?EM=ON")) {
|
||||||
if ((Config.digi.mode == 2 || Config.digi.mode == 3) && Config.loramodule.txActive && Config.loramodule.rxActive && !Config.aprs_is.active) {
|
if ((digiMode == 2 || digiMode == 3) && onlyRadioActive) {
|
||||||
if (Config.digi.ecoMode == 0) { // Start Digipeater EcoMode
|
if (digiEcoMode == 0) { // Start Digipeater EcoMode
|
||||||
answer = "DigiEcoMode:ON";
|
answer = "DigiEcoMode:ON";
|
||||||
Config.digi.ecoMode = 1;
|
Config.digi.ecoMode = 1;
|
||||||
shouldSleepLowVoltage = true; // to make sure all packets in outputPacketBuffer are sent before restart.
|
shouldSleepLowVoltage = true; // to make sure all packets in outputPacketBuffer are sent before restart.
|
||||||
@@ -105,31 +109,29 @@ namespace QUERY_Utils {
|
|||||||
} else {
|
} else {
|
||||||
answer = "Digipeater Mode control not possible";
|
answer = "Digipeater Mode control not possible";
|
||||||
}
|
}
|
||||||
} else if (queryQuestion.indexOf("?EM=?") == 0) { // Digipeater EcoMode Status
|
} else if (queryQuestion.startsWith("?EM=?")) { // Digipeater EcoMode Status
|
||||||
if (Config.digi.ecoMode == 0) {
|
switch (digiEcoMode) {
|
||||||
answer = "DigiEcoMode:OFF";
|
case 0: answer = "DigiEcoMode:OFF"; break;
|
||||||
} else if (Config.digi.ecoMode == 1) {
|
case 1: answer = "DigiEcoMode:ON"; break;
|
||||||
answer = "DigiEcoMode:ON";
|
default: answer = "DigiEcoMode:OFF/Only Serial Output";
|
||||||
} else {
|
|
||||||
answer = "DigiEcoMode:OFF/Only Serial Output";
|
|
||||||
}
|
}
|
||||||
} else if (queryQuestion.indexOf("?TX=ON") == 0) {
|
} else if (queryQuestion.startsWith("?TX=ON")) {
|
||||||
if (Config.loramodule.txActive) {
|
if (radioTxActive) {
|
||||||
answer = "TX was ON";
|
answer = "TX was ON";
|
||||||
} else {
|
} else {
|
||||||
Config.loramodule.txActive = true;
|
Config.loramodule.txActive = true;
|
||||||
answer = "TX=ON";
|
answer = "TX=ON";
|
||||||
}
|
}
|
||||||
} else if (queryQuestion.indexOf("?TX=OFF") == 0) {
|
} else if (queryQuestion.startsWith("?TX=OFF")) {
|
||||||
if (!Config.loramodule.txActive) {
|
if (!radioTxActive) {
|
||||||
answer = "TX was OFF";
|
answer = "TX was OFF";
|
||||||
} else {
|
} else {
|
||||||
Config.loramodule.txActive = false;
|
Config.loramodule.txActive = false;
|
||||||
answer = "TX=OFF";
|
answer = "TX=OFF";
|
||||||
}
|
}
|
||||||
} else if (queryQuestion.indexOf("?TX=?") == 0) {
|
} else if (queryQuestion.startsWith("?TX=?")) {
|
||||||
answer = (Config.loramodule.txActive) ? "TX=ON" : "TX=OFF";
|
answer = (radioTxActive) ? "TX=ON" : "TX=OFF";
|
||||||
} else if (queryQuestion.indexOf("?COMMIT") == 0) { // saving for next reboot
|
} else if (queryQuestion.startsWith("?COMMIT")) { // saving for next reboot
|
||||||
answer = "New Config Saved";
|
answer = "New Config Saved";
|
||||||
Config.writeFile();
|
Config.writeFile();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -51,12 +51,13 @@ 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(ESP32) || defined(ESP32_S2) || defined(ESP32_S3)
|
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
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
|
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
#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
|
||||||
|
//#if defined(ARDUINO_ARCH_STM32) || defined(ARDUINO_ARCH_NRF52)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -45,12 +45,10 @@ std::vector<OutputPacketBuffer> outputPacketBuffer;
|
|||||||
|
|
||||||
struct Packet25SegBuffer {
|
struct Packet25SegBuffer {
|
||||||
uint32_t receivedTime;
|
uint32_t receivedTime;
|
||||||
String station;
|
uint32_t hash;
|
||||||
String payload;
|
|
||||||
};
|
};
|
||||||
std::vector<Packet25SegBuffer> packet25SegBuffer;
|
std::vector<Packet25SegBuffer> packet25SegBuffer;
|
||||||
|
|
||||||
|
|
||||||
bool saveNewDigiEcoModeConfig = false;
|
bool saveNewDigiEcoModeConfig = false;
|
||||||
bool packetIsBeacon = false;
|
bool packetIsBeacon = false;
|
||||||
|
|
||||||
@@ -166,18 +164,33 @@ namespace STATION_Utils {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void clean25SegBuffer() {
|
void clean25SegHashBuffer() {
|
||||||
if (!packet25SegBuffer.empty() && (millis() - packet25SegBuffer[0].receivedTime) > 25 * 1000) packet25SegBuffer.erase(packet25SegBuffer.begin());
|
uint32_t currentTime = millis();
|
||||||
}
|
for (int i = packet25SegBuffer.size() - 1; i >= 0; i--) {
|
||||||
|
if ((currentTime - packet25SegBuffer[i].receivedTime) > 25 * 1000) {
|
||||||
bool check25SegBuffer(const String& station, const String& textMessage) {
|
packet25SegBuffer.erase(packet25SegBuffer.begin() + i);
|
||||||
if (!packet25SegBuffer.empty()) {
|
|
||||||
for (int i = 0; i < packet25SegBuffer.size(); i++) {
|
|
||||||
if (packet25SegBuffer[i].station == station && packet25SegBuffer[i].payload == textMessage) return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
packet25SegBuffer.emplace_back(Packet25SegBuffer{millis(), station, textMessage});
|
}
|
||||||
return true;
|
|
||||||
|
uint32_t makeHash(const String& station, const String& payload) { // DJB2 Hash
|
||||||
|
uint32_t h = 5381;
|
||||||
|
for (size_t i = 0; i < station.length(); i++)
|
||||||
|
h = ((h << 5) + h) + station[i];
|
||||||
|
for (size_t i = 0; i < payload.length(); i++)
|
||||||
|
h = ((h << 5) + h) + payload[i];
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isIn25SegHashBuffer(const String& station, const String& textMessage) {
|
||||||
|
uint32_t newHash = makeHash(station, textMessage);
|
||||||
|
uint32_t currentTime = millis();
|
||||||
|
clean25SegHashBuffer();
|
||||||
|
for (int i = 0; i < packet25SegBuffer.size(); i++) {
|
||||||
|
if (packet25SegBuffer[i].hash == newHash) return true;
|
||||||
|
}
|
||||||
|
packet25SegBuffer.push_back({currentTime, newHash});
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void processOutputPacketBufferUltraEcoMode() {
|
void processOutputPacketBufferUltraEcoMode() {
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -43,9 +43,11 @@ namespace SYSLOG_Utils {
|
|||||||
char signalData[35];
|
char signalData[35];
|
||||||
snprintf(signalData, sizeof(signalData), " / %ddBm / %.2fdB / %dHz", rssi, snr, freqError);
|
snprintf(signalData, sizeof(signalData), " / %ddBm / %.2fdB / %dHz", rssi, snr, freqError);
|
||||||
|
|
||||||
int colonIndex = packet.indexOf(":");
|
int colonIndex = packet.indexOf(":");
|
||||||
char nextChar = packet[colonIndex + 1];
|
char nextChar = packet[colonIndex + 1];
|
||||||
String sender = packet.substring(3, packet.indexOf(">"));
|
int greaterThanIndex = packet.indexOf(">");
|
||||||
|
int telemetryPacketIndex = packet.indexOf(":T#");
|
||||||
|
String sender = packet.substring(3, greaterThanIndex);
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 0: // CRC
|
case 0: // CRC
|
||||||
@@ -58,13 +60,12 @@ namespace SYSLOG_Utils {
|
|||||||
if (nextChar == ':') {
|
if (nextChar == ':') {
|
||||||
syslogPacket.concat("MESSAGE / ");
|
syslogPacket.concat("MESSAGE / ");
|
||||||
syslogPacket.concat(sender);
|
syslogPacket.concat(sender);
|
||||||
syslogPacket.concat(" ---> ");
|
syslogPacket.concat(" ---> ");
|
||||||
syslogPacket.concat(packet.substring(colonIndex + 2));
|
syslogPacket.concat(packet.substring(colonIndex + 2));
|
||||||
} else if (nextChar == '!' || nextChar == '=' || nextChar == '@') {
|
} else if (nextChar == '!' || nextChar == '=' || nextChar == '@') {
|
||||||
syslogPacket.concat("GPS / ");
|
syslogPacket.concat("GPS / ");
|
||||||
syslogPacket.concat(sender);
|
syslogPacket.concat(sender);
|
||||||
syslogPacket.concat(" / ");
|
syslogPacket.concat(" / ");
|
||||||
int greaterThanIndex = packet.indexOf(">");
|
|
||||||
if (packet.indexOf("WIDE1-1") > 10) {
|
if (packet.indexOf("WIDE1-1") > 10) {
|
||||||
syslogPacket.concat(packet.substring(greaterThanIndex + 1, packet.indexOf(",")));
|
syslogPacket.concat(packet.substring(greaterThanIndex + 1, packet.indexOf(",")));
|
||||||
syslogPacket.concat(" / WIDE1-1");
|
syslogPacket.concat(" / WIDE1-1");
|
||||||
@@ -87,11 +88,11 @@ namespace SYSLOG_Utils {
|
|||||||
syslogPacket.concat(sender);
|
syslogPacket.concat(sender);
|
||||||
syslogPacket.concat(" ---> ");
|
syslogPacket.concat(" ---> ");
|
||||||
syslogPacket.concat(packet.substring(colonIndex + 2));
|
syslogPacket.concat(packet.substring(colonIndex + 2));
|
||||||
} else if (packet.indexOf(":T#") >= 10 && packet.indexOf(":=/") == -1) {
|
} else if (telemetryPacketIndex >= 10 && packet.indexOf(":=/") == -1) {
|
||||||
syslogPacket.concat("TELEMETRY / ");
|
syslogPacket.concat("TELEMETRY / ");
|
||||||
syslogPacket.concat(sender);
|
syslogPacket.concat(sender);
|
||||||
syslogPacket.concat(" ---> ");
|
syslogPacket.concat(" ---> ");
|
||||||
syslogPacket.concat(packet.substring(packet.indexOf(":T#") + 3));
|
syslogPacket.concat(packet.substring(telemetryPacketIndex + 3));
|
||||||
} else {
|
} else {
|
||||||
syslogPacket.concat(packet);
|
syslogPacket.concat(packet);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -61,13 +61,13 @@ extern bool passcodeValid;
|
|||||||
|
|
||||||
extern std::vector<LastHeardStation> lastHeardStations;
|
extern std::vector<LastHeardStation> lastHeardStations;
|
||||||
|
|
||||||
bool statusAfterBoot = true;
|
bool statusAfterBoot = true;
|
||||||
bool sendStartTelemetry = true;
|
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;
|
uint32_t lastStatusTx = 0;
|
||||||
bool callsignIsValid = false;
|
bool stationCallsignIsValid = false;
|
||||||
String beaconPacket;
|
String beaconPacket;
|
||||||
String secondaryBeaconPacket;
|
String secondaryBeaconPacket;
|
||||||
|
|
||||||
@@ -157,9 +157,9 @@ namespace Utils {
|
|||||||
if (beaconUpdate) {
|
if (beaconUpdate) {
|
||||||
if (!Config.display.alwaysOn && Config.display.timeout != 0) displayToggle(true);
|
if (!Config.display.alwaysOn && Config.display.timeout != 0) displayToggle(true);
|
||||||
|
|
||||||
if (sendStartTelemetry &&
|
if (sendStartTelemetry &&
|
||||||
Config.battery.sendVoltageAsTelemetry &&
|
Config.battery.sendVoltageAsTelemetry &&
|
||||||
!Config.wxsensor.active &&
|
!Config.wxsensor.active &&
|
||||||
(Config.battery.sendInternalVoltage || Config.battery.sendExternalVoltage) &&
|
(Config.battery.sendInternalVoltage || Config.battery.sendExternalVoltage) &&
|
||||||
(lastBeaconTx > 0)) {
|
(lastBeaconTx > 0)) {
|
||||||
TELEMETRY_Utils::sendEquationsUnitsParameters();
|
TELEMETRY_Utils::sendEquationsUnitsParameters();
|
||||||
@@ -198,7 +198,7 @@ namespace Utils {
|
|||||||
}
|
}
|
||||||
beaconPacket += Config.beacon.comment;
|
beaconPacket += Config.beacon.comment;
|
||||||
secondaryBeaconPacket += Config.beacon.comment;
|
secondaryBeaconPacket += Config.beacon.comment;
|
||||||
if (callsignIsValid && Config.tacticalCallsign != "") {
|
if (stationCallsignIsValid && Config.tacticalCallsign != "") {
|
||||||
beaconPacket += " de ";
|
beaconPacket += " de ";
|
||||||
beaconPacket += Config.callsign;
|
beaconPacket += Config.callsign;
|
||||||
secondaryBeaconPacket += " de ";
|
secondaryBeaconPacket += " de ";
|
||||||
@@ -244,7 +244,7 @@ namespace Utils {
|
|||||||
if (Config.battery.sendExternalVoltage) {
|
if (Config.battery.sendExternalVoltage) {
|
||||||
char externalVoltageInfo[10]; // "xx.xxV\0" (max 7 chars)
|
char externalVoltageInfo[10]; // "xx.xxV\0" (max 7 chars)
|
||||||
snprintf(externalVoltageInfo, sizeof(externalVoltageInfo), "%.2fV", externalVoltage);
|
snprintf(externalVoltageInfo, sizeof(externalVoltageInfo), "%.2fV", externalVoltage);
|
||||||
|
|
||||||
char sixthLineBuffer[25]; // Ensure enough space
|
char sixthLineBuffer[25]; // Ensure enough space
|
||||||
snprintf(sixthLineBuffer, sizeof(sixthLineBuffer), " (Ext V=%s)", externalVoltageInfo);
|
snprintf(sixthLineBuffer, sizeof(sixthLineBuffer), " (Ext V=%s)", externalVoltageInfo);
|
||||||
sixthLine = sixthLineBuffer;
|
sixthLine = sixthLineBuffer;
|
||||||
@@ -312,7 +312,6 @@ namespace Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void typeOfPacket(const String& packet, const uint8_t packetType) {
|
void typeOfPacket(const String& packet, const uint8_t packetType) {
|
||||||
String sender = packet.substring(0,packet.indexOf(">"));
|
|
||||||
switch (packetType) {
|
switch (packetType) {
|
||||||
case 0: // LoRa-APRS
|
case 0: // LoRa-APRS
|
||||||
fifthLine = "LoRa Rx ----> APRS-IS";
|
fifthLine = "LoRa Rx ----> APRS-IS";
|
||||||
@@ -328,6 +327,7 @@ namespace Utils {
|
|||||||
int firstColonIndex = packet.indexOf(":");
|
int firstColonIndex = packet.indexOf(":");
|
||||||
char nextChar = packet[firstColonIndex + 1];
|
char nextChar = packet[firstColonIndex + 1];
|
||||||
|
|
||||||
|
String sender = packet.substring(0,packet.indexOf(">"));
|
||||||
for (int i = sender.length(); i < 9; i++) {
|
for (int i = sender.length(); i < 9; i++) {
|
||||||
sender += " ";
|
sender += " ";
|
||||||
}
|
}
|
||||||
@@ -415,13 +415,14 @@ namespace Utils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool checkValidCallsign(const String& callsign) {
|
bool callsignIsValid(const String& callsign) {
|
||||||
if (callsign == "WLNK-1") return true;
|
if (callsign == "WLNK-1") return true;
|
||||||
|
|
||||||
String cleanCallsign;
|
String cleanCallsign;
|
||||||
if (callsign.indexOf("-") > 0) { // SSID Validation
|
int hypenCallsignIndex = callsign.indexOf("-");
|
||||||
cleanCallsign = callsign.substring(0, callsign.indexOf("-"));
|
if (hypenCallsignIndex > 0) { // SSID Validation
|
||||||
String ssid = callsign.substring(callsign.indexOf("-") + 1);
|
cleanCallsign = callsign.substring(0, hypenCallsignIndex);
|
||||||
|
String ssid = callsign.substring(hypenCallsignIndex + 1);
|
||||||
if (ssid.indexOf("-") != -1 || ssid.length() > 2) return false;
|
if (ssid.indexOf("-") != -1 || ssid.length() > 2) return false;
|
||||||
if (ssid.length() == 2 && ssid[0] == '0') return false;
|
if (ssid.length() == 2 && ssid[0] == '0') return false;
|
||||||
for (int i = 0; i < ssid.length(); i++) {
|
for (int i = 0; i < ssid.length(); i++) {
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -42,7 +42,7 @@ float newHum, newTemp, newPress, newGas;
|
|||||||
|
|
||||||
|
|
||||||
Adafruit_BME280 bme280;
|
Adafruit_BME280 bme280;
|
||||||
Adafruit_AHTX0 aht20;
|
Adafruit_AHTX0 aht20;
|
||||||
#if defined(HELTEC_V3) || defined(HELTEC_V3_2)
|
#if defined(HELTEC_V3) || defined(HELTEC_V3_2)
|
||||||
Adafruit_BMP280 bmp280(&Wire1);
|
Adafruit_BMP280 bmp280(&Wire1);
|
||||||
Adafruit_Si7021 si7021 = Adafruit_Si7021();
|
Adafruit_Si7021 si7021 = Adafruit_Si7021();
|
||||||
@@ -61,9 +61,9 @@ namespace WX_Utils {
|
|||||||
void getWxModuleAddres() {
|
void getWxModuleAddres() {
|
||||||
uint8_t err, addr;
|
uint8_t err, addr;
|
||||||
for(addr = 1; addr < 0x7F; addr++) {
|
for(addr = 1; addr < 0x7F; addr++) {
|
||||||
#if defined(HELTEC_V3) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY)
|
#ifdef SENSOR_I2C_BUS
|
||||||
Wire1.beginTransmission(addr);
|
SENSOR_I2C_BUS.beginTransmission(addr);
|
||||||
err = Wire1.endTransmission();
|
err = SENSOR_I2C_BUS.endTransmission();
|
||||||
#else
|
#else
|
||||||
Wire.beginTransmission(addr);
|
Wire.beginTransmission(addr);
|
||||||
#ifdef LIGHTGATEWAY_PLUS_1_0
|
#ifdef LIGHTGATEWAY_PLUS_1_0
|
||||||
@@ -161,7 +161,7 @@ namespace WX_Utils {
|
|||||||
Adafruit_BMP280::SAMPLING_X1,
|
Adafruit_BMP280::SAMPLING_X1,
|
||||||
Adafruit_BMP280::SAMPLING_X1,
|
Adafruit_BMP280::SAMPLING_X1,
|
||||||
Adafruit_BMP280::FILTER_OFF
|
Adafruit_BMP280::FILTER_OFF
|
||||||
);
|
);
|
||||||
Serial.println("BMP280 Module init done!");
|
Serial.println("BMP280 Module init done!");
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -306,7 +306,7 @@ namespace WX_Utils {
|
|||||||
humStr = "..";
|
humStr = "..";
|
||||||
}
|
}
|
||||||
|
|
||||||
String presStr = (wxModuleType == 4 || wxModuleType == 5)
|
String presStr = (wxModuleType == 4 || wxModuleType == 5)
|
||||||
? "....."
|
? "....."
|
||||||
: generatePresString(newPress + getAltitudeCorrection() / CORRECTION_FACTOR);
|
: generatePresString(newPress + getAltitudeCorrection() / CORRECTION_FACTOR);
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -47,5 +45,5 @@
|
|||||||
#define OLED_SDA 0
|
#define OLED_SDA 0
|
||||||
#define OLED_SCL 1
|
#define OLED_SCL 1
|
||||||
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
|
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -41,7 +39,7 @@
|
|||||||
|
|
||||||
// Display
|
// Display
|
||||||
#define HAS_DISPLAY
|
#define HAS_DISPLAY
|
||||||
|
|
||||||
#undef OLED_SDA
|
#undef OLED_SDA
|
||||||
#undef OLED_SCL
|
#undef OLED_SCL
|
||||||
#undef OLED_RST
|
#undef OLED_RST
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -46,8 +44,8 @@
|
|||||||
|
|
||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 13 // 13 for V1.1 and 12 for V1.0
|
#define INTERNAL_LED_PIN 13 // 13 for V1.1 and 12 for V1.0
|
||||||
#define BATTERY_PIN 35
|
#define BATTERY_PIN 35
|
||||||
|
|
||||||
#define HAS_A7670
|
#define HAS_A7670
|
||||||
#define A7670_PWR_PIN 4
|
#define A7670_PWR_PIN 4
|
||||||
#define A7670_ResetPin 5
|
#define A7670_ResetPin 5
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -33,7 +31,7 @@
|
|||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_OLED_PINS
|
#define USE_WIRE_WITH_OLED_PINS
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
#define HAS_DISPLAY
|
#define HAS_DISPLAY
|
||||||
|
|
||||||
#undef OLED_SDA
|
#undef OLED_SDA
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -33,7 +31,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_38
|
#define GPIO_WAKEUP_PIN GPIO_SEL_38
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire
|
||||||
#define BOARD_I2C_SDA 11
|
#define BOARD_I2C_SDA 11
|
||||||
#define BOARD_I2C_SCL 12
|
#define BOARD_I2C_SCL 12
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -41,8 +39,8 @@
|
|||||||
#define INTERNAL_LED_PIN 48
|
#define INTERNAL_LED_PIN 48
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_OLED_PINS
|
#define SENSOR_I2C_BUS Wire
|
||||||
#define OLED_SDA 5
|
#define BOARD_I2C_SDA 5
|
||||||
#define OLED_SCL 6
|
#define BOARD_I2C_SCL 6
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -50,7 +48,8 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#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_INVERTED 1
|
#define ADC_CTRL_PIN 21
|
||||||
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -50,7 +48,8 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#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
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 39
|
#define BOARD_I2C_SDA 39
|
||||||
#define BOARD_I2C_SCL 38
|
#define BOARD_I2C_SCL 38
|
||||||
|
|
||||||
@@ -52,9 +50,10 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#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_INVERTED 0
|
#define ADC_CTRL_PIN 46
|
||||||
#define VEXT_CTRL 18
|
#define ADC_CTRL_ON_STATE HIGH
|
||||||
#define VEXT_CTRL_INVERTED 0
|
#define VEXT_CTRL_PIN 18
|
||||||
|
#define VEXT_CTRL_ON_STATE HIGH
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -36,7 +34,7 @@
|
|||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_OLED_PINS
|
#define USE_WIRE_WITH_OLED_PINS
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 41
|
#define BOARD_I2C_SDA 41
|
||||||
#define BOARD_I2C_SCL 42
|
#define BOARD_I2C_SCL 42
|
||||||
|
|
||||||
@@ -55,9 +53,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 VEXT_CTRL_INVERTED 0
|
#define ADC_CTRL_PIN 37
|
||||||
#define ADC_CTRL 37
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
#define ADC_CTRL_INVERTED 1
|
#define VEXT_CTRL_PIN 36
|
||||||
|
#define VEXT_CTRL_ON_STATE HIGH
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -36,7 +34,7 @@
|
|||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_OLED_PINS
|
#define USE_WIRE_WITH_OLED_PINS
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 41
|
#define BOARD_I2C_SDA 41
|
||||||
#define BOARD_I2C_SCL 42
|
#define BOARD_I2C_SCL 42
|
||||||
|
|
||||||
@@ -55,9 +53,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 VEXT_CTRL_INVERTED 1
|
#define ADC_CTRL_PIN 37
|
||||||
#define ADC_CTRL 37
|
#define ADC_CTRL_ON_STATE HIGH
|
||||||
#define ADC_CTRL_INVERTED 0
|
#define VEXT_CTRL_PIN 36
|
||||||
|
#define VEXT_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -36,7 +34,7 @@
|
|||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_OLED_PINS
|
#define USE_WIRE_WITH_OLED_PINS
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 41
|
#define BOARD_I2C_SDA 41
|
||||||
#define BOARD_I2C_SCL 42
|
#define BOARD_I2C_SCL 42
|
||||||
|
|
||||||
@@ -55,10 +53,11 @@
|
|||||||
// 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 VEXT_CTRL_INVERTED 1
|
#define ADC_CTRL_PIN 37
|
||||||
#define ADC_CTRL 37
|
#define ADC_CTRL_ON_STATE HIGH
|
||||||
#define ADC_CTRL_INVERTED 0
|
#define VEXT_CTRL_PIN 36
|
||||||
|
#define VEXT_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
// GPS ??
|
// GPS ??
|
||||||
#define VGNS_CTRL 34 // cambiar nombre para prender GPS ?
|
#define VGNS_CTRL 34 // cambiar nombre para prender GPS ?
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -53,5 +51,5 @@
|
|||||||
Yellow LED (Wifi): PIN 23 / GPIO0
|
Yellow LED (Wifi): PIN 23 / GPIO0
|
||||||
Blue LED (BT/BLE): PIN 25 / GPIO16
|
Blue LED (BT/BLE): PIN 25 / GPIO16
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 37
|
#define BOARD_I2C_SDA 37
|
||||||
#define BOARD_I2C_SCL 36
|
#define BOARD_I2C_SCL 36
|
||||||
|
|
||||||
@@ -52,9 +50,10 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#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_INVERTED 1
|
#define ADC_CTRL_PIN 19
|
||||||
#define VEXT_CTRL 45
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
#define VEXT_CTRL_INVERTED 1
|
#define VEXT_CTRL_PIN 45
|
||||||
|
#define VEXT_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 37
|
#define BOARD_I2C_SDA 37
|
||||||
#define BOARD_I2C_SCL 36
|
#define BOARD_I2C_SCL 36
|
||||||
|
|
||||||
@@ -52,9 +50,10 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#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_INVERTED 1
|
#define ADC_CTRL_PIN 19
|
||||||
#define VEXT_CTRL 45
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
#define VEXT_CTRL_INVERTED 1
|
#define VEXT_CTRL_PIN 45
|
||||||
|
#define VEXT_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -52,9 +50,11 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 35
|
#define INTERNAL_LED_PIN 35
|
||||||
#define BATTERY_PIN 1
|
#define BATTERY_PIN 1
|
||||||
#define ADC_CTRL 37
|
|
||||||
#define VEXT_CTRL 36
|
#define ADC_CTRL_PIN 37
|
||||||
#define VEXT_CTRL_INVERTED 1
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
|
#define VEXT_CTRL_PIN 36
|
||||||
|
#define VEXT_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#define BOARD_I2C_SDA 41
|
#define BOARD_I2C_SDA 41
|
||||||
#define BOARD_I2C_SCL 42
|
#define BOARD_I2C_SCL 42
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,16 +33,17 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 41
|
#define BOARD_I2C_SDA 41
|
||||||
#define BOARD_I2C_SCL 42
|
#define BOARD_I2C_SCL 42
|
||||||
|
|
||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 35
|
#define INTERNAL_LED_PIN 35
|
||||||
#define BATTERY_PIN 1
|
#define BATTERY_PIN 1
|
||||||
#define ADC_CTRL 37
|
|
||||||
#define ADC_CTRL_INVERTED 1
|
#define ADC_CTRL_PIN 37
|
||||||
#define VEXT_CTRL 36
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
#define VEXT_CTRL_INVERTED 1
|
#define VEXT_CTRL_PIN 36
|
||||||
|
#define VEXT_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire1
|
||||||
#define BOARD_I2C_SDA 41
|
#define BOARD_I2C_SDA 41
|
||||||
#define BOARD_I2C_SCL 42
|
#define BOARD_I2C_SCL 42
|
||||||
|
|
||||||
@@ -46,9 +44,10 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 35
|
#define INTERNAL_LED_PIN 35
|
||||||
#define BATTERY_PIN 1
|
#define BATTERY_PIN 1
|
||||||
#define ADC_CTRL 37
|
|
||||||
#define ADC_CTRL_INVERTED 1
|
#define ADC_CTRL_PIN 37
|
||||||
#define VEXT_CTRL 36
|
#define ADC_CTRL_ON_STATE LOW
|
||||||
#define VEXT_CTRL_INVERTED 1
|
#define VEXT_CTRL_PIN 36
|
||||||
|
#define VEXT_CTRL_ON_STATE LOW
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,10 +33,10 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire
|
||||||
#define BOARD_I2C_SDA 7
|
#define BOARD_I2C_SDA 7
|
||||||
#define BOARD_I2C_SCL 6
|
#define BOARD_I2C_SCL 6
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
#define HAS_DISPLAY
|
#define HAS_DISPLAY
|
||||||
#define HAS_TFT
|
#define HAS_TFT
|
||||||
@@ -46,10 +44,11 @@
|
|||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 18
|
#define INTERNAL_LED_PIN 18
|
||||||
#define BATTERY_PIN 1
|
#define BATTERY_PIN 1
|
||||||
#define VEXT_CTRL 3 // To turn on GPS and TFT
|
|
||||||
#define VEXT_CTRL_INVERTED 0
|
#define ADC_CTRL_PIN 2 // HELTEC Wireless Tracker ADC_CTRL = HIGH powers the voltage divider to read BatteryPin. Only on V05 = V1.1
|
||||||
#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_ON_STATE HIGH
|
||||||
#define ADC_CTRL_INVERTED 0
|
#define VEXT_CTRL_PIN 3 // To turn on GPS and TFT
|
||||||
|
#define VEXT_CTRL_ON_STATE HIGH
|
||||||
|
|
||||||
// GPS
|
// GPS
|
||||||
#define HAS_GPS
|
#define HAS_GPS
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -50,5 +48,5 @@
|
|||||||
#define INTERNAL_LED_PIN 25 // Green Led
|
#define INTERNAL_LED_PIN 25 // Green Led
|
||||||
#define BATTERY_PIN 35
|
#define BATTERY_PIN 35
|
||||||
#define HAS_ADC_CALIBRATION
|
#define HAS_ADC_CALIBRATION
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -30,7 +28,7 @@
|
|||||||
#define RADIO_RST_PIN 14
|
#define RADIO_RST_PIN 14
|
||||||
#define RADIO_BUSY_PIN 26
|
#define RADIO_BUSY_PIN 26
|
||||||
#define RADIO_WAKEUP_PIN RADIO_BUSY_PIN
|
#define RADIO_WAKEUP_PIN RADIO_BUSY_PIN
|
||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_26
|
#define GPIO_WAKEUP_PIN GPIO_SEL_26
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
#define HAS_DISPLAY
|
#define HAS_DISPLAY
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_33
|
#define GPIO_WAKEUP_PIN GPIO_SEL_33
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
#define HAS_DISPLAY
|
#define HAS_DISPLAY
|
||||||
|
|
||||||
#undef OLED_SDA
|
#undef OLED_SDA
|
||||||
#undef OLED_SCL
|
#undef OLED_SCL
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_45
|
#define GPIO_WAKEUP_PIN GPIO_SEL_45
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire
|
||||||
#define BOARD_I2C_SDA 18
|
#define BOARD_I2C_SDA 18
|
||||||
#define BOARD_I2C_SCL 8
|
#define BOARD_I2C_SCL 8
|
||||||
|
|
||||||
@@ -45,7 +43,7 @@
|
|||||||
|
|
||||||
#undef OLED_SDA
|
#undef OLED_SDA
|
||||||
#undef OLED_SCL
|
#undef OLED_SCL
|
||||||
#undef OLED_RST
|
#undef OLED_RST
|
||||||
|
|
||||||
// GPS
|
// GPS
|
||||||
#define GPS_RX 43
|
#define GPS_RX 43
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||||
*
|
*
|
||||||
* This file is part of LoRa APRS iGate.
|
* This file is part of LoRa APRS iGate.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* 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/>.
|
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
@@ -19,8 +19,6 @@
|
|||||||
#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
|
||||||
@@ -35,7 +33,7 @@
|
|||||||
#define GPIO_WAKEUP_PIN GPIO_SEL_45
|
#define GPIO_WAKEUP_PIN GPIO_SEL_45
|
||||||
|
|
||||||
// I2C
|
// I2C
|
||||||
#define USE_WIRE_WITH_BOARD_I2C_PINS
|
#define SENSOR_I2C_BUS Wire
|
||||||
#define BOARD_I2C_SDA 18
|
#define BOARD_I2C_SDA 18
|
||||||
#define BOARD_I2C_SCL 8
|
#define BOARD_I2C_SCL 8
|
||||||
|
|
||||||
@@ -45,7 +43,7 @@
|
|||||||
|
|
||||||
#undef OLED_SDA
|
#undef OLED_SDA
|
||||||
#undef OLED_SCL
|
#undef OLED_SCL
|
||||||
#undef OLED_RST
|
#undef OLED_RST
|
||||||
|
|
||||||
// GPS
|
// GPS
|
||||||
#define GPS_RX 43
|
#define GPS_RX 43
|
||||||
|
|||||||
Reference in New Issue
Block a user