Compare commits
11 Commits
021e776956
...
3e5db7e084
| Author | SHA1 | Date |
|---|---|---|
|
|
3e5db7e084 | |
|
|
f325c54fc3 | |
|
|
1a3966eadc | |
|
|
ffd3eaeb49 | |
|
|
df03a49123 | |
|
|
58d647bad1 | |
|
|
59988fbaf1 | |
|
|
1ad13e3c09 | |
|
|
ffe1a2f830 | |
|
|
a0fdd78cb1 | |
|
|
6394d0fa90 |
|
|
@ -78,7 +78,9 @@ jobs:
|
|||
- name: QRPLabs_LightGateway_1_0
|
||||
chip: esp32s3
|
||||
- name: XIAO_ESP32S3_WIO_SX1262
|
||||
chip: esp32s3
|
||||
chip: esp32s3
|
||||
- name: TROY_LoRa_APRS
|
||||
chip: esp32
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ ____________________________________________________
|
|||
|
||||
## Timeline (Versions):
|
||||
|
||||
- 2025.01.07 TROY_LoRa_APRS board added. GMT in quarter hour fix and Beacon fix for TNC.
|
||||
- 2025.01.02 Callsign Black List added.
|
||||
- 2024.12.30 Fixed missing validation for correct Digipeater mode when not connected to APRS-IS.
|
||||
- 2024.12.06 APRS-IS connnection and passcode validation added.
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@
|
|||
"password": ""
|
||||
},
|
||||
"ntp": {
|
||||
"gmtCorrection": 0
|
||||
"gmtCorrection": 0.0
|
||||
},
|
||||
"other": {
|
||||
"rememberStationTime": 30,
|
||||
|
|
|
|||
|
|
@ -189,17 +189,38 @@
|
|||
name="action.symbol"
|
||||
id="action.symbol"
|
||||
>
|
||||
<option value="L#">
|
||||
Green star with L
|
||||
</option>
|
||||
<option value="L_">
|
||||
Blue circle with L
|
||||
<option value="I&">
|
||||
I& - Igate Generic (please use more specific overlay)
|
||||
</option>
|
||||
<option value="L&">
|
||||
Black diamond with L
|
||||
L& - Lora Igate
|
||||
</option>
|
||||
<option value="R&">
|
||||
R& - Receive only IGate (do not send msgs back to RF)
|
||||
</option>
|
||||
<option value="T&">
|
||||
T& - TX igate with path set to 1 hop only)
|
||||
</option>
|
||||
<option value="/#">
|
||||
/# - Generic digipeater
|
||||
</option>
|
||||
<option value="I#">
|
||||
I# - I-gate equipped digipeater
|
||||
</option>
|
||||
<option value="L#">
|
||||
L# - WIDEn-N with path length trapping
|
||||
</option>
|
||||
<option value="X#">
|
||||
X# - eXperimental digipeater
|
||||
</option>
|
||||
<option value="/-">
|
||||
/- - House
|
||||
</option>
|
||||
<option value="L_">
|
||||
L_ - Blue circle with L (enable aprs.fi weather processing)
|
||||
</option>
|
||||
<option value="La">
|
||||
Red diamond with L
|
||||
La - Red diamond with L
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -1744,9 +1765,9 @@
|
|||
id="ntp.gmtCorrection"
|
||||
placeholder="0"
|
||||
class="form-control"
|
||||
step="1"
|
||||
min="-23"
|
||||
max="23"
|
||||
step="0.25"
|
||||
min="-23.75"
|
||||
max="23.75"
|
||||
/>
|
||||
<span class="input-group-text"
|
||||
>hours</span
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -119,11 +119,10 @@ public:
|
|||
|
||||
class NTP {
|
||||
public:
|
||||
int gmtCorrection;
|
||||
float gmtCorrection;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class Configuration {
|
||||
public:
|
||||
String callsign;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ ___________________________________________________________________*/
|
|||
#include "A7670_utils.h"
|
||||
#endif
|
||||
|
||||
String versionDate = "2025.01.02";
|
||||
String versionDate = "2025.01.08";
|
||||
Configuration Config;
|
||||
WiFiClient espClient;
|
||||
#ifdef HAS_GPS
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ bool Configuration::readFile() {
|
|||
webadmin.username = data["webadmin"]["username"] | "admin";
|
||||
webadmin.password = data["webadmin"]["password"] | "";
|
||||
|
||||
ntp.gmtCorrection = data["ntp"]["gmtCorrection"] | 0;
|
||||
ntp.gmtCorrection = data["ntp"]["gmtCorrection"] | 0.0;
|
||||
|
||||
lowPowerMode = data["other"]["lowPowerMode"] | false;
|
||||
lowVoltageCutOff = data["other"]["lowVoltageCutOff"] | 0;
|
||||
|
|
@ -337,7 +337,7 @@ void Configuration::init() {
|
|||
webadmin.username = "admin";
|
||||
webadmin.password = "";
|
||||
|
||||
ntp.gmtCorrection = 0;
|
||||
ntp.gmtCorrection = 0.0;
|
||||
|
||||
Serial.println("All is Written!");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -181,10 +181,10 @@ namespace POWER_Utils {
|
|||
|
||||
#ifdef VEXT_CTRL
|
||||
pinMode(VEXT_CTRL,OUTPUT); // GPS + TFT on HELTEC Wireless_Tracker and only for Oled in HELTEC V3
|
||||
#ifndef HELTEC_WSL_V3
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3)
|
||||
digitalWrite(VEXT_CTRL, HIGH);
|
||||
#endif
|
||||
#ifdef HELTEC_WP
|
||||
#if defined(HELTEC_WP) || defined(HELTEC_WS)
|
||||
digitalWrite(VEXT_CTRL, LOW);
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ namespace Utils {
|
|||
|
||||
void checkBeaconInterval() {
|
||||
uint32_t lastTx = millis() - lastBeaconTx;
|
||||
if (((Config.aprs_is.active && passcodeValid) || Config.digi.mode != 0) && (lastBeaconTx == 0 || lastTx >= Config.beacon.interval * 60 * 1000)) {
|
||||
if (lastBeaconTx == 0 || lastTx >= Config.beacon.interval * 60 * 1000) {
|
||||
beaconUpdate = true;
|
||||
}
|
||||
|
||||
|
|
@ -198,9 +198,7 @@ namespace Utils {
|
|||
#endif
|
||||
|
||||
if (beaconUpdate) {
|
||||
if (!Config.display.alwaysOn && Config.display.timeout != 0) {
|
||||
displayToggle(true);
|
||||
}
|
||||
if (!Config.display.alwaysOn && Config.display.timeout != 0) displayToggle(true);
|
||||
|
||||
if (sendStartTelemetry && Config.battery.sendVoltageAsTelemetry && !Config.wxsensor.active && (Config.battery.sendInternalVoltage || Config.battery.sendExternalVoltage)) {
|
||||
sendInitialTelemetryPackets();
|
||||
|
|
@ -289,7 +287,7 @@ namespace Utils {
|
|||
secondaryBeaconPacket += encodedTelemetry;
|
||||
}
|
||||
|
||||
if (Config.aprs_is.active && Config.beacon.sendViaAPRSIS && !backUpDigiMode) {
|
||||
if (Config.beacon.sendViaAPRSIS && Config.aprs_is.active && passcodeValid && !backUpDigiMode) {
|
||||
Utils::println("-- Sending Beacon to APRSIS --");
|
||||
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, "SENDING IGATE BEACON", 0);
|
||||
seventhLine = " listening...";
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ namespace WEB_Utils {
|
|||
Config.webadmin.password = request->getParam("webadmin.password", true)->value();
|
||||
}
|
||||
|
||||
Config.ntp.gmtCorrection = request->getParam("ntp.gmtCorrection", true)->value().toInt();
|
||||
Config.ntp.gmtCorrection = request->getParam("ntp.gmtCorrection", true)->value().toFloat();
|
||||
|
||||
Config.writeFile();
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
#ifndef BOARD_PINOUT_H_
|
||||
#define BOARD_PINOUT_H_
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1278
|
||||
#define RADIO_SCLK_PIN 5
|
||||
#define RADIO_MISO_PIN 19
|
||||
#define RADIO_MOSI_PIN 27
|
||||
#define RADIO_CS_PIN 18
|
||||
#define RADIO_RST_PIN 23
|
||||
#define RADIO_BUSY_PIN 26
|
||||
|
||||
// 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
|
||||
|
||||
// GPS
|
||||
#define HAS_GPS
|
||||
#define GPS_RX 12
|
||||
#define GPS_TX 34
|
||||
|
||||
// OTHER
|
||||
#define INTERNAL_LED_PIN 2
|
||||
#define BATTERY_PIN 35
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[env:TROY_LoRa_APRS]
|
||||
board = esp32dev
|
||||
build_flags =
|
||||
${common.build_flags}
|
||||
-D TROY_LoRa_APRS
|
||||
lib_deps =
|
||||
${common.lib_deps}
|
||||
${common.display_libs}
|
||||
|
|
@ -18,9 +18,9 @@
|
|||
#undef OLED_SCL
|
||||
#undef OLED_RST
|
||||
|
||||
#define OLED_SDA 4
|
||||
#define OLED_SCL 15
|
||||
#define OLED_RST 16
|
||||
#define OLED_SDA 17
|
||||
#define OLED_SCL 18
|
||||
#define OLED_RST 21
|
||||
#define OLED_DISPLAY_HAS_RST_PIN
|
||||
|
||||
// Aditional Config
|
||||
|
|
|
|||
Loading…
Reference in New Issue