Merge pull request #28 from lora-aprs/release/20.49.0

Release/20.49.0
This commit is contained in:
Peter Buchegger 2020-12-06 22:08:26 +01:00 committed by GitHub
commit 81b4734e5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 135 additions and 22 deletions

View file

@ -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

View file

@ -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

View file

@ -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()
{

View file

@ -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))
{

View file

@ -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