From dfec6d3483432159c34d734ad1d31b60f3e6b28b Mon Sep 17 00:00:00 2001 From: Florent Date: Fri, 28 Nov 2025 09:57:58 +0100 Subject: [PATCH] thinknode_m5: tx_led --- variants/thinknode_m5/ThinknodeM5Board.cpp | 16 ++++++++++------ variants/thinknode_m5/ThinknodeM5Board.h | 9 +++++++++ variants/thinknode_m5/platformio.ini | 4 ++-- variants/thinknode_m5/target.cpp | 8 ++------ variants/thinknode_m5/target.h | 2 -- variants/thinknode_m5/variant.h | 3 ++- 6 files changed, 25 insertions(+), 17 deletions(-) diff --git a/variants/thinknode_m5/ThinknodeM5Board.cpp b/variants/thinknode_m5/ThinknodeM5Board.cpp index 2aabb0e4..f178caad 100644 --- a/variants/thinknode_m5/ThinknodeM5Board.cpp +++ b/variants/thinknode_m5/ThinknodeM5Board.cpp @@ -1,14 +1,18 @@ #include "ThinknodeM5Board.h" +PCA9557 expander (0x18, &Wire1); void ThinknodeM5Board::begin() { - pinMode(PIN_VEXT_EN, OUTPUT); - digitalWrite(PIN_VEXT_EN, !PIN_VEXT_EN_ACTIVE); // force power cycle - delay(20); // allow power rail to discharge - digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // turn backlight back on - delay(120); // give display time to bias on cold boot + // Start expander + Wire1.begin(48, 47); + expander.pinMode(EXP_PIN_POWER, OUTPUT); // eink + expander.pinMode(EXP_PIN_BACKLIGHT, OUTPUT); // peripherals + expander.pinMode(EXP_PIN_LED, OUTPUT); // peripherals + expander.digitalWrite(EXP_PIN_POWER, HIGH); + expander.digitalWrite(EXP_PIN_BACKLIGHT, LOW); + expander.digitalWrite(EXP_PIN_LED, LOW); + ESP32Board::begin(); - // pinMode(PIN_STATUS_LED, OUTPUT); // init power led } void ThinknodeM5Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) { diff --git a/variants/thinknode_m5/ThinknodeM5Board.h b/variants/thinknode_m5/ThinknodeM5Board.h index 58a3ae30..3c120027 100644 --- a/variants/thinknode_m5/ThinknodeM5Board.h +++ b/variants/thinknode_m5/ThinknodeM5Board.h @@ -4,6 +4,9 @@ #include #include #include +#include + +extern PCA9557 expander; class ThinknodeM5Board : public ESP32Board { @@ -15,4 +18,10 @@ public: uint16_t getBattMilliVolts() override; const char* getManufacturerName() const override ; + void onBeforeTransmit() override { + expander.digitalWrite(EXP_PIN_LED, HIGH); // turn TX LED on + } + void onAfterTransmit() override { + expander.digitalWrite(EXP_PIN_LED, LOW); // turn TX LED off + } }; \ No newline at end of file diff --git a/variants/thinknode_m5/platformio.ini b/variants/thinknode_m5/platformio.ini index a78b1ba2..11f56377 100644 --- a/variants/thinknode_m5/platformio.ini +++ b/variants/thinknode_m5/platformio.ini @@ -6,11 +6,10 @@ build_flags = ${esp32_base.build_flags} -D THINKNODE_M5 -D GPS_RX=19 -D GPS_TX=20 - -D PIN_VEXT_EN=46 -D PIN_BUZZER=9 - -D PIN_VEXT_EN_ACTIVE=HIGH -D PIN_BOARD_SCL=1 -D PIN_BOARD_SDA=2 + -D P_LORA_EN=46 -D P_LORA_DIO_1=4 -D P_LORA_NSS=17 -D P_LORA_RESET=6 ; RADIOLIB_NC @@ -19,6 +18,7 @@ build_flags = ${esp32_base.build_flags} -D P_LORA_MISO=7 -D P_LORA_MOSI=15 -D PIN_USER_BTN=21 + -D EXP_PIN_LED=1 # -D PIN_STATUS_LED=1 ; leds are on PCA !!! # -D LED_STATE_ON=HIGH # -D PIN_LED=3 diff --git a/variants/thinknode_m5/target.cpp b/variants/thinknode_m5/target.cpp index 2c388b58..fdc5ca7a 100644 --- a/variants/thinknode_m5/target.cpp +++ b/variants/thinknode_m5/target.cpp @@ -15,7 +15,6 @@ WRAPPER_CLASS radio_driver(radio, board); ESP32RTCClock fallback_clock; AutoDiscoverRTCClock rtc_clock(fallback_clock); SensorManager sensors; -PCA9557 expander (0x18, &Wire1); #ifdef DISPLAY_CLASS DISPLAY_CLASS display; @@ -27,11 +26,8 @@ bool radio_init() { rtc_clock.begin(Wire); // pinMode(21, INPUT); // pinMode(48, OUTPUT); - Wire1.begin(48, 47); - expander.pinMode(4, OUTPUT); // eink - expander.pinMode(5, OUTPUT); // peripherals - expander.digitalWrite(4, HIGH); - expander.digitalWrite(5, HIGH); + pinMode(P_LORA_EN, OUTPUT); + digitalWrite(P_LORA_EN, HIGH); #if defined(P_LORA_SCLK) spi.begin(P_LORA_SCLK, P_LORA_MISO, P_LORA_MOSI); return radio.std_init(&spi); diff --git a/variants/thinknode_m5/target.h b/variants/thinknode_m5/target.h index 7fa749f8..c3584a70 100644 --- a/variants/thinknode_m5/target.h +++ b/variants/thinknode_m5/target.h @@ -12,8 +12,6 @@ #include #include #endif -#include -#include extern ThinknodeM5Board board; extern WRAPPER_CLASS radio_driver; diff --git a/variants/thinknode_m5/variant.h b/variants/thinknode_m5/variant.h index d312fcbf..7ee5f5cc 100644 --- a/variants/thinknode_m5/variant.h +++ b/variants/thinknode_m5/variant.h @@ -18,4 +18,5 @@ #define PIN_DISPLAY_DC (40) #define PIN_DISPLAY_RST (41) #define PIN_DISPLAY_BUSY (42) -//#define DISP_BACKLIGHT (5) \ No newline at end of file +#define EXP_PIN_BACKLIGHT (5) +#define EXP_PIN_POWER (4) \ No newline at end of file