mirror of
https://github.com/lora-aprs/LoRa_APRS_iGate.git
synced 2025-12-06 07:42:00 +01:00
commit
81b4734e5d
18
.github/workflows/release.yml
vendored
18
.github/workflows/release.yml
vendored
|
|
@ -87,3 +87,21 @@ jobs:
|
|||
asset_path: .pio/build/TrackerD-OE1ACM/firmware.bin
|
||||
asset_name: TrackerD-OE1ACM.bin
|
||||
asset_content_type: application/bin
|
||||
# upload ttgo-poe-v1_0
|
||||
- uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: .pio/build/ttgo-poe-v1_0/firmware.bin
|
||||
asset_name: ttgo-poe-v1_0.bin
|
||||
asset_content_type: application/bin
|
||||
# upload ttgo-poe-v1_2
|
||||
- uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: .pio/build/ttgo-poe-v1_2/firmware.bin
|
||||
asset_name: ttgo-poe-v1_2.bin
|
||||
asset_content_type: application/bin
|
||||
|
|
|
|||
|
|
@ -49,3 +49,11 @@ build_flags = -Werror -Wall -DTTGO_T_Beam_V0_7
|
|||
[env:TrackerD-OE1ACM]
|
||||
board = esp32doit-devkit-v1
|
||||
build_flags = -Werror -Wall -DTRACKERD -DLORA_SCK=18 -DLORA_MISO=19 -DLORA_MOSI=23 -DLORA_CS=16 -DLORA_RST=14 -DLORA_IRQ=26
|
||||
|
||||
[env:ttgo-poe-v1_0]
|
||||
board = esp32doit-devkit-v1
|
||||
build_flags = -Werror -Wall -DETH_BOARD -DETH_BOARD_V1_0 -DLORA_SCK=14 -DLORA_MISO=2 -DLORA_MOSI=15 -DLORA_CS=12 -DLORA_RST=4 -DLORA_IRQ=36
|
||||
|
||||
[env:ttgo-poe-v1_2]
|
||||
board = esp32doit-devkit-v1
|
||||
build_flags = -Werror -Wall -DETH_BOARD -DETH_BOARD_V1_2 -DLORA_SCK=14 -DLORA_MISO=2 -DLORA_MOSI=15 -DLORA_CS=12 -DLORA_RST=4 -DLORA_IRQ=36
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include <map>
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <ETH.h>
|
||||
#include <WiFiMulti.h>
|
||||
#include <NTPClient.h>
|
||||
#include <WiFiUdp.h>
|
||||
|
|
@ -39,9 +40,17 @@ APRS_IS * aprs_is = 0;
|
|||
LoRa_APRS lora_aprs;
|
||||
std::shared_ptr<APRSMessage> BeaconMsg;
|
||||
|
||||
volatile bool eth_connected = false;
|
||||
|
||||
String create_lat_aprs(double lat);
|
||||
String create_long_aprs(double lng);
|
||||
|
||||
#ifdef ETH_BOARD
|
||||
void setup_eth();
|
||||
#else
|
||||
void setup_wifi();
|
||||
#endif
|
||||
|
||||
void load_config();
|
||||
void setup_wifi();
|
||||
void setup_ota();
|
||||
|
|
@ -75,12 +84,19 @@ void setup()
|
|||
|
||||
delay(500);
|
||||
logPrintlnA("LoRa APRS iGate & Digi by OE5BPA (Peter Buchegger)");
|
||||
logPrintlnA("Version: 20.46.1");
|
||||
logPrintlnA("Version: 20.49.0");
|
||||
setup_display();
|
||||
show_display("OE5BPA", "LoRa APRS iGate & Digi", "by Peter Buchegger", "1.0.0-dev", 3000);
|
||||
show_display("OE5BPA", "LoRa APRS iGate & Digi", "by Peter Buchegger", "20.49.0", 3000);
|
||||
|
||||
load_config();
|
||||
setup_lora();
|
||||
#ifdef ETH_BOARD
|
||||
setup_eth();
|
||||
setup_ota();
|
||||
setup_ntp();
|
||||
setup_ftp();
|
||||
setup_aprs_is();
|
||||
#else
|
||||
if(Config.wifi.active)
|
||||
{
|
||||
setup_wifi();
|
||||
|
|
@ -95,6 +111,7 @@ void setup()
|
|||
btStop();
|
||||
}
|
||||
if(Config.aprs_is.active) setup_aprs_is();
|
||||
#endif
|
||||
setup_timer();
|
||||
|
||||
if(Config.display.overwritePin != 0)
|
||||
|
|
@ -158,7 +175,7 @@ void loop()
|
|||
}
|
||||
}
|
||||
|
||||
if(Config.wifi.active) ArduinoOTA.handle();
|
||||
if(Config.wifi.active || eth_connected) ArduinoOTA.handle();
|
||||
if(Config.wifi.active && WiFiMulti.run() != WL_CONNECTED)
|
||||
{
|
||||
setup_display(); secondsSinceDisplay = 0; display_is_on = true;
|
||||
|
|
@ -167,7 +184,7 @@ void loop()
|
|||
delay(1000);
|
||||
return;
|
||||
}
|
||||
if(Config.aprs_is.active && !aprs_is->connected())
|
||||
if((eth_connected && !aprs_is->connected()) || (Config.aprs_is.active && !aprs_is->connected()))
|
||||
{
|
||||
setup_display(); secondsSinceDisplay = 0; display_is_on = true;
|
||||
logPrintI("connecting to APRS-IS server: ");
|
||||
|
|
@ -309,6 +326,7 @@ void load_config()
|
|||
{}
|
||||
}
|
||||
|
||||
#ifndef ETH_BOARD
|
||||
if(Config.aprs_is.active && !Config.wifi.active)
|
||||
{
|
||||
logPrintlnE("You have to activate Wifi for APRS IS to work, please check your settings!");
|
||||
|
|
@ -316,6 +334,7 @@ void load_config()
|
|||
while (true)
|
||||
{}
|
||||
}
|
||||
#endif
|
||||
|
||||
if(KEY_BUILTIN != 0 && Config.display.overwritePin == 0)
|
||||
{
|
||||
|
|
@ -324,6 +343,63 @@ void load_config()
|
|||
logPrintlnI("Configuration loaded!");
|
||||
}
|
||||
|
||||
#ifdef ETH_BOARD
|
||||
void WiFiEvent(WiFiEvent_t event)
|
||||
{
|
||||
switch (event) {
|
||||
case SYSTEM_EVENT_ETH_START:
|
||||
logPrintlnI("ETH Started");
|
||||
ETH.setHostname("esp32-ethernet");
|
||||
break;
|
||||
case SYSTEM_EVENT_ETH_CONNECTED:
|
||||
logPrintlnI("ETH Connected");
|
||||
break;
|
||||
case SYSTEM_EVENT_ETH_GOT_IP:
|
||||
logPrintI("ETH MAC: ");
|
||||
logPrintI(ETH.macAddress());
|
||||
logPrintI(", IPv4: ");
|
||||
logPrintI(ETH.localIP().toString());
|
||||
if (ETH.fullDuplex()) {
|
||||
logPrintI(", FULL_DUPLEX");
|
||||
}
|
||||
logPrintI(", ");
|
||||
logPrintI(String(ETH.linkSpeed()));
|
||||
logPrintlnI("Mbps");
|
||||
eth_connected = true;
|
||||
break;
|
||||
case SYSTEM_EVENT_ETH_DISCONNECTED:
|
||||
logPrintlnW("ETH Disconnected");
|
||||
eth_connected = false;
|
||||
break;
|
||||
case SYSTEM_EVENT_ETH_STOP:
|
||||
logPrintlnW("ETH Stopped");
|
||||
eth_connected = false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void setup_eth()
|
||||
{
|
||||
WiFi.onEvent(WiFiEvent);
|
||||
|
||||
pinMode(NRST, OUTPUT);
|
||||
digitalWrite(NRST, 0);
|
||||
delay(200);
|
||||
digitalWrite(NRST, 1);
|
||||
delay(200);
|
||||
digitalWrite(NRST, 0);
|
||||
delay(200);
|
||||
digitalWrite(NRST, 1);
|
||||
|
||||
ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK);
|
||||
while(!eth_connected)
|
||||
{
|
||||
sleep(1);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void setup_wifi()
|
||||
{
|
||||
WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE);
|
||||
|
|
@ -346,6 +422,7 @@ void setup_wifi()
|
|||
logPrintlnD(WiFi.localIP().toString());
|
||||
show_display("INFO", "WiFi connected", "IP: ", WiFi.localIP().toString(), 2000);
|
||||
}
|
||||
#endif
|
||||
|
||||
void setup_ota()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,15 +7,10 @@
|
|||
#include "pins.h"
|
||||
#include "logger.h"
|
||||
|
||||
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RST);
|
||||
Adafruit_SSD1306 display(128, 64, &Wire);
|
||||
|
||||
void setup_display()
|
||||
{
|
||||
pinMode(OLED_RST, OUTPUT);
|
||||
digitalWrite(OLED_RST, LOW);
|
||||
delay(20);
|
||||
digitalWrite(OLED_RST, HIGH);
|
||||
|
||||
Wire.begin(OLED_SDA, OLED_SCL);
|
||||
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c, false, false))
|
||||
{
|
||||
|
|
|
|||
39
src/pins.h
39
src/pins.h
|
|
@ -6,36 +6,51 @@
|
|||
#undef OLED_RST
|
||||
|
||||
#if defined(HELTEC_WIFI_LORA_32_V1) || defined(HELTEC_WIFI_LORA_32_V2) || defined(TTGO_LORA32_V1)
|
||||
#define OLED_SDA 4
|
||||
#define OLED_SCL 15
|
||||
#define OLED_RST 16
|
||||
#define OLED_SDA 4
|
||||
#define OLED_SCL 15
|
||||
#endif
|
||||
|
||||
#if defined(TTGO_LORA32_V2) || defined(TTGO_T_Beam_V0_7) || defined(TTGO_T_Beam_V1_0)
|
||||
#define OLED_SDA 21
|
||||
#define OLED_SCL 22
|
||||
#define OLED_RST 16
|
||||
#define OLED_SDA 21
|
||||
#define OLED_SCL 22
|
||||
#endif
|
||||
|
||||
#ifdef TRACKERD
|
||||
#define OLED_SDA 5
|
||||
#define OLED_SCL 4
|
||||
#define OLED_RST 25
|
||||
#define OLED_SDA 5
|
||||
#define OLED_SCL 4
|
||||
#endif
|
||||
|
||||
#ifdef ETH_BOARD
|
||||
#define OLED_SDA 33
|
||||
#define OLED_SCL 32
|
||||
#define ETH_POWER_PIN -1
|
||||
#define ETH_TYPE ETH_PHY_LAN8720
|
||||
#define ETH_ADDR 0
|
||||
#define ETH_MDC_PIN 23
|
||||
#define ETH_MDIO_PIN 18
|
||||
#define NRST 5
|
||||
#endif
|
||||
|
||||
#ifdef ETH_BOARD_V1_0
|
||||
#define ETH_CLK ETH_CLOCK_GPIO17_OUT // TTGO PoE V1.0
|
||||
#endif
|
||||
|
||||
#ifdef ETH_BOARD_V1_2
|
||||
#define ETH_CLK ETH_CLOCK_GPIO0_OUT // TTGO PoE V1.2
|
||||
#endif
|
||||
|
||||
|
||||
#undef KEY_BUILTIN
|
||||
#if defined(TTGO_T_Beam_V0_7)
|
||||
#define KEY_BUILTIN 39
|
||||
#define KEY_BUILTIN 39
|
||||
#endif
|
||||
|
||||
#if defined(TTGO_T_Beam_V1_0)
|
||||
#define KEY_BUILTIN 38
|
||||
#define KEY_BUILTIN 38
|
||||
#endif
|
||||
|
||||
#ifndef KEY_BUILTIN
|
||||
#define KEY_BUILTIN 0
|
||||
#define KEY_BUILTIN 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue