Commit Graph
1031 Commits
Author SHA1 Message Date
mikecarper c37742152d Fix reply bounds and portable browser test fixtures 2026-10-21 04:30:03 -07:00
mikecarper f869042386 Compile complete manager helper chain in host fixtures
The table-based manager allowlists call commandListMatches. Include that production dependency in the fleet enrollment, ACL CLI, and Morse authorization fixtures so their existing permission assertions execute. Firmware behavior and test assertions are unchanged.

Validation: all five tests across test_fleet_role_wiring.py, test_client_acl_cli.py, and test_morse_auth.py pass, including both rule-engine modes and both ACL capacities.
2026-10-21 03:22:40 -07:00
mikecarper db1c4704e0 Fix firmware budget regressions and flood alias delimiters
Share nRF52 checked-record reads and command-family lookups without changing
storage formats, error protection, fleet authorization, or delegated scopes.
Use the existing bounded Merkle proof workspace for qualified ESP32 repeaters
while retaining source capacity, wire format, and every enabled feature.
Restore advert tab/CRLF delimiters and expose nested qualification build logs.

Validation: all 1932 native CI test cases; exact canonical RAK4631 Full,
Wio-E5 Mini, Station G3 Full MQTT, and Wireless Tracker Full wrappers;
linked RAK crypto/workspace checks and retained Reader code equivalence;
focused persistence, authorization, source-proof, and RAM policy regressions.
2026-10-21 03:02:46 -07:00
mikecarper 953ad6defb Extend forwarding filters and save moderation rules atomically 2026-10-21 01:10:12 -07:00
mikecarper 585393e36c Allow nRF52 CPU idle while USB watchdog timers run 2026-10-21 00:56:23 -07:00
mikecarper 631c670ba7 Announce ready OTA catalogs through the existing data connection 2026-10-21 00:06:57 -07:00
mikecarper 38f5d8a61a Fix adaptive OTA capability reporting and application preflight 2026-10-20 21:55:37 -07:00
mikecarper 300b889bca 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 265b71d77a feat: set Morse receive floor and add bounded RSSI diagnostics 2026-10-20 17:44:29 -07:00
mikecarper 4e27d5108b fix: preserve HWCDC logging lease across transient USB status 2026-10-20 17:32:12 -07:00
mikecarper 099c5a851a fix: keep adaptive Morse receive within the full RAK image limit 2026-10-20 16:39:18 -07:00
mikecarper f1b1763dea fix: retain learned quiet peaks in automatic Morse receive 2026-10-20 16:33:41 -07:00
mikecarper 7081673bb1 fix: finish acknowledged HWCDC writes without a TX event 2026-10-20 16:30:01 -07:00
mikecarper 0a9939b34b test: align CLI help checks with bounded output 2026-10-20 13:35:03 -07:00
mikecarper 2fbc075aaa fix: bound Companion help writes and refresh runtime fixtures 2026-10-20 12:31:48 -07:00
mikecarper b125806833 test: cover LED settings and Bluetooth sleep transition ordering 2026-10-20 12:04:48 -07:00
mikecarper 6f42d56008 test: use standard atomic ordering in MQTT advert fixture 2026-10-20 11:36:50 -07:00
mikecarper 805dd2cbdf fix: keep feature-complete release builds within flash limits 2026-10-20 11:19:27 -07:00
mikecarper bc1176c7f4 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-20 10:42:48 -07:00
mikecarper d58bedd8ca fix(nrf52): align external QSPI DMA buffers 2026-10-20 10:35:07 -07:00
mikecarper d5a6df6283 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 f57dffa2be 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
9d52b1fd68 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 0fc7f377aa fix(t1000): give USB data priority over Bluetooth 2026-10-20 07:52:37 -07:00
mikecarper eb89aa5fc3 test: align Ethernet settings bounds with shared radio range 2026-10-19 22:22:10 -07:00
mikecarper dec9b2ae08 Extract interrupt owner fixture from declarations and model repair gating 2026-10-19 21:56:43 -07:00
mikecarper 6e898afc4d Make crossover native scenarios request automatic bridging 2026-10-19 21:38:15 -07:00
mikecarper 44ba5b4f18 Default radio profile crossover to off 2026-10-19 21:14:53 -07:00
mikecarper b18bd79da2 Test radio2 suggestions against shared and chip frequency limits 2026-10-19 20:48:17 -07:00
mikecarper 59e2b5bfe4 Expose live nRF52 advertiser and SoftDevice state in opt-in trace 2026-10-19 20:38:12 -07:00
mikecarper e0442880e1 Keep Full RAK Companion within flash using integer airtime blocks 2026-10-19 20:36:16 -07:00
mikecarper 8e35f477c0 Repair failed profile retunes before receiving packets 2026-10-19 18:54:14 -07:00
mikecarper 8038715ffe Extend nRF52 radio profile timing across RTC wraps 2026-10-19 18:53:33 -07:00
mikecarper ca67494f8c 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 25299a77b3 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 40a4161782 fix: keep unavailable radios out of identity and settings recovery 2026-10-19 17:44:48 -07:00
mikecarper e3ef119647 Record Mercerwood hardware campaign and BLE refresh results
Document the tested firmware source, thirteen build targets and fifteen memory profiles. Record nine USB passes, eight BLE passes and six two-way RF links while retaining the incomplete hardware checks and earlier bootloader evidence. Include the measured V3 contact refresh improvement and cleanup evidence.
2026-10-19 16:11:38 -07:00
mikecarper 71bd84f3a0 Speed up authenticated modern NimBLE Companion transfers 2026-10-19 14:27:04 -07:00
mikecarper 3d53861813 Isolate channel admission test shim from contact frame fixture 2026-10-19 14:27:04 -07:00
mikecarper 978732f685 Align USB test fixtures with regulator recovery hooks 2026-10-19 14:14:36 -07:00
mikecarper 90ae9cfc14 Keep restored empty contact paths in the zero value 2026-10-19 13:59:48 -07:00
mikecarper 016a69ea10 Trace public nRF52 advertising payloads for discovery diagnosis 2026-10-19 13:47:38 -07:00
mikecarper 042d5b7f0d Expose actual BLE identity in nRF52 trace diagnostics 2026-10-19 13:33:02 -07:00
mikecarper c1c0c3178c Model clean regulator reset in nRF52 USB client fixture 2026-10-19 13:28:00 -07:00
mikecarper 61dc5ca3f1 Wake XIAO QSPI flash and preserve access after failed resets 2026-10-19 13:25:04 -07:00
mikecarper 85a786e796 Wait for nRF52 BLE client data before sending queued frames 2026-10-19 13:12:54 -07:00
mikecarper c557d96bf0 Fix nRF52 console mocks and cover framework logging in CI 2026-10-19 12:54:05 -07:00
mikecarper 298b4da7aa Select the float radio initializer in the scan timing test 2026-10-19 12:22:32 -07:00
mikecarper 55a77115fb Route nRF52 framework diagnostics through USB logging policy 2026-10-19 12:12:17 -07:00
mikecarper d34d84460b Warn on radio2 spectral overlap and suggest a clear center 2026-10-19 10:44:39 -07:00