Commit Graph

3435 Commits

Author SHA1 Message Date
Jakub
4d46abb2c1 feat(wio-tracker-l1): energy optimizations
- 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>
2026-05-13 21:09:46 +02:00
Jakub
e445c0a325 docs: add Wio Tracker L1 feature documentation 2026-05-13 21:09:46 +02:00
Jakub
639183d101 ci: add Wio Tracker L1 firmware build and release workflow
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>
2026-05-13 21:09:46 +02:00
Jakub
6c8a2cbdea build: include _settings companion firmware variants in release builds
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>
2026-05-13 21:09:46 +02:00
Jakub
c3846ba9f5 feat(wio-tracker-l1): add settings screen and companion radio improvements
Settings screen (UI_HAS_JOYSTICK_UPDOWN build variant):
- Display brightness (5 levels, contrast curve tuned for SH1106 non-linearity)
- Buzzer on/off (respected at startup, no more forced unmute)
- TX power (2–22 dBm)
- Auto-off delay (5s / 15s / 30s / 60s / never)
- GPS update interval (off / 30s / 1min / 5min / 15min / 30min)
- Timezone offset (UTC-12..+14) for clock screen
- Low battery auto-shutdown threshold (off / 3.0–3.5V, default 3.4V)
- Battery display mode (icon / % / voltage)

Battery:
- EMA filter (alpha=0.2) on ADC readings to smooth voltage spikes from uneven load
- Battery % calculated using low_batt_mv as 0% anchor
- Mute icon repositions dynamically based on battery display width

Clock screen on HomeScreen showing time/date with timezone support.

Build:
- _settings variants added for USB and BLE companion radio builds
- Automatic UF2 generation on every build via create-uf2.py post-script
- UI_HAS_JOYSTICK_UPDOWN flag guards joystick_up/down to avoid breaking other boards

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 21:09:46 +02:00
Liam Cottle
555745700e Merge pull request #2543 from meshcore-dev/cmd-send-raw
new CMD_SEND_RAW_PACKET
2026-05-13 22:10:52 +12:00
Scott Powell
c588540b1b * new CMD_SEND_RAW_PACKET 2026-05-13 13:28:56 +10:00
Liam Cottle
910b1bee5b Merge pull request #2541 from AI7NC/patch-2
Update cli_commands.md to include 'ver'
2026-05-13 14:43:10 +12:00
AI7NC
16cb6d518f Update cli_commands.md to include 'ver'
Include the 'ver' command for retrieving the firmware version
2026-05-12 12:42:33 -07:00
agessaman
19f950018c Add bulk region hierarchy command to CLI
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.
2026-05-12 12:08:03 -07:00
Huw Duddy
12a37a224a Merge pull request #2536 from recrof/patch-3
revert: "feat: Enable GPS on RAK 1W kit" (#2401)
2026-05-13 00:41:41 +10:00
Rastislav Vysoky
68363d9e4d revert: "feat: Enable GPS on RAK 1W kit" (#2401)
reverted changes to RAK_BOARD and PIN_GPS_EN. setting `RAK_BOARD` would cause radio to stop working and end with RadioLib error -707
2026-05-12 15:56:28 +02:00
Stephen Waits
09a27a2591 fix(mesh): widen TRACE offset to uint16 to avoid narrowing 2026-05-11 19:32:56 -06:00
liamcottle
b0b87fd709 fix gps pins for lilygo t impulse plus 2026-05-12 10:36:19 +12:00
Liam Cottle
c4523f71a9 Merge pull request #2522 from liamcottle/board/lilygo-t-impulse-plus
Add support for LilyGo T-Impulse-Plus
2026-05-12 01:39:44 +12:00
liamcottle
2fdbfbdbf6 turn off 3.3v rail when powering off 2026-05-12 01:06:22 +12:00
Liam Cottle
96bbed225a Merge pull request #2520 from Quency-D/heltec-mesh-node-t1
add heltec-mesh-node-t1
2026-05-12 00:38:14 +12:00
liamcottle
a49ee6ebe9 fix battery voltage reading 2026-05-11 22:17:53 +12:00
liamcottle
242c45f4a3 initial support for lilygo t impulse plus 2026-05-11 22:05:06 +12:00
Liam Cottle
3cdcb3ef84 Merge pull request #2519 from oltaco/customlfs-0.2.2
pin CustomLFS to version 0.2.2
2026-05-11 21:33:05 +12:00
Quency-D
6d3b71eed9 add heltec-mesh-node-t1 2026-05-11 15:11:07 +08:00
taco
716ba8ee5e pin CustomLFS to version 0.2.2
CustomLFS 0.2.2 adds support for the flash chip in LilyGo T-Echo Card and T-Echo Lite
2026-05-11 11:37:56 +10:00
Huw Duddy
3eacc49489 Merge pull request #2503 from jirogit/fix/techo-lite-non-shell-usb
feat(techo-lite): add USB companion radio target for non-shell variant
2026-05-10 22:40:12 +10:00
Liam Cottle
e7ea2fc563 Merge pull request #2516 from oltaco/disable-ds3231-probe
Add option to disable DS3231 RTC probe
2026-05-10 22:48:47 +12:00
taco
e7e97ec438 add option to disable DS3231 probe 2026-05-10 20:29:47 +10:00
Huw Duddy
a3e1930176 Merge pull request #2511 from entr0p1/techo-lite-rf-fix
Corrected T-Echo Lite SX1262 RXEN and TXEN pins, TCXO voltage.
2026-05-10 19:55:20 +10:00
Chris
75fb07fc2c Add support for Station G3 and its software configurable LNA and PA1 2026-05-09 13:53:20 -07:00
entr0p1
77bd994a61 T-Echo Lite LoRa radio fixes
- Set TCXO voltage to 1.8 (not defined previously, falls back to default)
- Set correct variable name for SX1262 RX/TX pins
- Fix SX1262 RX pin number
2026-05-09 14:26:55 +10:00
Liam Cottle
56d4671c2c Merge pull request #2490 from tuzzmaniandevil/dev
Enhance KissModem frame processing and timeout handling
2026-05-08 23:23:14 +12:00
Huw Duddy
6e2e9cc33c Merge pull request #2505 from liamcottle/feature/companion-repeat-build-flag
Add build flag to configure allowed repeat frequency range
2026-05-08 18:29:49 +10:00
liamcottle
841db56595 add build flag to configure allowed repeat freq range 2026-05-08 20:16:45 +12:00
jirogit
5a6fd4c16a feat(techo-lite): add USB companion radio target for non-shell variant 2026-05-08 00:38:04 -07:00
tuzzmaniandevil
ffa76016ff Address two comments from PR 2026-05-08 11:14:22 +12:00
taco
b612ba49f2 reduce dram0_0 usage by lowering OFFLINE_QUEUE_SIZE
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
2026-05-08 00:40:33 +10:00
Liam Cottle
0800f8d677 Merge pull request #2494 from uwl-cpe-2025/fix/missing-include
Add missing Wire.h include to sensors
2026-05-08 00:38:33 +12:00
Josiah VanderZee
4b6b8abe7a Add missing Wire.h include for sensors
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.
2026-05-07 07:20:48 -05:00
Rococo88
a0cc3bab4b Refactor WiFi auto-reconnect to use non-blocking polling 2026-05-07 12:24:06 +02:00
Liam Cottle
51665881a2 Merge pull request #2492 from meshcore-dev/set-flood-scope-none
Companion: Set flood scope to None
2026-05-07 21:49:11 +12:00
Scott Powell
6979326340 * CMD_SET_FLOOD_SCOPE_KEY, now with second variant for explicitly sending un-scoped
* FIRMWARE_VER_CODE bumped to 12
2026-05-07 16:51:03 +10:00
Liam Cottle
bf733f00a6 Merge pull request #2488 from weebl2000/fix-rak-pin-gps-en-undefined
Gate PIN_GPS_EN
2026-05-07 18:44:37 +12:00
ripplebiz
b75cefbfb4 Merge pull request #2327 from NickDunklee/fix-environment-sensor-refactor
fix(sensors): improve sensor initialization and handling to prevent hangs and handle growth
2026-05-07 15:58:10 +10:00
tuzzmaniandevil
314d777b42 Enhance KissModem frame processing and timeout handling 2026-05-07 00:03:09 +00:00
Wessel Nieboer
3bde089bdb Gate PIN_GPS_EN
Do not reference it unconditionally
2026-05-07 00:31:15 +02:00
Huw Duddy
6b3df327e9 Merge pull request #2483 from oltaco/dev
fix CustomLFS version pinning
2026-05-06 23:59:51 +10:00
taco
68ab882cd5 fix CustomLFS version pinning 2026-05-06 23:53:35 +10:00
Liam Cottle
19ebd8c795 Merge pull request #2480 from KPrivitt/dev
Incorrect time_t TypeDef used in RAK12035_SoilMoisture
2026-05-06 17:46:57 +12:00
ripplebiz
f9ddd9da72 Merge pull request #2445 from kizniche/update-docs-txdelay-rxdelay
Docs: Add explanatory notes for txdelay, direct.txdelay, and rxdelay
2026-05-06 14:37:36 +10:00
ripplebiz
00afb06768 Merge pull request #2475 from uwl-cpe-2025/fix/ST7789-reset-timing
Do not perform redundant reset on ST7789 displays
2026-05-06 14:32:30 +10:00
Kenneth Privitt
235706a22a Incorrect time_t TypeDef in RAK12035_SoilMoisture 2026-05-05 11:20:36 -07:00
Josiah VanderZee
e56c1b3d58 Do not perform redundant reset on ST7789 displays
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.
2026-05-04 17:01:39 -05:00