From 1f4a81360b72e6b6a4714065dbbc4754b445081f Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Fri, 7 Mar 2025 12:00:11 +1100 Subject: [PATCH 1/4] * companion: new command: CMD_GET_CONTACT_BY_KEY (30) --- examples/companion_radio/main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index 7f12d308..be2fed28 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -156,6 +156,7 @@ static uint32_t _atoi(const char* sp) { #define CMD_SEND_STATUS_REQ 27 #define CMD_HAS_CONNECTION 28 #define CMD_LOGOUT 29 // 'Disconnect' +#define CMD_GET_CONTACT_BY_KEY 30 #define RESP_CODE_OK 0 #define RESP_CODE_ERR 1 @@ -955,6 +956,14 @@ public: } else { writeErrFrame(); // not found, or unable to send } + } else if (cmd_frame[0] == CMD_GET_CONTACT_BY_KEY) { + uint8_t* pub_key = &cmd_frame[1]; + ContactInfo* contact = lookupContactByPubKey(pub_key, PUB_KEY_SIZE); + if (contact) { + writeContactRespFrame(RESP_CODE_CONTACT, *contact); + } else { + writeErrFrame(); // not found + } } else if (cmd_frame[0] == CMD_EXPORT_CONTACT) { if (len < 1 + PUB_KEY_SIZE) { // export SELF From cf170915881f50150a309691898f2682d779a842 Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Fri, 7 Mar 2025 17:19:27 +1100 Subject: [PATCH 2/4] * display.begin() delayed in setup(). * all firmwares now bumped to v1.2.0 --- examples/companion_radio/main.cpp | 9 +++------ examples/simple_repeater/main.cpp | 9 +++------ examples/simple_room_server/main.cpp | 9 +++------ src/helpers/ui/SSD1306Display.cpp | 2 +- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index be2fed28..0a25f23a 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -120,11 +120,11 @@ static uint32_t _atoi(const char* sp) { #define FIRMWARE_VER_CODE 2 #ifndef FIRMWARE_BUILD_DATE - #define FIRMWARE_BUILD_DATE "3 Mar 2025" + #define FIRMWARE_BUILD_DATE "7 Mar 2025" #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.0.0" + #define FIRMWARE_VERSION "v1.2.0" #endif #define CMD_APP_START 1 @@ -1239,10 +1239,6 @@ void setup() { float tcxo = 1.6f; #endif -#ifdef DISPLAY_CLASS - display.begin(); -#endif - #if defined(NRF52_PLATFORM) SPI.setPins(P_LORA_MISO, P_LORA_SCLK, P_LORA_MOSI); SPI.begin(); @@ -1303,6 +1299,7 @@ void setup() { #endif #ifdef DISPLAY_CLASS + display.begin(); ui_task.begin(the_mesh.getNodeName(), FIRMWARE_BUILD_DATE, the_mesh.getBLEPin()); #endif } diff --git a/examples/simple_repeater/main.cpp b/examples/simple_repeater/main.cpp index a5f06c1d..d41fd3e7 100644 --- a/examples/simple_repeater/main.cpp +++ b/examples/simple_repeater/main.cpp @@ -22,11 +22,11 @@ /* ------------------------------ Config -------------------------------- */ #ifndef FIRMWARE_BUILD_DATE - #define FIRMWARE_BUILD_DATE "3 Mar 2025" + #define FIRMWARE_BUILD_DATE "7 Mar 2025" #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.0.0" + #define FIRMWARE_VERSION "v1.2.0" #endif #ifndef LORA_FREQ @@ -662,10 +662,6 @@ void setup() { float tcxo = 1.6f; #endif -#ifdef DISPLAY_CLASS - display.begin(); -#endif - #if defined(NRF52_PLATFORM) SPI.setPins(P_LORA_MISO, P_LORA_SCLK, P_LORA_MOSI); SPI.begin(); @@ -719,6 +715,7 @@ void setup() { the_mesh.begin(fs); #ifdef DISPLAY_CLASS + display.begin(); ui_task.begin(the_mesh.getNodeName(), FIRMWARE_BUILD_DATE); #endif diff --git a/examples/simple_room_server/main.cpp b/examples/simple_room_server/main.cpp index 04266e11..51e9ab3f 100644 --- a/examples/simple_room_server/main.cpp +++ b/examples/simple_room_server/main.cpp @@ -22,11 +22,11 @@ /* ------------------------------ Config -------------------------------- */ #ifndef FIRMWARE_BUILD_DATE - #define FIRMWARE_BUILD_DATE "6 Mar 2025" + #define FIRMWARE_BUILD_DATE "7 Mar 2025" #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.1.0" + #define FIRMWARE_VERSION "v1.2.0" #endif #ifndef LORA_FREQ @@ -716,10 +716,6 @@ void setup() { float tcxo = 1.6f; #endif -#ifdef DISPLAY_CLASS - display.begin(); -#endif - #if defined(NRF52_PLATFORM) SPI.setPins(P_LORA_MISO, P_LORA_SCLK, P_LORA_MOSI); SPI.begin(); @@ -772,6 +768,7 @@ void setup() { the_mesh.begin(fs); #ifdef DISPLAY_CLASS + display.begin(); ui_task.begin(the_mesh.getNodeName(), FIRMWARE_BUILD_DATE); #endif diff --git a/src/helpers/ui/SSD1306Display.cpp b/src/helpers/ui/SSD1306Display.cpp index 84db7d13..fe5be0ca 100644 --- a/src/helpers/ui/SSD1306Display.cpp +++ b/src/helpers/ui/SSD1306Display.cpp @@ -1,7 +1,7 @@ #include "SSD1306Display.h" bool SSD1306Display::begin() { - return display.begin(SSD1306_SWITCHCAPVCC, DISPLAY_ADDRESS); + return display.begin(SSD1306_SWITCHCAPVCC, DISPLAY_ADDRESS, true, false); } void SSD1306Display::turnOn() { From ae8fb5d9b148fc963eecab0765e54622c41610fb Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Fri, 7 Mar 2025 21:37:05 +1100 Subject: [PATCH 3/4] * Heltec v3.2 VEXT fix * Heltec T114 LED fix, (now flashes with LoRa TX) --- platformio.ini | 1 + src/helpers/HeltecV3Board.h | 3 ++- src/helpers/nrf52/T114Board.cpp | 5 +++++ src/helpers/nrf52/T114Board.h | 9 +++++++++ variants/t114/variant.cpp | 2 -- 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/platformio.ini b/platformio.ini index 631e78e5..e9a615d4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -688,6 +688,7 @@ board_build.ldscript = boards/nrf52840_s140_v6.ld build_flags = ${nrf52840_t114.build_flags} -Ivariants/t114 -DHELTEC_T114 + -D P_LORA_TX_LED=35 -D RADIO_CLASS=CustomSX1262 -D WRAPPER_CLASS=CustomSX1262Wrapper -D LORA_TX_POWER=22 diff --git a/src/helpers/HeltecV3Board.h b/src/helpers/HeltecV3Board.h index ce742efa..927d537e 100644 --- a/src/helpers/HeltecV3Board.h +++ b/src/helpers/HeltecV3Board.h @@ -29,7 +29,8 @@ public: ESP32Board::begin(); pinMode(PIN_ADC_CTRL, OUTPUT); - //pinMode(PIN_VEXT_EN, OUTPUT); + pinMode(PIN_VEXT_EN, OUTPUT); + digitalWrite(PIN_VEXT_EN, LOW); // for V3.2 boards esp_reset_reason_t reason = esp_reset_reason(); if (reason == ESP_RST_DEEPSLEEP) { diff --git a/src/helpers/nrf52/T114Board.cpp b/src/helpers/nrf52/T114Board.cpp index 4171bf34..d3d93999 100644 --- a/src/helpers/nrf52/T114Board.cpp +++ b/src/helpers/nrf52/T114Board.cpp @@ -32,6 +32,11 @@ void T114Board::begin() { Wire.begin(); #endif +#ifdef P_LORA_TX_LED + pinMode(P_LORA_TX_LED, OUTPUT); + digitalWrite(P_LORA_TX_LED, HIGH); +#endif + pinMode(SX126X_POWER_EN, OUTPUT); digitalWrite(SX126X_POWER_EN, HIGH); delay(10); // give sx1262 some time to power up diff --git a/src/helpers/nrf52/T114Board.h b/src/helpers/nrf52/T114Board.h index 47dde5c2..35056592 100644 --- a/src/helpers/nrf52/T114Board.h +++ b/src/helpers/nrf52/T114Board.h @@ -28,6 +28,15 @@ public: void begin(); uint8_t getStartupReason() const override { return startup_reason; } +#if defined(P_LORA_TX_LED) + void onBeforeTransmit() override { + digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on + } + void onAfterTransmit() override { + digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off + } +#endif + #define BATTERY_SAMPLES 8 uint16_t getBattMilliVolts() override { diff --git a/variants/t114/variant.cpp b/variants/t114/variant.cpp index 8387e038..4d07d1ae 100644 --- a/variants/t114/variant.cpp +++ b/variants/t114/variant.cpp @@ -11,6 +11,4 @@ const uint32_t g_ADigitalPinMap[] = { void initVariant() { - pinMode(LED_BUILTIN, OUTPUT); - ledOff(LED_BUILTIN); } From 808d3933c15d14751c58ff97ad1e9ceefe7799de Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Fri, 7 Mar 2025 22:01:30 +1100 Subject: [PATCH 4/4] Version bump to v1.2.1 --- examples/companion_radio/main.cpp | 2 +- examples/simple_repeater/main.cpp | 2 +- examples/simple_room_server/main.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index 0a25f23a..5cfeac60 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -124,7 +124,7 @@ static uint32_t _atoi(const char* sp) { #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.2.0" + #define FIRMWARE_VERSION "v1.2.1" #endif #define CMD_APP_START 1 diff --git a/examples/simple_repeater/main.cpp b/examples/simple_repeater/main.cpp index d41fd3e7..2cdf074a 100644 --- a/examples/simple_repeater/main.cpp +++ b/examples/simple_repeater/main.cpp @@ -26,7 +26,7 @@ #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.2.0" + #define FIRMWARE_VERSION "v1.2.1" #endif #ifndef LORA_FREQ diff --git a/examples/simple_room_server/main.cpp b/examples/simple_room_server/main.cpp index 51e9ab3f..56ad2c42 100644 --- a/examples/simple_room_server/main.cpp +++ b/examples/simple_room_server/main.cpp @@ -26,7 +26,7 @@ #endif #ifndef FIRMWARE_VERSION - #define FIRMWARE_VERSION "v1.2.0" + #define FIRMWARE_VERSION "v1.2.1" #endif #ifndef LORA_FREQ