Commit Graph
990 Commits
Author SHA1 Message Date
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 c48e679284 docs: record T1000 USB-priority hardware checks 2026-10-20 07:58:47 -07:00
mikecarper 0fc7f377aa fix(t1000): give USB data priority over Bluetooth 2026-10-20 07:52:37 -07:00
mikecarper 046b4a6719 docs: record Nordic active USB and BLE isolation results 2026-10-20 03:19:56 -07:00
mikecarper 1c72883c22 docs: isolate T1000 BLE failure to active USB condition 2026-10-20 00:38:29 -07:00
mikecarper 910f9a3022 docs: record T1000 battery, wall-power and Pi USB comparisons 2026-10-20 00:21:55 -07:00
mikecarper 9d63ab0fde Record T1000 minimal BLE and timeout isolation tests 2026-10-19 23:19:30 -07:00
mikecarper 96b937f3f6 docs: record immediate T1000 pairing and link timeouts 2026-10-19 22:38:39 -07:00
mikecarper e80b28a355 docs: record post-reset T1000 independent central failure 2026-10-19 22:23:56 -07:00
mikecarper 1e0aab566f Record T1000 bootloader correction and remaining BLE failure 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 c9a142b580 Include live stack and advertising readbacks in BLE debug exports 2026-10-19 20:43:40 -07:00
mikecarper 1be8d88435 Record Companion qualification passes and remaining failures 2026-10-19 19:18:21 -07:00
mikecarper bbc39c11d7 docs: record XIAO recovery limits and tested startup hardening 2026-10-19 17:50:24 -07:00
mikecarper 076b2a3208 docs: record WisMesh Tag recovery and qualification 2026-10-19 16:55:57 -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 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
mikecarper a50bee474b Document global contact savings and V3 Full memory qualification 2026-10-19 02:57:46 -07:00
mikecarper 8d4264e272 docs: record ESP32 shared-password hardware acceptance 2026-10-19 01:33:47 -07:00
mikecarper 72a9317376 Record T1000 BLE fix validation and remaining connection failures 2026-10-19 00:20:20 -07:00
mikecarper e8d1e537e4 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 4ad1aec200 Record Nano G2 regulator issue review and build validation 2026-10-18 23:12:43 -07:00
mikecarper d98cd2cbe6 Enable circuit-verified Nano G2 MCU regulator selection 2026-10-18 23:07:39 -07:00
mikecarper 3d14f30c89 Record regulator recovery builds and Mercerwood qualification 2026-10-18 22:49:21 -07:00
mikecarper a43604c577 Check linked Reader text and stack use alongside crypto 2026-10-18 21:36:56 -07:00
mikecarper c4a1d485ff Add saved regulator modes and battery-gated crash recovery 2026-10-18 21:10:58 -07:00
mikecarper 515bb57cdf Record ten-profile variant consolidation qualification 2026-10-18 20:46:43 -07:00
mikecarper 9c78ccde57 Unify optional hardware variants and add runtime R8 TFT rotation 2026-10-18 20:25:13 -07:00
mikecarper 3848626702 Record qualified optional display firmware and RAM limits 2026-10-18 19:06:30 -07:00
mikecarper cc004521bd Keep original Tracker Full neighbor table within its RAM budget 2026-10-18 19:01:35 -07:00
mikecarper 4f746d1e3b Detect manufacturer-supported optional screens on RC32, Tracker V1 and V4 R8 2026-10-18 18:55:38 -07:00
mikecarper 74756c9ded Publish qualified T114 screen-detection picker defaults 2026-10-18 18:19:38 -07:00
mikecarper b8f8a1fae1 Account for ST7789 framebuffer and scanline heap in firmware gates 2026-10-18 16:32:49 -07:00
mikecarper 1ce3f0cdd7 Make T114 screen detection the default firmware and picker choice 2026-10-18 16:20:27 -07:00
mikecarper 22ab02caf7 Fix G3 gain transitions, slot commands and radio restore 2026-10-18 14:29:19 -07:00
mikecarper 015eff4c22 Restore G3 startup tolerance and G2-compatible flash mode 2026-10-18 13:58:02 -07:00
mikecarper 5d741318f5 Preserve admin password input and clarify reconnect guidance 2026-10-18 13:45:13 -07:00
mikecarper cd02e55824 Share the saved admin password across ESP32 management services
Use the committed node credential for setup WiFi, WebConfig and browser OTA. Add persistent ESP32 WiFi Companion management credentials without changing preferences layouts, revoke stale browser sessions on rotation, retain scoped save receipts, and coordinate credential changes with flash uploads. Keep external-service credentials and trusted TCP protocol compatibility independent. Update live join QR codes, failure handling and documentation.

Validated 51 native cases, 158 related host and browser methods, and serial Full V4 Companion, Station G3 Repeater, ESP32-C6 Room Server and V4 Sensor firmware builds.
2026-10-18 13:09:48 -07:00
mikecarper 59b0ab93d0 Keep fractional timezones within constrained flash budgets
Deduplicate validation and preserve the published preference bytes and transactional saves. Correct Ikoka Handheld Companion flash bounds and document QSPI Room migration. Qualify STM32 and RAK4631 at the full 1.18.0.1 release version length.
2026-10-18 08:46:20 -07:00
mikecarper 7088096abf Merge upstream dev through 428a95c64
Integrate fractional Companion timezones and conditional Bluetooth pages while preserving the existing preference byte layout, transactional saves, and Full transport selector. Add migration, rollback, invalid-value, and UI profile regressions.
2026-10-18 08:30:50 -07:00
mikecarper 7fceeed9ab Record verified V4 USB return and complete original-data restoration 2026-10-18 08:18:58 -07:00
mikecarper 8afa295589 Record V4 Bluetooth recovery and pending physical USB reconnection 2026-10-18 02:50:06 -07:00
mikecarper cfb9d166c4 Record Mercerwood candidate hardware results and open release gates 2026-10-18 02:27:11 -07:00
mikecarper f88b9e65ed Expose broker acknowledgment diagnostics on Full Companion 2026-10-17 23:54:15 -07:00
mikecarper a4a0b97c3f Expand post-merge regressions and document qualification gaps 2026-10-17 21:41:47 -07:00
mikecarper ce35e21480 Document transient guest login and post replay limits 2026-10-17 21:19:04 -07:00
nullrouten0andClaude Opus 5.5 09435b049d Use the node's admin password for the migration bridge AP
The Wi-Fi, LoRa first-stage and Partition Expander bridges serve an
unauthenticated /update behind an AP whose password was fixed and published,
so anyone in range during a migration could upload firmware while the private
key is staged. Use the old node's saved admin password as the WPA2
passphrase, read from /com_prefs or /node_prefs at offset 56 as the firmware
loads it. The operator already used that password to start the old updater.

Fall back to the published password, with a serial warning, when the saved
admin password is missing, unreadable, shorter than 8 characters or not
printable ASCII, so no node becomes unreachable. The legacy filesystem is
mounted without formatting and the password is never printed. Migration
admission, flash sequencing, /update gating and the USB bridge are unchanged.
Update both guides and the package README.

Add a sanitizer-backed host test that compiles the bridge's actual Wi-Fi
block against fake SPIFFS and WiFi: both boots, file precedence, WPA2 length
and terminator bounds, printable characters, stock 1.10/1.11 file sizes,
truncated fields, and mount, seek and partial-read failures. It fails 8 of 8
on the previous code and catches 27 of 27 code mutations. Verified 13 related
host test files and the esp32_s3_4mb_partition_migrator build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 03:57:09 +00:00