mirror of
https://github.com/richonguzman/LoRa_APRS_iGate.git
synced 2026-07-10 11:51:03 +02:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ee25ec6873 |
@@ -54,8 +54,7 @@ ____________________________________________________
|
||||
|
||||
## Timeline (Versions):
|
||||
|
||||
- 2025.02.28 Heltec Wireless Paper with Epaper working. Thanks SzymonPriv for pointing to the right library.
|
||||
- 2025.02.25 Objects Rules update, GPS Boards: Satellites on Screen, Wx Height Correction from GPS Data.
|
||||
- 2025.02.25 Objects Rules updated and GPS Boards: Satellites in Screen, Wx Height Correction from GPS Data.
|
||||
- 2025.01.22 Added LILYGO T-DECK PLUS (and DIY+GPS version) board support.
|
||||
- 2025.01.11 Added HELTEC V3.2 board support.
|
||||
- 2025.01.07 TROY_LoRa_APRS board added. GMT in quarter hour fix and Beacon fix for TNC.
|
||||
@@ -67,7 +66,7 @@ ____________________________________________________
|
||||
- 2024.10.25 Added QRP Labs LightGateway 1.0 support.
|
||||
- 2024.10.21 Boards with GPS can now send Real-GPS Beacon (also posible: GPS ambiguity of ~ 1 km).
|
||||
- 2024.10.14 Received Packets in WebUI show real Local Time (NTP with GMT offset).
|
||||
- 2024.10.08 New EcoMode for Remote Digipeaters without WiFi/WiFiAP, Screen, Leds (Example: LILYGO LoRa32 uses only 24mA, with WifiAP 150mA). APRS Message/Queries can start/stop this mode too.
|
||||
- 2024.10.08 New EcoMode for Remote Digipeaters without WiFi/WiFiAP, Screen, Leds (Example: LILYGO LoRa32 uses only 24mA, with WifiAP and all was 150mA). APRS Message/Queries can start/stop this mode too.
|
||||
- 2024.10.06 Cross Frequency Digipeater Rules added.
|
||||
- 2024.09.23 Libraries Update for SDK3
|
||||
- 2024.09.23 Added Enconded Telemetry for Battery (+ External Voltage) in Station GPS Beacon Packet.
|
||||
|
||||
+2
-2
@@ -32,9 +32,9 @@ lib_deps =
|
||||
arduino-libraries/NTPClient @ 3.2.1
|
||||
ayushsharma82/ElegantOTA @ 3.1.5
|
||||
bblanchon/ArduinoJson @ 6.21.3
|
||||
ESP32Async/AsyncTCP @ 3.3.5
|
||||
ESP32Async/ESPAsyncWebServer @ 3.7.0
|
||||
jgromes/RadioLib @ 7.1.0
|
||||
mathieucarbou/AsyncTCP @ 3.2.5
|
||||
mathieucarbou/ESPAsyncWebServer @ 3.2.3
|
||||
mikalhart/TinyGPSPlus @ 1.0.3
|
||||
display_libs =
|
||||
adafruit/Adafruit GFX Library @ 1.11.9
|
||||
|
||||
+2
-2
@@ -13,10 +13,10 @@ default_envs = ttgo-lora32-v21
|
||||
|
||||
extra_configs =
|
||||
common_settings.ini
|
||||
variants/*/platformio.ini
|
||||
variants/*/platformio.ini
|
||||
|
||||
[env]
|
||||
platform = espressif32 @ 6.7.0
|
||||
platform = espressif32 @ 6.10.0
|
||||
board_build.partitions = min_spiffs.csv
|
||||
framework = arduino
|
||||
monitor_speed = 115200
|
||||
|
||||
+2
-18
@@ -68,14 +68,10 @@ uint32_t lastBatteryCheck = 0;
|
||||
bool backUpDigiMode = false;
|
||||
bool modemLoggedToAPRSIS = false;
|
||||
|
||||
#ifdef HAS_EPAPER
|
||||
uint32_t lastEpaperTime = 0;
|
||||
extern String lastEpaperText;
|
||||
#endif
|
||||
|
||||
std::vector<ReceivedPacket> receivedPackets;
|
||||
|
||||
String firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine;
|
||||
|
||||
//#define STARTUP_DELAY 5 //min
|
||||
|
||||
void setup() {
|
||||
@@ -223,19 +219,7 @@ void loop() {
|
||||
|
||||
STATION_Utils::processOutputPacketBuffer();
|
||||
|
||||
#ifdef HAS_EPAPER // Only consider updating every 10 seconds (when data to show is different from before)
|
||||
if(lastEpaperTime == 0 || millis() - lastEpaperTime > 10000) {
|
||||
String posibleEpaperText = firstLine + secondLine + thirdLine + fourthLine + fifthLine + sixthLine + seventhLine;
|
||||
if (lastEpaperText != posibleEpaperText) {
|
||||
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0);
|
||||
lastEpaperText = posibleEpaperText;
|
||||
lastEpaperTime = millis();
|
||||
}
|
||||
}
|
||||
#else
|
||||
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0);
|
||||
#endif
|
||||
|
||||
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0);
|
||||
Utils::checkRebootTime();
|
||||
Utils::checkSleepByLowBatteryVoltage(1);
|
||||
}
|
||||
@@ -322,7 +322,6 @@ namespace APRS_IS_Utils {
|
||||
seventhLine = "QUERY = ";
|
||||
seventhLine += receivedMessage;
|
||||
}
|
||||
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0);
|
||||
} else {
|
||||
Utils::print("Rx Message (APRS-IS): " + packet);
|
||||
if (STATION_Utils::wasHeard(Addressee) && packet.indexOf("EQNS.") == -1 && packet.indexOf("UNIT.") == -1 && packet.indexOf("PARM.") == -1) {
|
||||
@@ -330,9 +329,9 @@ namespace APRS_IS_Utils {
|
||||
displayToggle(true);
|
||||
lastScreenOn = millis();
|
||||
Utils::typeOfPacket(packet, 1); // APRS-LoRa
|
||||
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0);
|
||||
}
|
||||
}
|
||||
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0);
|
||||
} else if (Config.aprs_is.objectsToRF && packet.indexOf(":;") > 0) {
|
||||
Utils::print("Rx Object (APRS-IS) : " + packet);
|
||||
if (STATION_Utils::checkObjectTime(packet)) {
|
||||
|
||||
+6
-32
@@ -24,10 +24,7 @@
|
||||
uint16_t redColor = 0xc8a2;
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
#include <heltec-eink-modules.h>
|
||||
#include "Fonts/FreeSansBold9pt7b.h"
|
||||
EInkDisplay_WirelessPaperV1_1 display;
|
||||
String lastEpaperText;
|
||||
//
|
||||
#else
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SSD1306.h>
|
||||
@@ -66,9 +63,7 @@ void displaySetup() {
|
||||
#endif
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
display.landscape();
|
||||
display.printCenter("LoRa APRS iGate Initialising...");
|
||||
display.update();
|
||||
//
|
||||
#else
|
||||
#ifdef OLED_DISPLAY_HAS_RST_PIN
|
||||
pinMode(OLED_RST, OUTPUT);
|
||||
@@ -101,8 +96,7 @@ void displayToggle(bool toggle) {
|
||||
digitalWrite(TFT_BL, HIGH);
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
display.printCenter("EPAPER Display Disabled by toggle...");
|
||||
display.update();
|
||||
// ... to be continued
|
||||
#else
|
||||
if (displayFound) display.ssd1306_command(SSD1306_DISPLAYON);
|
||||
#endif
|
||||
@@ -112,8 +106,7 @@ void displayToggle(bool toggle) {
|
||||
digitalWrite(TFT_BL, LOW);
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
display.printCenter("Enabled EPAPER Display...");
|
||||
display.update();
|
||||
// ... to be continued
|
||||
#else
|
||||
if (displayFound) display.ssd1306_command(SSD1306_DISPLAYOFF);
|
||||
#endif
|
||||
@@ -148,16 +141,7 @@ void displayShow(const String& header, const String& line1, const String& line2,
|
||||
sprite.pushSprite(0,0);
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
display.clearMemory();
|
||||
display.setCursor(5,10);
|
||||
display.setFont(&FreeSansBold9pt7b);
|
||||
display.println(header);
|
||||
display.setFont(NULL);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
display.setCursor(0, 25 + (14 * i));
|
||||
display.println(*lines[i]);
|
||||
}
|
||||
display.update();
|
||||
// ... to be continued
|
||||
#else
|
||||
if (displayFound) {
|
||||
display.clearDisplay();
|
||||
@@ -205,17 +189,7 @@ void displayShow(const String& header, const String& line1, const String& line2,
|
||||
sprite.pushSprite(0,0);
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
lastEpaperText = header + line1 + line2 + line3 + line4 + line5 + line6;
|
||||
display.clearMemory();
|
||||
display.setCursor(5,10);
|
||||
display.setFont(&FreeSansBold9pt7b);
|
||||
display.println(header);
|
||||
display.setFont(NULL);
|
||||
for (int i = 0; i < 6; i++) {
|
||||
display.setCursor(0, 25 + (14 * i));
|
||||
display.println(*lines[i]);
|
||||
}
|
||||
display.update();
|
||||
// ... to be continued
|
||||
#else
|
||||
if (displayFound) {
|
||||
display.clearDisplay();
|
||||
|
||||
@@ -4,7 +4,5 @@ board_build.mcu = esp32s3
|
||||
build_flags =
|
||||
${common.build_flags}
|
||||
-D HELTEC_WP
|
||||
-D WIRELESS_PAPER
|
||||
lib_deps =
|
||||
${common.lib_deps}
|
||||
todd-herbert/heltec-eink-modules@^4.4.0
|
||||
${common.lib_deps}
|
||||
Reference in New Issue
Block a user