fix(l2): a dot per DM send, lists that notice every change, the LED lit only on TX

- A pending DM shows a dot per send, as on the L1. The thread is read from
  the SD archive, which a resend never updated: it does now, and the
  thread's signature and patch state count the attempt.
- Nearby redraws when a node goes live, changes type or the units change;
  the scan popup when a name or the remote SNR arrives.
- The user LED is active high: it was lit all the time and went dark
  while transmitting.
- Sim hooks "dm" and "send" for testing a DM thread.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-08 14:32:54 +02:00
co-authored by Claude Opus 5.5
parent 8324d0c6d1
commit 38925dde65
5 changed files with 34 additions and 11 deletions
@@ -77,8 +77,9 @@ bool WioTrackerL2Board::initExpander() {
expSetOutput(EXP_PIN_GNSS_RST, HIGH);
delay(10);
expWritePin(EXP_PIN_GNSS_RST, LOW);
// user LED is driven active-low through the expander; idle level HIGH = off
expSetOutput(EXP_PIN_USER_LED, HIGH);
// user LED: lit while the pin is HIGH (it read as active-low before, and
// stayed lit except while transmitting); idle LOW = off
expSetOutput(EXP_PIN_USER_LED, LOW);
delay(10);
expSetOutput(EXP_PIN_GROVE_EN, HIGH);
delay(10);
@@ -194,9 +195,8 @@ void WioTrackerL2Board::begin() {
}
void WioTrackerL2Board::setLed(bool on) {
// active low: HIGH = off
if (expander_ok) {
expWritePin(EXP_PIN_USER_LED, !on);
expWritePin(EXP_PIN_USER_LED, on);
}
}
+1 -1
View File
@@ -30,7 +30,7 @@
#define EXP_PIN_GROVE_EN 7 // output - Grove port power
#define EXP_PIN_TP_RST 8 // output - touch panel reset
#define EXP_PIN_GNSS_RST 9 // output - GNSS reset (active HIGH)
#define EXP_PIN_USER_LED 10 // output - mesh/user LED (active low)
#define EXP_PIN_USER_LED 10 // output - mesh/user LED (active high; also GNSS wakeup)
#define EXP_PIN_OTG_EN 11 // output - USB OTG power
#define EXP_PIN_PA_EN 12 // output - speaker amp power
#define EXP_PIN_GNSS_EN 13 // output - GNSS power