- CPU sleep: board.sleep(0) in main loop puts NRF52 into WFE/sd_app_evt_wait
between iterations; wakes on any interrupt (radio, BLE, timer). Largest
power saving of the three changes.
- VBAT_ENABLE gating: voltage divider now powered only during ADC read
(HIGH for 10ms, then LOW). Previously stayed HIGH continuously.
Fixed in both variant.cpp (init) and WioTrackerL1Board::getBattMilliVolts().
- LED off with display: PIN_LED is cleared when auto-off triggers and
restored (handed back to userLedHandler) when display wakes. Avoids
idle LED current draw during screen-off periods.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Builds and releases only the _settings companion firmware variants
(USB and BLE) which contain the settings screen with display brightness,
buzzer, TX power, auto-off, GPS interval, timezone, low battery threshold,
and battery display mode.
Triggers on tags matching 'wio-tracker-*' (e.g. wio-tracker-v1.0.0)
or manually via workflow_dispatch. Creates a draft GitHub release.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds suffix matching for WioTrackerL1 _settings builds (with settings screen)
so they are picked up automatically by the companion firmware build workflow.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add a new command `region bulk` for defining region hierarchies in a single line. This command allows users to create multiple regions in a single message. Updated the documentation to include usage examples and detailed parameter descriptions.
some older ESP32 boards were pushing the limits of the dram segment causing the linker to fail, especially for ble and wifi firmwares.
lowering OFFLINE_QUEUE_SIZE reduces dram usage
This slipped through in PR #2327 and I noticed because the TechoBoard.h
for my variant doesn't include the Wire header, so the source file
in question does not coincidentally obtain a copy.
The `::init` method in the Adafruit ST7789 library is responsible to
initialize the device. This includes performing a reset, which can be
found in the Adafruit source for `Adafruit_SPITFT`.
Before this change, MeshCore performed its own ST7789 display reset
sequence, which consisted of three steps.
* Pull reset low
* Wait 10ms
* Pull reset high
Importantly, there was no fixed delay after pulling reset high. The
ST7789 driver requires a delay (T<sub>RT</sub>) of 5ms in Sleep In Mode
and 120ms in Sleep Out Mode before it will properly receive commands.
When `Adafruit_SPITFT` resets the device after MeshCore has already
reset it, the mandatory time may not have elapsed, leading to strange
behavior. In the author's case, this issue caused the initial
`fillScreen` to fail, such that the display showed an uninitialized
framebuffer.
This removes the MeshCore delay, leaving the responsibility of reset to
`Adafruit_SPITFT`, where they have the correct delays in place with
extra safety margin. The change was briefly tested by Josiah VanderZee
and Ben Zignego on a custom hardware build using an nRF52840 Dongle and
an Adafruit 4311 TFT display. The user button seemed to behave
strangely, but the display looked correct.