Commit Graph
2499 Commits
Author SHA1 Message Date
mikecarper 4b2f370133 Fix adaptive OTA capability reporting and application preflight 2026-10-20 21:55:37 -07:00
mikecarper 9e73e9aaa0 Add saved OLED controller selection on RAK boards
Allow Auto, SSD1306 or SH1106 through display.controller on display-enabled RAK4631 and RAK3401 roles. Persist the choice before restart without changing the active screen policy, and let saved Auto override legacy build defaults.

Share checked settings I/O and the existing atomic writer to keep Full Companion within its flash boundary while retaining features and existing record formats. Cover save failures, backup recovery, startup selection and ambiguous OLED replies.

Validation: 35 targeted host tests passed. RAK4631 Full Companion and RAK3401 unified LoRa OTA repeater build and package checks passed with release-length version strings.
2026-10-20 21:14:49 -07:00
mikecarper 0b207a1ec3 feat: set Morse receive floor and add bounded RSSI diagnostics 2026-10-20 17:44:29 -07:00
mikecarper 7278eacb91 fix: preserve HWCDC logging lease across transient USB status 2026-10-20 17:32:12 -07:00
mikecarper fc72943f3b refactor: share Morse and CLI encoding to preserve full firmware headroom 2026-10-20 16:52:48 -07:00
mikecarper 4773ac4219 fix: keep adaptive Morse receive within the full RAK image limit 2026-10-20 16:39:18 -07:00
mikecarper a7df4d0d64 refactor: share Morse threshold hysteresis without extra code 2026-10-20 16:36:50 -07:00
mikecarper 6298a9db81 fix: retain learned quiet peaks in automatic Morse receive 2026-10-20 16:33:41 -07:00
mikecarper afb4a3fa4b fix: finish acknowledged HWCDC writes without a TX event 2026-10-20 16:30:01 -07:00
mikecarper c46defaefd fix: keep feature-complete release builds within flash limits 2026-10-20 11:19:27 -07:00
mikecarper a1ec96fcab Detect SSD1306 and SH1106 screens on RAK boards
Use repeated status reads at screen initialization and preserve SSD1306 for ambiguous responses. Share the existing framebuffer, drawing, rotation and power handling; use SH1106 page transfers when detected.

Enable this for RAK4631 and RAK3401, including WisMesh Pocket v2/v3. Add controller overrides, protocol tests and CI coverage. Addresses meshcore-dev/MeshCore#3296.
2026-10-20 09:43:25 -07:00
mikecarperandR0ck 499a4f850c Add saved Companion sound and vibration controls
Default fresh settings to sound off and vibration on, and keep existing saved choices. Apply changes immediately across all three UIs and make custom notification patterns respect the same mute controls.

Keep the Wio Mini Companion within its existing flash boundary by storing its LED switch in a reserved preference byte and shortening CLI help without removing commands. Add coverage for live output changes, persistence, and storage failures.

Adapted from https://github.com/meshcore-dev/MeshCore/pull/3603.

Co-authored-by: R0ck <develop@hectospark.co.uk>
2026-10-20 09:33:43 -07:00
fea6246f50 Add saved LED controls across supported boards
Add get leds and set leds on|off for Companion, repeater, room server and
sensor builds. Preserve the setting across reboots and cover GPIO, RGB,
Bluetooth, notification and expander indicators without changing radio
amplifier controls or screen backlights.

RAK Companions blink while advertising and keep the Bluetooth LED off once
connected, including late timer callbacks.

Adapted from meshcore-dev/MeshCore#3605 and #2694.
Validated with host regressions and firmware builds for SenseCAP Solar,
RAK4631, T096, Heltec V4, T-Beam, Xiao S3, Pico W and Wio E5 Mini.

Co-authored-by: R0ck <develop@hectospark.co.uk>
Co-authored-by: Nick Dunklee <nick@dunklee.org>
2026-10-20 08:59:39 -07:00
mikecarper ac0daf3cef fix(t1000): give USB data priority over Bluetooth 2026-10-20 07:52:37 -07:00
mikecarper 42f7df082f Reuse radio profile state within CLI operations 2026-10-19 21:28:49 -07:00
mikecarper 9fc85e0d45 Share radio profile validation and simplify bounded airtime arithmetic 2026-10-19 21:20:57 -07:00
mikecarper 127cebdc1b Default radio profile crossover to off 2026-10-19 21:14:53 -07:00
mikecarper f80751354f Expose live nRF52 advertiser and SoftDevice state in opt-in trace 2026-10-19 20:38:12 -07:00
mikecarper d4132c58ce Keep Full RAK Companion within flash using integer airtime blocks 2026-10-19 20:36:16 -07:00
mikecarper 811b2d7232 Repair failed profile retunes before receiving packets 2026-10-19 18:54:14 -07:00
mikecarper 4f86c6fac8 Extend nRF52 radio profile timing across RTC wraps 2026-10-19 18:53:33 -07:00
mikecarper e704efad17 Correct chip-specific radio profile validation and airtime
Retain supported LR2021 bandwidths and reject frequency gaps. Enable LR1121 high-band bandwidth selection and account for its forced LDRO in profile and beacon airtime.

Cover all eight chip families with production-method regression tests.
2026-10-19 18:49:15 -07:00
mikecarper aa9f8f9b05 Invalidate LR1110 profile cache on packet changes
Revoke fast-RX ownership before CRC, header and IQ setters, including failed writes. Cover normal RX rebuilds and unchanged defaults with production-method tests.
2026-10-19 18:43:11 -07:00
mikecarper 4e4f27a25a Speed up authenticated modern NimBLE Companion transfers 2026-10-19 14:27:04 -07:00
mikecarper 207f9c33ef Keep restored empty contact paths in the zero value 2026-10-19 13:59:48 -07:00
mikecarper e3031e58b8 Trace public nRF52 advertising payloads for discovery diagnosis 2026-10-19 13:47:38 -07:00
mikecarper 99d1a48910 Expose actual BLE identity in nRF52 trace diagnostics 2026-10-19 13:33:02 -07:00
mikecarper cff92ceb8f Wake XIAO QSPI flash and preserve access after failed resets 2026-10-19 13:25:04 -07:00
mikecarper 256c68afef Wait for nRF52 BLE client data before sending queued frames 2026-10-19 13:12:54 -07:00
mikecarper fcc4714e2b Route nRF52 framework diagnostics through USB logging policy 2026-10-19 12:12:17 -07:00
mikecarper aa586ecc14 Warn on radio2 spectral overlap and suggest a clear center 2026-10-19 10:44:39 -07:00
mikecarper eb9259f2a9 Fit V3 Full with NimBLE and bounded OTA source proofs 2026-10-19 02:47:13 -07:00
mikecarper aed4c22e51 Keep compact contacts within the STM32 flash boundary 2026-10-19 02:11:47 -07:00
mikecarper b0f1416150 Reduce contact RAM across boards and compact Full firmware 2026-10-19 01:55:25 -07:00
mikecarper 0207b34205 Fit RAK4631 Full OTA image by reusing regulator recovery code 2026-10-18 23:48:07 -07:00
mikecarper fccbb041b2 Record T-Deck radio2 hardware timing and regression coverage
Add receive-only same-image display, SPI, modem/IQ-cache and scoped-priority experiments with checkpointed collectors. Keep rejected clock-phase correction and elevated-priority experiments out of production.

Publish sanitized timing data, Full Companion/Bluetooth/USB checks and redraw measurements with their limits. Wire the new behavioral checks into CI.
2026-10-18 23:20:50 -07:00
mikecarper d4c8263221 Speed up T-Deck radio2 retunes with guarded command reuse
Reuse the confirmed LoRa modem only inside acknowledged warm continuous-RX hops and revoke that capability before modem initialization or after failures.

Opt the tested T-Deck into IQ workaround reuse and an exact 8,888,888 Hz SPI setting. Keep the existing BUSY, packet-ownership and recovery checks; other boards retain their modem-cache default.
2026-10-18 23:20:50 -07:00
mikecarper a461587086 Keep T-Deck radio2 scanning active during screen redraws
Render into a PSRAM canvas and release the shared SPI bus between bounded TFT strips. Service only the radio driver at cooperative checkpoints and use the buffered radio HAL, preserving packet and transmit guards.

Cover pixel parity, transaction boundaries, allocation failure, partial updates and sleep/wake behavior with native tests.
2026-10-18 23:18:55 -07:00
mikecarper 5083c236b7 Defer regulator ADC and flash work during Morse timing 2026-10-18 22:38:54 -07:00
mikecarper 14b9caa9e5 Omit unsupported regulator vtable slots on integrated STM32WL 2026-10-18 22:00:03 -07:00
mikecarper 9594f76968 Keep unsupported STM32 controls out of tiny Companion images 2026-10-18 21:54:35 -07:00
mikecarper 7e3359c1ab Avoid unreachable regulator persistence on integrated STM32WL targets 2026-10-18 21:36:04 -07:00
mikecarper ef2edc5200 Pack unchanged Reader text more tightly for Full firmware 2026-10-18 21:26:44 -07:00
mikecarper 36d60d5463 Preserve regulator recovery through planned resets and storage failures 2026-10-18 21:17:44 -07:00
mikecarper d632501bc8 Add saved regulator modes and battery-gated crash recovery 2026-10-18 21:10:58 -07:00
mikecarper 82b8169837 Unify optional hardware variants and add runtime R8 TFT rotation 2026-10-18 20:25:13 -07:00
mikecarper 27a5e0d452 Detect manufacturer-supported optional screens on RC32, Tracker V1 and V4 R8 2026-10-18 18:55:38 -07:00
mikecarper dcdce7b656 Make T114 screen detection the default firmware and picker choice 2026-10-18 16:20:27 -07:00
mikecarper 07edca4cb8 Fix G3 gain transitions, slot commands and radio restore 2026-10-18 14:29:19 -07:00
mikecarper 1147c28b27 Preserve admin password input and clarify reconnect guidance 2026-10-18 13:45:13 -07:00