From 657cfd7e398393fe33f950540914537a7d77163a Mon Sep 17 00:00:00 2001 From: Fabian Kaup Date: Thu, 21 Apr 2022 20:24:16 +0200 Subject: [PATCH 1/7] Adds additional boards: Gualtherius LoRaHam More information: https://gualtherius.de/product_info.php?products_id=8 --- lib/BoardFinder/BoardFinder.cpp | 18 ++++++++++-------- lib/BoardFinder/BoardFinder.h | 6 +++++- src/LoRa_APRS_iGate.cpp | 2 ++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/BoardFinder/BoardFinder.cpp b/lib/BoardFinder/BoardFinder.cpp index 2276da5..318e343 100644 --- a/lib/BoardFinder/BoardFinder.cpp +++ b/lib/BoardFinder/BoardFinder.cpp @@ -130,12 +130,14 @@ bool BoardFinder::checkPowerConfig(BoardConfig const *boardConfig, logging::Logg } // clang-format off -BoardConfig TTGO_LORA32_V1 ("TTGO_LORA32_V1", eTTGO_LORA32_V1, 4, 15, 0x3C, 0, 5, 19, 27, 18, 14, 26); -BoardConfig TTGO_LORA32_V2 ("TTGO_LORA32_V2", eTTGO_LORA32_V2, 21, 22, 0x3C, 0, 5, 19, 27, 18, 14, 26, true); -BoardConfig TTGO_T_Beam_V0_7 ("TTGO_T_Beam_V0_7", eTTGO_T_Beam_V0_7, 21, 22, 0x3C, 0, 5, 19, 27, 18, 14, 26, true); -BoardConfig TTGO_T_Beam_V1_0 ("TTGO_T_Beam_V1_0", eTTGO_T_Beam_V1_0, 21, 22, 0x3C, 0, 5, 19, 27, 18, 14, 26, true, true); -BoardConfig ETH_BOARD ("ETH_BOARD", eETH_BOARD, 33, 32, 0x3C, 0, 14, 2, 15, 12, 4, 36); -BoardConfig TRACKERD ("TRACKERD", eTRACKERD, 5, 4, 0x3C, 0, 18, 19, 23, 16, 14, 26); -BoardConfig HELTEC_WIFI_LORA_32_V1("HELTEC_WIFI_LORA_32_V1", eHELTEC_WIFI_LORA_32_V1, 4, 15, 0x3C, 16, 5, 19, 27, 18, 14, 26); -BoardConfig HELTEC_WIFI_LORA_32_V2("HELTEC_WIFI_LORA_32_V2", eHELTEC_WIFI_LORA_32_V2, 4, 15, 0x3C, 16, 5, 19, 27, 18, 14, 26); +BoardConfig TTGO_LORA32_V1 ("TTGO_LORA32_V1", eTTGO_LORA32_V1, 4, 15, 0x3C, 0, 5, 19, 27, 18, 14, 26); +BoardConfig TTGO_LORA32_V2 ("TTGO_LORA32_V2", eTTGO_LORA32_V2, 21, 22, 0x3C, 0, 5, 19, 27, 18, 14, 26, true); +BoardConfig TTGO_T_Beam_V0_7 ("TTGO_T_Beam_V0_7", eTTGO_T_Beam_V0_7, 21, 22, 0x3C, 0, 5, 19, 27, 18, 14, 26, true); +BoardConfig TTGO_T_Beam_V1_0 ("TTGO_T_Beam_V1_0", eTTGO_T_Beam_V1_0, 21, 22, 0x3C, 0, 5, 19, 27, 18, 14, 26, true, true); +BoardConfig ETH_BOARD ("ETH_BOARD", eETH_BOARD, 33, 32, 0x3C, 0, 14, 2, 15, 12, 4, 36); +BoardConfig TRACKERD ("TRACKERD", eTRACKERD, 5, 4, 0x3C, 0, 18, 19, 23, 16, 14, 26); +BoardConfig HELTEC_WIFI_LORA_32_V1("HELTEC_WIFI_LORA_32_V1", eHELTEC_WIFI_LORA_32_V1, 4, 15, 0x3C, 16, 5, 19, 27, 18, 14, 26); +BoardConfig HELTEC_WIFI_LORA_32_V2("HELTEC_WIFI_LORA_32_V2", eHELTEC_WIFI_LORA_32_V2, 4, 15, 0x3C, 16, 5, 19, 27, 18, 14, 26); +BoardConfig GUALTHERIUS_LORAHAM_v100("GUALTHERIUS_LORAHAM_v100", eGUALTHERIUS_LORAHAM_v100, 17, 16, 0x3C, 0, 18, 19, 23, 5, 13, 35); +BoardConfig GUALTHERIUS_LORAHAM_v106("GUALTHERIUS_LORAHAM_v106", eGUALTHERIUS_LORAHAM_v100, 17, 16, 0x3C, 0, 18, 19, 23, 2, 13, 35); // clang-format on diff --git a/lib/BoardFinder/BoardFinder.h b/lib/BoardFinder/BoardFinder.h index ef65881..c0bf6e5 100644 --- a/lib/BoardFinder/BoardFinder.h +++ b/lib/BoardFinder/BoardFinder.h @@ -19,7 +19,9 @@ enum BoardType eTTGO_T_Beam_V0_7, eTTGO_T_Beam_V1_0, eETH_BOARD, - eTRACKERD + eTRACKERD, + eGUALTHERIUS_LORAHAM_v100, + eGUALTHERIUS_LORAHAM_v106 }; class BoardConfig { @@ -69,5 +71,7 @@ extern BoardConfig ETH_BOARD; extern BoardConfig TRACKERD; extern BoardConfig HELTEC_WIFI_LORA_32_V1; extern BoardConfig HELTEC_WIFI_LORA_32_V2; +extern BoardConfig GUALTHERIUS_LORAHAM_v100; +extern BoardConfig GUALTHERIUS_LORAHAM_v106; #endif diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 58a6b65..db136a4 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -61,6 +61,8 @@ void setup() { boardConfigs.push_back(&TRACKERD); boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V1); boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V2); + boardConfigs.push_back(&GUALTHERIUS_LORAHAM_v100); + boardConfigs.push_back(&GUALTHERIUS_LORAHAM_v106); ProjectConfigurationManagement confmg(LoRaSystem.getLogger()); confmg.readConfiguration(LoRaSystem.getLogger(), userConfig); From 93324c64cfe1847e4a77c2df4e7bf2d37fc36413 Mon Sep 17 00:00:00 2001 From: Fabian Kaup Date: Sat, 23 Apr 2022 13:37:10 +0200 Subject: [PATCH 2/7] Uses GPIO to power OLED display defined in is-cfg.json as display -> pin_vcc display -> pin_gnd currently configured on main thread. Should probably be moved to display initialization. --- src/LoRa_APRS_iGate.cpp | 17 +++++++++++++++++ src/project_configuration.cpp | 4 ++++ src/project_configuration.h | 4 +++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index db136a4..465692d 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -100,6 +100,15 @@ void setup() { LoRaSystem.setBoardConfig(boardConfig); LoRaSystem.setUserConfig(&userConfig); + + if (userConfig.display.vccPin != 0 && userConfig.display.gndPin != 0) { + pinMode(userConfig.display.vccPin, OUTPUT); + digitalWrite(userConfig.display.vccPin, HIGH); + pinMode(userConfig.display.gndPin, OUTPUT); + digitalWrite(userConfig.display.gndPin, LOW); + LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, MODULE_NAME, "Using GPIO to power display: VCC %d , GND %d", userConfig.display.vccPin, userConfig.display.gndPin); + } + LoRaSystem.getTaskManager().addTask(&displayTask); LoRaSystem.getTaskManager().addTask(&modemTask); LoRaSystem.getTaskManager().addTask(&routerTask); @@ -145,6 +154,14 @@ void setup() { pinMode(userConfig.display.overwritePin, INPUT_PULLUP); } + if (userConfig.display.vccPin != 0 && userConfig.display.gndPin != 0) { + pinMode(userConfig.display.vccPin, OUTPUT); + digitalWrite(userConfig.display.vccPin, HIGH); + pinMode(userConfig.display.gndPin, OUTPUT); + digitalWrite(userConfig.display.gndPin, LOW); + LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, MODULE_NAME, "Using GPIO to power display: VCC %d , GND %d", userConfig.display.vccPin, userConfig.display.gndPin); + } + delay(5000); LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_INFO, MODULE_NAME, "setup done..."); } diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 6deebf5..92e6d43 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -62,6 +62,8 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.display.alwaysOn = data["display"]["always_on"] | true; conf.display.timeout = data["display"]["timeout"] | 10; conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; + conf.display.vccPin = data["display"]["pin_vcc"] | 0; + conf.display.gndPin = data["display"]["pin_gnd"] | 0; conf.display.turn180 = data["display"]["turn180"] | true; conf.ftp.active = data["ftp"]["active"] | false; @@ -140,6 +142,8 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["display"]["always_on"] = conf.display.alwaysOn; data["display"]["timeout"] = conf.display.timeout; data["display"]["overwrite_pin"] = conf.display.overwritePin; + data["display"]["pin_vcc"] = conf.display.vccPin; + data["display"]["pin_gnd"] = conf.display.gndPin; data["display"]["turn180"] = conf.display.turn180; data["ftp"]["active"] = conf.ftp.active; JsonArray users = data["ftp"].createNestedArray("user"); diff --git a/src/project_configuration.h b/src/project_configuration.h index 234a83a..de64c60 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -94,12 +94,14 @@ public: class Display { public: - Display() : alwaysOn(true), timeout(10), overwritePin(0), turn180(true) { + Display() : alwaysOn(true), timeout(10), overwritePin(0), vccPin(0), gndPin(0), turn180(true) { } bool alwaysOn; int timeout; int overwritePin; + int vccPin; + int gndPin; bool turn180; }; From e50c6c2579daedc8371be220b134ef5bfac5f489 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Wed, 16 Nov 2022 21:49:11 +0100 Subject: [PATCH 3/7] Update LoRa_APRS_iGate.cpp --- src/LoRa_APRS_iGate.cpp | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 4b8cf97..d89c3f0 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -107,14 +107,6 @@ void setup() { LoRaSystem.setBoardConfig(boardConfig); LoRaSystem.setUserConfig(&userConfig); - if (userConfig.display.vccPin != 0 && userConfig.display.gndPin != 0) { - pinMode(userConfig.display.vccPin, OUTPUT); - digitalWrite(userConfig.display.vccPin, HIGH); - pinMode(userConfig.display.gndPin, OUTPUT); - digitalWrite(userConfig.display.gndPin, LOW); - LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, MODULE_NAME, "Using GPIO to power display: VCC %d , GND %d", userConfig.display.vccPin, userConfig.display.gndPin); - } - LoRaSystem.getTaskManager().addTask(&displayTask); LoRaSystem.getTaskManager().addTask(&modemTask); LoRaSystem.getTaskManager().addTask(&routerTask); @@ -169,14 +161,6 @@ void setup() { pinMode(userConfig.display.overwritePin, INPUT_PULLUP); } - if (userConfig.display.vccPin != 0 && userConfig.display.gndPin != 0) { - pinMode(userConfig.display.vccPin, OUTPUT); - digitalWrite(userConfig.display.vccPin, HIGH); - pinMode(userConfig.display.gndPin, OUTPUT); - digitalWrite(userConfig.display.gndPin, LOW); - LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, MODULE_NAME, "Using GPIO to power display: VCC %d , GND %d", userConfig.display.vccPin, userConfig.display.gndPin); - } - delay(5000); LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_INFO, MODULE_NAME, "setup done..."); } From 61875ad3ac68fdf0982ed19efb36f0326f93d353 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Wed, 16 Nov 2022 21:49:48 +0100 Subject: [PATCH 4/7] Update LoRa_APRS_iGate.cpp --- src/LoRa_APRS_iGate.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index d89c3f0..e688ea6 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -106,7 +106,6 @@ void setup() { LoRaSystem.setBoardConfig(boardConfig); LoRaSystem.setUserConfig(&userConfig); - LoRaSystem.getTaskManager().addTask(&displayTask); LoRaSystem.getTaskManager().addTask(&modemTask); LoRaSystem.getTaskManager().addTask(&routerTask); From d0b94787fc8e4f4f92f5c322dd5df22c807c3c0c Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Wed, 16 Nov 2022 21:50:33 +0100 Subject: [PATCH 5/7] Update project_configuration.cpp --- src/project_configuration.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 3dc30e1..02e5acb 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -68,8 +68,6 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.display.alwaysOn = data["display"]["always_on"] | true; conf.display.timeout = data["display"]["timeout"] | 10; conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; - conf.display.vccPin = data["display"]["pin_vcc"] | 0; - conf.display.gndPin = data["display"]["pin_gnd"] | 0; conf.display.turn180 = data["display"]["turn180"] | true; conf.ftp.active = data["ftp"]["active"] | false; @@ -155,8 +153,6 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["display"]["always_on"] = conf.display.alwaysOn; data["display"]["timeout"] = conf.display.timeout; data["display"]["overwrite_pin"] = conf.display.overwritePin; - data["display"]["pin_vcc"] = conf.display.vccPin; - data["display"]["pin_gnd"] = conf.display.gndPin; data["display"]["turn180"] = conf.display.turn180; data["ftp"]["active"] = conf.ftp.active; JsonArray users = data["ftp"].createNestedArray("user"); From d147c7a64cacefb31718024435ab53158623598c Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Wed, 16 Nov 2022 21:51:00 +0100 Subject: [PATCH 6/7] Update project_configuration.h --- src/project_configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/project_configuration.h b/src/project_configuration.h index c5ca4fd..3f3cdbb 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -95,7 +95,7 @@ public: class Display { public: - Display() : alwaysOn(true), timeout(10), overwritePin(0), vccPin(0), gndPin(0), turn180(true) { + Display() : alwaysOn(true), timeout(10), overwritePin(0), turn180(true) { } bool alwaysOn; From f1d654455c84b73ed7d760f22e941a4498025771 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Wed, 16 Nov 2022 21:51:29 +0100 Subject: [PATCH 7/7] Update project_configuration.h --- src/project_configuration.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/project_configuration.h b/src/project_configuration.h index 3f3cdbb..e32a17a 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -101,8 +101,6 @@ public: bool alwaysOn; int timeout; int overwritePin; - int vccPin; - int gndPin; bool turn180; };