mirror of
https://github.com/richonguzman/LoRa_APRS_iGate.git
synced 2026-03-28 16:52:33 +01:00
Compare commits
27 Commits
V3.1.2
...
Op-defined
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90b29b66d5 | ||
|
|
2a86cdb0d8 | ||
|
|
1abaa299e0 | ||
|
|
9cbd7c22fd | ||
|
|
e15e6def91 | ||
|
|
33c8be4f48 | ||
|
|
c2a7c26d78 | ||
|
|
387e8a988a | ||
|
|
48b075a554 | ||
|
|
7e76e43817 | ||
|
|
9b7b4e1838 | ||
|
|
5b9d56843b | ||
|
|
30eb1023dc | ||
|
|
1ba86af61b | ||
|
|
1d475bc8a2 | ||
|
|
70f9a6fa04 | ||
|
|
6747511850 | ||
|
|
96a4394e89 | ||
|
|
4e009bc14c | ||
|
|
4c11c66a1c | ||
|
|
a89181b5df | ||
|
|
9a94a193f9 | ||
|
|
9c7f6c7934 | ||
|
|
53e8941262 | ||
|
|
60a148d362 | ||
|
|
36cd1578cc | ||
|
|
c3036f290f |
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -29,6 +29,8 @@ jobs:
|
||||
chip: esp32s3
|
||||
- name: heltec_wireless_stick_lite_v3_display
|
||||
chip: esp32s3
|
||||
- name: heltec_wireless_bridge
|
||||
chip: esp32
|
||||
- name: ESP32_DIY_LoRa
|
||||
chip: esp32
|
||||
- name: ESP32_DIY_LoRa_915
|
||||
|
||||
37
README.md
37
README.md
@@ -9,46 +9,38 @@ __(This iGate Firmware works with all LoRa Tracker Firmwares (specially this <a
|
||||
|
||||
____________________________________________________
|
||||
|
||||
# <a href="https://richonguzman.github.io/lora-igate-web-flasher/installer.html" target="_blank">WEB FLASHER/INSTALLER</a>
|
||||
|
||||
|
||||
# <a href="https://github.com/richonguzman/LoRa_APRS_iGate/blob/main/manual/LoRa_APRS_iGate_CA2RXU_Firmware_Manual.pdf" target="_blank">LoRa APRS iGate CA2RXU Firmware Manual</a>
|
||||
|
||||
____________________________________________________
|
||||
|
||||
## You can support this project to continue to grow:
|
||||
|
||||
[<img src="https://github.com/richonguzman/LoRa_APRS_Tracker/blob/main/images/github-sponsors.png">](https://github.com/sponsors/richonguzman) [<img src="https://github.com/richonguzman/LoRa_APRS_Tracker/blob/main/images/paypalme.png">](http://paypal.me/richonguzman)
|
||||
|
||||
<br />
|
||||
|
||||
# WEB FLASHER/INSTALLER is <a href="https://richonguzman.github.io/lora-igate-web-flasher/installer.html" target="_blank">here</a>
|
||||
|
||||
____________________________________________________
|
||||
|
||||
# WIKI
|
||||
|
||||
### FAQ, BME280, TNC and more --> <a href="https://github.com/richonguzman/LoRa_APRS_iGate/wiki/00.-FAQ-(frequently-asked-questions)" target="_blank">here</a>.
|
||||
|
||||
### Installation Guide --> <a href="https://github.com/richonguzman/LoRa_APRS_iGate/wiki/01.-Installation-Guide" target="_blank">here</a>.
|
||||
<br />
|
||||
|
||||
# SUPPORTED BOARDS
|
||||
|
||||
### Buying links --> <a href="https://github.com/richonguzman/LoRa_APRS_iGate/wiki/108.-Supported-Boards-and-Buying-Links" target="_blank">here</a>.
|
||||
## SUPPORTED BOARDS (<a href="https://github.com/richonguzman/LoRa_APRS_iGate/wiki/Supported-Boards-and-Buying-Links" target="_blank">Buying links</a>).
|
||||
|
||||
(NOTE: all boards with 433-868-915 MHz versions)
|
||||
|
||||
- TTGO Lilygo LoRa32 T3S3 V1.2 and LoRa32 V2.1 (V1.6 is the same).
|
||||
|
||||
- TTGO T-Beam V1.0 , V1.1, V1.2 (also variations with SX1262 and SX1268 LoRa Modules).
|
||||
- TTGO T-Beam V1.0 , V1.1, V1.2 (also variations with SX1262 and SX1268 LoRa Modules) and Supreme V3.
|
||||
|
||||
- T-Deck Plus (and also regular T-Deck with/without GPS).
|
||||
|
||||
- HELTEC V2, V3, V3.2, T114, Wireless Stick, Wireless Stick Lite, HT-CT62, Wireless Tracker, Wireless Paper.
|
||||
|
||||
- RAK Wireless 4631 + 19007(19003)
|
||||
- RAK Wireless 4631 + 19007(or 19003)
|
||||
|
||||
- Faketec (NRF52840 + Heltec HTRA62(SX1262))
|
||||
- Faketec V3 (NRF52840 + Heltec HTRA62(SX1262))
|
||||
|
||||
- QRP Labs LightGateway 1.0 and Plus 1.0.
|
||||
|
||||
- Faketec V3 (NRF52840 + Heltec HTRA62 SX1262)
|
||||
|
||||
- ESP32 Wroom + SX1278 LoRa Module or Ebyte 400M30S (or 900M30S) 1W LoRa Module for a DIY Versions.
|
||||
- ESP32 + SX1278 LoRa Module or Ebyte 400M30S (or 900M30S) 1W LoRa Module for a DIY Versions.
|
||||
|
||||
- ESP32C3 + Ebyte 400M30S(or 900M30S) 1W LoRa Module for another DIY version.
|
||||
|
||||
@@ -58,8 +50,11 @@ ____________________________________________________
|
||||
|
||||
<br />
|
||||
|
||||
## Timeline (Versions):
|
||||
# Timeline (Versions):
|
||||
|
||||
- 2025-10-11 User defined NTP server added.
|
||||
- 2025-10-10 Changed Wiki into a pdf manual.
|
||||
- 2025-09-26 Heltec Wireless Bridge support added.
|
||||
- 2025-09-09 MQTT added (pub+sub), Status defined by Op now and many fixes more.
|
||||
- 2025-06-20 Digipeaters now with updated EcoMode (Board Sleeps until packet Rx reducing current consumption to almost 10% at idle).
|
||||
- 2025-06-20 New Boards Added: Heltec T114 MeshNode, Faketec V3 as Digipeaters and QRP Labs LightGateway Plus 1.0.
|
||||
|
||||
@@ -101,6 +101,7 @@
|
||||
"rfOnly": true
|
||||
},
|
||||
"ntp": {
|
||||
"server": "pool.ntp.org",
|
||||
"gmtCorrection": 0.0
|
||||
},
|
||||
"other": {
|
||||
|
||||
@@ -1416,7 +1416,7 @@
|
||||
<label
|
||||
for="syslog.logBeaconOverTCPIP"
|
||||
class="form-label"
|
||||
>Log Beacon over TPCIP</label
|
||||
>Log Beacon over TCP/IP</label
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1990,6 +1990,21 @@
|
||||
</small>
|
||||
</div>
|
||||
<div class="col-lg-9 col-sm-12">
|
||||
<div class="col-12">
|
||||
<label
|
||||
for="ntp.server"
|
||||
class="form-label"
|
||||
>NTP Server hostname</label
|
||||
>
|
||||
<div class="input-group">
|
||||
<input
|
||||
type="text"
|
||||
name="ntp.server"
|
||||
id="ntp.server"
|
||||
class="form-control"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<label
|
||||
for="ntp.gmtCorrection"
|
||||
|
||||
@@ -241,6 +241,7 @@ function loadSettings(settings) {
|
||||
document.getElementById("remoteManagement.rfOnly").checked = settings.remoteManagement.rfOnly;
|
||||
|
||||
// NTP
|
||||
document.getElementById("ntp.server").value = settings.ntp.server;
|
||||
document.getElementById("ntp.gmtCorrection").value = settings.ntp.gmtCorrection;
|
||||
|
||||
// Experimental
|
||||
|
||||
@@ -140,6 +140,7 @@ public:
|
||||
|
||||
class NTP {
|
||||
public:
|
||||
String server;
|
||||
float gmtCorrection;
|
||||
};
|
||||
|
||||
|
||||
BIN
manual/LoRa_APRS_iGate_CA2RXU_Firmware_Manual.pdf
Normal file
BIN
manual/LoRa_APRS_iGate_CA2RXU_Firmware_Manual.pdf
Normal file
Binary file not shown.
@@ -67,8 +67,8 @@ ___________________________________________________________________*/
|
||||
#endif
|
||||
|
||||
|
||||
String versionDate = "2025-09-17";
|
||||
String versionNumber = "3.1.2";
|
||||
String versionDate = "2025-10-11";
|
||||
String versionNumber = "3.1.3";
|
||||
Configuration Config;
|
||||
WiFiClient aprsIsClient;
|
||||
WiFiClient mqttClient;
|
||||
|
||||
@@ -48,6 +48,8 @@ bool Configuration::writeFile() {
|
||||
data["wifi"]["autoAP"]["password"] = wifiAutoAP.password;
|
||||
data["wifi"]["autoAP"]["timeout"] = wifiAutoAP.timeout;
|
||||
|
||||
callsign.trim();
|
||||
callsign.toUpperCase();
|
||||
data["callsign"] = callsign;
|
||||
|
||||
data["aprs_is"]["active"] = aprs_is.active;
|
||||
@@ -140,6 +142,7 @@ bool Configuration::writeFile() {
|
||||
data["remoteManagement"]["managers"] = remoteManagement.managers;
|
||||
data["remoteManagement"]["rfOnly"] = remoteManagement.rfOnly;
|
||||
|
||||
data["ntp"]["server"] = ntp.server;
|
||||
data["ntp"]["gmtCorrection"] = ntp.gmtCorrection;
|
||||
|
||||
data["other"]["rebootMode"] = rebootMode;
|
||||
@@ -345,7 +348,9 @@ bool Configuration::readFile() {
|
||||
remoteManagement.managers = data["remoteManagement"]["managers"] | "";
|
||||
remoteManagement.rfOnly = data["remoteManagement"]["rfOnly"] | true;
|
||||
|
||||
if (!data["ntp"].containsKey("gmtCorrection")) needsRewrite = true;
|
||||
if (!data["ntp"].containsKey("server") ||
|
||||
!data["ntp"].containsKey("gmtCorrection")) needsRewrite = true;
|
||||
ntp.server = data["ntp"]["server"] | "pool.ntp.org";
|
||||
ntp.gmtCorrection = data["ntp"]["gmtCorrection"] | 0.0;
|
||||
|
||||
if (!data["other"].containsKey("rebootMode") ||
|
||||
@@ -371,7 +376,7 @@ bool Configuration::readFile() {
|
||||
if (needsRewrite) {
|
||||
Serial.println("Config JSON incomplete, rewriting...");
|
||||
writeFile();
|
||||
delay(500);
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
}
|
||||
Serial.println("Config read successfuly");
|
||||
@@ -482,6 +487,7 @@ void Configuration::setDefaultValues() {
|
||||
remoteManagement.managers = "";
|
||||
remoteManagement.rfOnly = true;
|
||||
|
||||
ntp.server = "pool.ntp.org";
|
||||
ntp.gmtCorrection = 0.0;
|
||||
|
||||
rebootMode = false;
|
||||
@@ -506,7 +512,7 @@ Configuration::Configuration() {
|
||||
if (!exists) {
|
||||
setDefaultValues();
|
||||
writeFile();
|
||||
delay(500);
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
extern Configuration Config;
|
||||
|
||||
WiFiUDP ntpUDP;
|
||||
NTPClient timeClient(ntpUDP, "pool.ntp.org", 0, 15 * 60 * 1000); // Update interval 15 min
|
||||
NTPClient timeClient(ntpUDP, Config.ntp.server.c_str(), 0, 15 * 60 * 1000); // Update interval 15 min
|
||||
|
||||
|
||||
namespace NTP_Utils {
|
||||
|
||||
@@ -281,6 +281,7 @@ namespace WEB_Utils {
|
||||
Config.remoteManagement.managers = getParamStringSafe("remoteManagement.managers", Config.remoteManagement.managers);
|
||||
Config.remoteManagement.rfOnly = request->hasParam("remoteManagement.rfOnly", true);
|
||||
|
||||
Config.ntp.server = getParamStringSafe("ntp.server", Config.ntp.server);
|
||||
Config.ntp.gmtCorrection = getParamFloatSafe("ntp.gmtCorrection", Config.ntp.gmtCorrection);
|
||||
|
||||
Config.rememberStationTime = getParamIntSafe("other.rememberStationTime", Config.rememberStationTime);
|
||||
|
||||
55
variants/heltec_wireless_bridge/board_pinout.h
Normal file
55
variants/heltec_wireless_bridge/board_pinout.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||
*
|
||||
* This file is part of LoRa APRS iGate.
|
||||
*
|
||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef BOARD_PINOUT_H_
|
||||
#define BOARD_PINOUT_H_
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1276
|
||||
#define RADIO_SCLK_PIN 5
|
||||
#define RADIO_MISO_PIN 19
|
||||
#define RADIO_MOSI_PIN 27
|
||||
#define RADIO_CS_PIN 18
|
||||
#define RADIO_RST_PIN 14
|
||||
#define RADIO_BUSY_PIN 26
|
||||
#define RADIO_WAKEUP_PIN RADIO_BUSY_PIN
|
||||
#define GPIO_WAKEUP_PIN GPIO_SEL_26
|
||||
|
||||
// I2C
|
||||
#define USE_WIRE_WITH_OLED_PINS
|
||||
|
||||
// Display
|
||||
#define HAS_DISPLAY
|
||||
|
||||
#undef OLED_SDA
|
||||
#undef OLED_SCL
|
||||
#undef OLED_RST
|
||||
|
||||
#define OLED_SDA 21
|
||||
#define OLED_SCL 22
|
||||
#define OLED_RST -1
|
||||
|
||||
// Aditional Config
|
||||
#define INTERNAL_LED_PIN 16
|
||||
/*
|
||||
Green LED (Lora): PIN 22 / GPIO2
|
||||
Yellow LED (Wifi): PIN 23 / GPIO0
|
||||
Blue LED (BT/BLE): PIN 25 / GPIO16
|
||||
*/
|
||||
|
||||
#endif
|
||||
8
variants/heltec_wireless_bridge/platformio.ini
Normal file
8
variants/heltec_wireless_bridge/platformio.ini
Normal file
@@ -0,0 +1,8 @@
|
||||
[env:heltec_wireless_bridge]
|
||||
board = esp32dev
|
||||
build_flags =
|
||||
${common.build_flags}
|
||||
-D HELTEC_WIRELESS_BRIDGE
|
||||
lib_deps =
|
||||
${common.lib_deps}
|
||||
${common.display_libs}
|
||||
Reference in New Issue
Block a user