From 8e1b31d95a2f05e9e85c36e7fc94792ddebe2709 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Thu, 3 Dec 2020 23:09:29 +0100 Subject: [PATCH] working now, but not nice implemented --- platformio.ini | 8 +++++-- src/LoRa_APRS_iGate.cpp | 34 ++++++++++++++++------------- src/display.cpp | 7 +----- src/pins.h | 47 +++++++++++++++++++++-------------------- 4 files changed, 50 insertions(+), 46 deletions(-) diff --git a/platformio.ini b/platformio.ini index d540f77..d03274d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -50,6 +50,10 @@ build_flags = -Werror -Wall -DTTGO_T_Beam_V0_7 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] +[env:ttgo-poe-v1_0] board = esp32doit-devkit-v1 -build_flags = -Werror -Wall -DETH_BOARD -DLORA_SCK=14 -DLORA_MISO=2 -DLORA_MOSI=15 -DLORA_CS=12 -DLORA_RST=4 -DLORA_IRQ=36 +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 diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index d60be06..14091b8 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -90,6 +90,7 @@ void setup() setup_ota(); setup_ntp(); setup_ftp(); + setup_aprs_is(); #else if(Config.wifi.active) { @@ -104,8 +105,8 @@ void setup() WiFi.mode(WIFI_OFF); btStop(); } -#endif if(Config.aprs_is.active) setup_aprs_is(); +#endif setup_timer(); if(Config.display.overwritePin != 0) @@ -178,7 +179,7 @@ void loop() delay(1000); return; } - if(eth_connected || (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: "); @@ -364,32 +365,31 @@ void WiFiEvent(WiFiEvent_t event) { switch (event) { case SYSTEM_EVENT_ETH_START: - Serial.println("ETH Started"); - //set eth hostname here + logPrintlnI("ETH Started"); ETH.setHostname("esp32-ethernet"); break; case SYSTEM_EVENT_ETH_CONNECTED: - Serial.println("ETH Connected"); + logPrintlnI("ETH Connected"); break; case SYSTEM_EVENT_ETH_GOT_IP: - Serial.print("ETH MAC: "); - Serial.print(ETH.macAddress()); - Serial.print(", IPv4: "); - Serial.print(ETH.localIP()); + logPrintI("ETH MAC: "); + logPrintI(ETH.macAddress()); + logPrintI(", IPv4: "); + logPrintI(ETH.localIP().toString()); if (ETH.fullDuplex()) { - Serial.print(", FULL_DUPLEX"); + logPrintI(", FULL_DUPLEX"); } - Serial.print(", "); - Serial.print(ETH.linkSpeed()); - Serial.println("Mbps"); + logPrintI(", "); + logPrintI(String(ETH.linkSpeed())); + logPrintlnI("Mbps"); eth_connected = true; break; case SYSTEM_EVENT_ETH_DISCONNECTED: - Serial.println("ETH Disconnected"); + logPrintlnW("ETH Disconnected"); eth_connected = false; break; case SYSTEM_EVENT_ETH_STOP: - Serial.println("ETH Stopped"); + logPrintlnW("ETH Stopped"); eth_connected = false; break; default: @@ -411,6 +411,10 @@ void setup_eth() 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); + } } void setup_ota() diff --git a/src/display.cpp b/src/display.cpp index f8a69c0..292b63e 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -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)) { diff --git a/src/pins.h b/src/pins.h index 42eb2a2..4c764cb 100644 --- a/src/pins.h +++ b/src/pins.h @@ -6,50 +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 OLED_RST 5 -//#define ETH_CLK ETH_CLOCK_GPIO0_OUT // TTGO PoE V1.2 -#define ETH_CLK ETH_CLOCK_GPIO17_OUT // TTGO PoE V1.0 -#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 + #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