Commit Graph
679 Commits
Author SHA1 Message Date
mikecarper c9a7be1eef Simplify stock temporary radio test page 2026-09-22 22:50:28 -07:00
mikecarper bea968b4fa feat(radio): calibrate dual-profile preambles from live switch timing 2026-09-22 00:09:37 -07:00
mikecarper 79fe4362f8 feat(radio): enable fast profile switching across direct SX1262 boards
Add acknowledged SetFs and packet-cache shortcuts for SX1262, extend the LR1110 FS-mode fast path with buffered SPI, and keep the expander-backed Indicator on its previous path. Include HIL fixtures, validation notes, and regression tests.
2026-09-21 22:57:22 -07:00
mikecarper 3ef490c9f8 fix(picker): use release JSON for OTA and logging 2026-09-21 20:02:53 -07:00
mikecarper 5f02575933 docs(picker): publish verified runtime capabilities 2026-09-21 19:58:46 -07:00
mikecarper 4d3ca01c63 docs(picker): record verified iKoka logging modes 2026-09-21 19:52:21 -07:00
mikecarper ea045b9a9f docs: keep node clock correction page-local 2026-09-21 16:09:47 -07:00
mikecarper e71ccb2710 docs: compensate scheduled radio for node clock 2026-09-21 16:03:31 -07:00
mikecarper 527bc98da2 docs: show preset builder until configured 2026-09-21 01:17:09 -07:00
mikecarper 7a8c683338 docs: add repeater tempradioat preset 2026-09-21 00:57:21 -07:00
mikecarper 968e5240ac fix(docs): reflect preset URL in page header 2026-09-20 16:40:49 -07:00
mikecarper ba153b758d docs: name the default preset test 2026-09-20 16:29:24 -07:00
mikecarper fee698bb60 feat(kiss): enable fast profile scanning on Station G3 2026-09-20 08:16:00 -07:00
mikecarper 01ad5ca8a8 feat(kiss): add dual-profile radio2 support for OpenHop 2026-09-20 07:59:43 -07:00
mikecarper 9844982b00 Add Wi-Fi OTA partition migration support 2026-09-19 20:14:37 -07:00
mikecarper 9356d9a004 Correct stock preset test commands 2026-09-19 09:46:49 -07:00
mikecarper a21d6046f6 Publish canonical Full partition-migration targets 2026-09-19 09:28:04 -07:00
mikecarper e48792e178 Add one-way OTA target migration aliases 2026-09-19 08:30:52 -07:00
mikecarper fe9d48ea69 Hide superseded observer profiles in picker 2026-09-18 14:27:51 -07:00
mikecarper e708d0d14e Fix capacity matrix build regressions 2026-09-17 23:54:11 -07:00
mikecarper 34e0187aaa Add browser management report decoder 2026-09-17 14:31:12 -07:00
mikecarper aa317abbb0 Document room access 2026-09-17 13:57:15 -07:00
mikecarper ab18216718 Consolidate companion components 2026-09-17 13:41:39 -07:00
mikecarper 30067cb5cd Split MQTT and ESP-NOW controls in Full ESP32 builds 2026-09-17 01:13:10 -07:00
mikecarper 9a149eaea1 Combine ESP-NOW and MQTT in ESP32 Full builds 2026-09-17 00:37:32 -07:00
mikecarper aaa2b8b4e3 Sync repeater GPS weekly in power saving mode 2026-09-16 22:42:51 -07:00
mikecarper fd920624a2 Limit repeater GPS acquisition and repair CI tests 2026-09-16 21:27:15 -07:00
mikecarper 4ba26ff4af Add secure management reports and honor GPS off 2026-09-16 20:42:30 -07:00
mikecarper ad0ea545d3 Keep generated test URLs readable 2026-09-16 17:27:18 -07:00
mikecarper e91e439283 Collapse reusable test generator 2026-09-16 17:20:59 -07:00
mikecarper 1f69b52af6 Add interactive timezone map picker 2026-09-16 15:22:17 -07:00
mikecarper 675f8b13ea Fix timezone dropdown cache mismatch 2026-09-16 15:09:11 -07:00
mikecarper 9970cd4036 Use browser timezone in test generator 2026-09-16 15:03:02 -07:00
mikecarper 207c6559ab Use stock-compatible radio test exit 2026-09-16 14:58:38 -07:00
mikecarper 61be394dc2 Add reusable radio test link builder 2026-09-16 14:52:34 -07:00
mikecarper 05afbb7c25 Open radio test setup one hour early 2026-09-16 14:35:18 -07:00
mikecarper c6033fecc2 Disable Material copy controls before test 2026-09-16 14:29:55 -07:00
mikecarper 4e47ca9057 Prevent early TempRadio command copying 2026-09-16 14:21:29 -07:00
mikecarper b0e84263f4 Document preset test continuity plan 2026-09-16 14:19:35 -07:00
mikecarper e3b9ed165d Add temporary radio test command generator 2026-09-16 14:15:34 -07:00
mikecarper 476aac92de Merge meshcore-dev dev with companion and board integrations 2026-09-15 20:51:43 -07:00
mikecarper e70f4f9030 Fix OTA resume, CLI identity, radio persistence, and network sessions
Distinguish OTA read failures from missing blocks and select unique raw-flash checkpoints by MID and target. Keep deferred CLI requests and replies bound to immutable command identity and full authenticated keys.

Gate radio mutations on their exact reply delivery, recover coding-rate restoration, and roll back failed Companion preference writes. Preserve accepted low duty cycles across reboot.

Retain partial network writes, cancel displaced client operations, and reject malformed or stalled framed input. Add regression and CI coverage, and size-optimize the RAK4631 Ethernet build without dropping features.
2026-09-15 14:32:40 -07:00
mikecarper 56f0835d75 Preserve Wi-Fi reconnect backlogs by client IP
Retain same-IP replies and park one displaced IP backlog for 30 seconds using existing fixed buffers. Cancel old route-owned operations on takeover, preserve partial TCP frames, and cover reconnect isolation and queue limits with regression tests.
2026-09-15 13:13:36 -07:00
mikecarper 5b392b8aa6 Fix OTA resume and radio state recovery
Preserve resumed nRF52 flash pages and keep filtered OTA catalogs incomplete until full pages arrive. Bound stuck radio preparation, report companion setting failures, retain safe rollback, and codify conservative advert penalties with regression tests.
2026-09-15 12:17:54 -07:00
mikecarper 39c3f7b25c Harden radio recovery, OTA reconnects, and companion settings
Reject radio changes when receive mode cannot resume and restore the previous physical profile and power policy. Preserve selected folder OTA captures across disconnects and recoverable host I/O failures, while keeping corruption failures distinct. Validate OTA staging input before arithmetic or buffer writes and revoke published data before edits.

Commit companion channels through verified file replacement on ESP32, RP2040, and STM32, and quarantine incomplete startup reads. Recheck the last management connection during delayed wireless changes and prevent conflicting Bluetooth shutdowns. Detect complete OTA implementation sources rather than the shared inflater when configuring release builds.

Add fault-injection regressions and CI coverage for these paths, and document folder capture reconnect behavior.

Validation: 1,510 native tests; 55 host integration checks; build profile regressions; ESP32, nRF52, STM32, and RP2040 firmware builds.
2026-09-15 10:02:23 -07:00
mikecarper 298c3c7ab6 Preserve OTA block progress and channel checks during radio recovery
Drain received packets in single-profile radio fault backoff as well as
dual-profile mode. Share the normal channel-clear and bounded busy policy
with driver retries so a failed send cannot retry blindly or bypass the
existing single-retry limit.

Retain an unadmitted OTA request flight and count v2 fallback evidence only
after a sparse retry enters the transmit queue. Local queue congestion no
longer disables v2 before a request was sent or discards received fragments.

Include primary airtime when temporary RX-only radio2 crosses requests onto
that channel, keeping response allowances conservative on slower profiles.

Add six native regressions, including five failing-before cases, and document
the queue-admission and crossover timing behavior.

Validation: 1,502 native tests, 29 integration checks, and five firmware
builds passed across ESP32-S3, nRF52, and STM32.
2026-09-15 07:54:16 -07:00
mikecarper 74d1ad27bc Fix OTA retry accounting and radio delivery races
Keep catalog, manifest and leaf requests pending when the local transmit
queue rejects them instead of spending their network retry allowance.

Keep the packet selected before CAD so work becoming due during sensing
cannot bypass its own channel or pacing checks. Retire cancelled radio
retries before waiting for BUSY hardware or their retry deadline.

Wait for active transmission completion before applying firmware. Stop
admitting new transmissions after the apply drain deadline so busy queues
cannot postpone reboot indefinitely, and keep those deadlines armed across
millis rollover. Retain the existing persistence-flush backoff.

Add failing-before/fixed-after regression coverage for all four issues,
including the production OTA apply and TX guards in CI.

Validation: 1,496 native tests, 42 Python integration tests, and five
firmware builds passed across ESP32-S3, nRF52, and STM32 targets.
2026-09-15 06:45:28 -07:00
mikecarper 118b207b4a Add persistent LoRa OTA speed control and harden timing
Add get/set ota.speed and OTA CLI aliases for factors from 0.05 to 3,
defaulting to the existing pace. Persist the setting independently of the
OTA workspace and apply it to OTA packet pacing, relays, discovery and
adverts while retaining the configured airtime budget.

Preserve physical proof/retry allowances, account for both participating
radio profiles, keep optional deadlines armed across millis rollover, and
exclude intentional pacing from observer stale-packet age. Keep local
verification at its normal rate and retain a valid saved speed if backup
recovery cannot finish. Add documentation and CI regression coverage.

Validation: 1,491 native tests and 26 CLI/integration tests passed. Built
ESP32 full repeater, ESP32 full Companion, nRF52 full Companion and STM32
USB Companion successfully, including their memory/size checks.
2026-09-15 06:16:29 -07:00
mikecarper 95aca52b4e Add per-profile TX routing and bridge filtering
Persist Companion TX preferences per contact and channel. Default repeater,
room, and sensor replies to both active TX profiles, with a reply-only force
option for an RX-only secondary profile. Track both reply copies before a
temporary-radio handoff and account for OTA copies under queue backpressure.

Add bridge/crossover filter modes and the third built-in wardriving filter,
plus compact filter CLI syntax, documentation, and CI coverage.

Fix quoted target names being interpreted as slot/key selectors, partial
recovery of invalid saved reply settings, filter suspension during tempradio2,
and unnecessary packet allocation while OTA traffic is throttled.

Validation: 1,477 native tests, 52 Python integration tests, 29 filter UI tests,
and five firmware builds covering ESP32, nRF52, and STM32 passed.
2026-09-15 01:58:43 -07:00
mikecarper 0e0aa8e014 Add WiFi, ESP-NOW and combined wireless CLI controls 2026-09-15 00:01:45 -07:00