Commit Graph
390 Commits
Author SHA1 Message Date
mikecarper ba3fcc2cab Align clock and console fixtures with current CLI helpers 2026-10-28 05:34:58 -07:00
mikecarper 8f20fe5d83 Trim remaining validation wording in small Companion profiles 2026-10-28 04:44:06 -07:00
mikecarper 8a51a54fd7 Use concise validation replies in constrained Companion builds 2026-10-28 04:22:07 -07:00
mikecarper cea654cb47 Use shorter CLI validation replies on the constrained Mini 2026-10-28 04:15:04 -07:00
mikecarper c778abceab Shorten Companion help descriptions while retaining every command 2026-10-28 03:52:08 -07:00
mikecarper 8fdad47b27 Keep Mini single-use helpers out of line and align native fixtures 2026-10-28 03:26:36 -07:00
mikecarper f0bcb10ff0 Handle USB mode queries in the existing getter paths 2026-10-28 03:21:36 -07:00
mikecarper 749ee1e2e5 Keep unused Companion preset staging out of repeater compilation 2026-10-28 03:18:45 -07:00
mikecarper 4261889095 Recover constrained firmware flash and update USB dispatch fixtures 2026-10-28 02:51:56 -07:00
mikecarper 744692fb93 Configure MediaMesh radio2 presets when joining Companion channels 2026-10-28 00:05:10 -07:00
mikecarper 80bfa754d1 Keep the continuous logging help entry within USB output bounds 2026-10-27 18:50:28 -07:00
mikecarper b3df8bfd3f Quiet USB packet logs for five minutes after console commands 2026-10-27 18:19:19 -07:00
mikecarper 6ac2ec357a Let a new trace replace the previous attempt on its connection 2026-10-27 14:08:50 -07:00
mikecarper 2a6d59474d Report saved Bluetooth PIN settings to Companion apps 2026-10-27 13:50:40 -07:00
mikecarper 88bfaebb50 Reject incomplete WebConfig confirmations under memory pressure 2026-10-27 11:58:39 -07:00
mikecarper 24e7ab1eaf Merge latest changes and retain TLS headroom during MQTT recovery 2026-10-27 11:45:03 -07:00
mikecarper 2fc2f409d4 Keep MQTT and WebConfig stable under internal memory pressure 2026-10-27 11:28:47 -07:00
mikecarper 0cba0c3afa Refresh host fixtures for current Companion and USB interfaces
Declare fixture feature boundaries and SDK mocks explicitly, retain USB recovery ownership checks, and recognize the unified V4 display and read-only diagnostics in contract tests.
2026-10-27 08:17:24 -07:00
mikecarper 2b55ff6a62 Recover RAK RAM without reducing OTA or sensor capacities
Cache each validated OTA descriptor field once and size manifest reassembly to the admitted wire format. Compile reviewed read-only VL53L0X tuning data in flash through a private dependency copy, retaining the original implementation for unknown revisions.
2026-10-27 08:17:23 -07:00
mikecarper 2be068cafa Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-26 23:41:20 -07:00
mikecarper 7d413a6806 Fit direct OTA administration into RAK4631 Full 2026-10-26 23:41:20 -07:00
mikecarper 71e42b2e62 Manage MediaMesh forwarding region with saved radio2 profiles 2026-10-26 22:15:37 -07:00
mikecarper d64a4ef234 Preserve unread messages when the OTA wizard borrows queue space 2026-10-26 21:45:18 -07:00
mikecarper 8a8c80ee6a Unblock LR2021 retunes and add saved crystal calibration
Repeated preamble/header activity can keep a requested primary or TempRadio
change busy indefinitely. Bound unfinished-RX admission for accepted LR2021
changes while preserving completed packets, TX, BUSY and exclusive owners.
Ordinary scans and CAD keep their existing admission rules. Expose the failing
stage and native status through get radio.apply.

Add saved radio.xtrim capacitor calibration and measured radio.freqerror in
signed Hz from the last valid LoRa packet. Preserve native trim by default,
restore explicit calibration after resets/Morse, verify saves before applying,
wait two seconds for the acknowledgement, and roll back failed changes.

Calibration motivation and prior upstream work:
https://github.com/meshcore-dev/MeshCore/issues/3365
https://github.com/recrof/MeshCore/tree/lr2021-trim
Packet-status format follows Semtech's LR20xx driver and RadioLib staging.

Tests execute production activity/admission and transaction paths with noisy
RX, completion races, protected owners, failed setters, RX restart and save
rollback. Physical W12 retuning and RF calibration still require confirmation.
2026-10-26 15:55:36 -07:00
mikecarper 4f76345b67 Apply infrastructure radio changes after a two-second reply handoff
Persist set freq and set radio atomically, then apply through the existing safe radio scheduler without rebooting. Retain the old tuple until the delay and reply handoff finish, including queued room/sensor replies and TX-complete callbacks. End temporary sessions when accepting a permanent change.

Display applied RF settings even when radio2 is off. Share radio validation across immediate and scheduled setters to preserve STM32 Mini flash capacity. Update command documentation, regression coverage, and CI.

Validated production timing, persistence, display, CLI, fleet/reply, RX, sleep and Morse regressions. W12 repeater, room-server and sensor builds pass. Canonical STM32 Mini Repeater passes flash and RAM admission with 448 bytes of flash remaining. Physical W12 RF testing was not performed.
2026-10-26 00:38:13 -07:00
mikecarper c98684021a Restrict dual-profile reply overrides to admin CLI responses 2026-10-26 00:00:45 -07:00
mikecarper b0c49a4cc3 Fit STM32 release images and repair stale CI fixtures
Fix the STM32 flash overflows and fleet fixture compile failure from
https://github.com/mikecarper/MeshCore/actions/runs/40241742182.

Fold already-unsupported RX control paths only for the integrated STM32WL
wrapper. Preserve RXPS-off validation, persistence, pending application and
rollback. External radios retain their supported controls.

Use measured GCC 14 code sharing in the four small STM32 USB Companion
recipes. Keep firmware features, contact/channel capacities, filesystem
boundaries and flash/RAM admission checks unchanged.

Refresh downstream host fixtures for saved radio intent, deferred service
restarts, WebConfig ownership, RX recovery and color tint state. Retain or
strengthen behavior checks rather than skipping failing coverage.

Validation: canonical RAK3x72, Wio Mini, Wio Dev and Tiny Relay USB Companion
packages and Mini Repeater build passed at release-version length. All
post-failure host checks, compact arithmetic/float checks, build-profile and
real PlatformIO recipe/path/RAM-policy checks passed locally.
2026-10-25 22:00:24 -07:00
mikecarper ad34fd3a0d Integrate W12 RF switching and LR2021 receive PRs
Adapt upstream MeshCore #3579 at 7457cff43c22697119e06ad7d192a37de0990403:
retain GC1109 LF standby bias, with checked cold controls before band supply
changes and shutdown. Preserve exclusive LF/HF rails and TX error cleanup.
Reset before boot rail changes and before SPI-dependent hard recovery.

Retain our stronger implementation of #3512 at
d208bfef94ab83280de30ba4a0675ff73b3ecef3. Add regressions for suspect FIFO
contents, failed RX_DONE acknowledgement, and fresh preamble timing.
W12 TX power defaults from #3319 were already included via 65aa1138a.

Validation: 79 targeted native tests; canonical W12 Full repeater and Full
Companion builds, capability checks, app-size and RAM checks passed.
Physical W12 RF envelope, current and LoRa management confirmation remain.

Upstream PRs:
https://github.com/meshcore-dev/MeshCore/pull/3579
https://github.com/meshcore-dev/MeshCore/pull/3512
https://github.com/meshcore-dev/MeshCore/pull/3319
2026-10-25 15:46:18 -07:00
mikecarper 73c5f572eb Apply busy radio settings and recover service starts automatically
Save valid busy RX, fast-switch and Companion tuple changes once, then
apply the latest accepted intent at a safe radio gap. Preserve checked-save
rollback, runtime RXEN intent, TempRadio ownership and exact remote reply
delivery. Repair failed preamble compensation without hiding uncertain saves.

Retry WebConfig, MQTT and NimBLE startup failures automatically. Preserve
explicit off choices, OTA ownership and the latest WiFi credentials through
cooperative shutdown. Add regression coverage and update command guides.

Validation: focused host transaction, rollback, ownership and lifecycle suites;
Full RAK4631, Heltec V4 R8 TFT and RC32 packages; representative room, sensor,
LR1110, LR2021, SX1276, STM32WL and ESP-NOW builds. Linked RAK crypto and OTA
workspace checks pass; its complete OTA image uses 712644/712704 bytes.
2026-10-25 15:20:55 -07:00
mikecarper fb73e3afac Add automatic red and black night mode for color screens
Default to one hour after sunset through sunrise, using fresh cached GPS or recent direct RF neighbor locations. Provide saved CLI and WebConfig controls with a small integer solar approximation and no additional framebuffer.
2026-10-25 14:41:14 -07:00
mikecarper 94139c79be Use production radio apply results in WiFi safety tests 2026-10-25 14:10:02 -07:00
mikecarper 65928aae95 Apply saved TX power automatically across firmware roles 2026-10-25 14:08:15 -07:00
mikecarper 31e5d54074 Align receive-recovery tests with verified TX power state 2026-10-25 13:12:20 -07:00
mikecarper 59445066fe Expose Companion RXPS settings through the app console 2026-10-25 12:05:39 -07:00
mikecarper 2c3e75326d Fix Ethernet runtime test read ownership races 2026-10-24 23:41:05 -07:00
mikecarper 4fd3358a45 Add saved node and region discovery response switches 2026-10-24 20:37:51 -07:00
mikecarper 06edf9aa8a Pin historical G3 catalog fixtures for sensor routing tests 2026-10-24 16:51:42 -07:00
mikecarper ec478c30ed Publish 1.18.0.1 release catalogs and bootloader picker choices 2026-10-24 13:58:25 -07:00
mikecarper 21194b9825 Fix compile and capacity blockers in the full release matrix
Resolve Serial macro and ESP-NOW wrapper compilation errors. Preserve queue, neighbor, advert-history and Room post capacities while using qualified RTC, PSRAM and word-only IRAM storage on constrained ESP32 targets. Reduce Full infrastructure flash through lossless Room web compression, compact crypto and unused exception metadata removal.

Add focused native regressions for storage ownership, exact protocol output, OTA proofs and build policy. Keep physical flash sizes, OTA slots and RAM guard formulas unchanged.
2026-10-24 05:38:23 -07:00
mikecarper 98c2858087 Warn admins on login while the default password is unchanged 2026-10-24 01:05:49 -07:00
mikecarper bbe29fbf95 Add saved telemetry packet type controls 2026-10-23 21:32:47 -07:00
mikecarper 553957fff8 Space telemetry batch packets 90 seconds apart 2026-10-23 19:52:01 -07:00
mikecarper c563c40c66 Fix firmware size limits and refresh CI compatibility checks
Compact the existing STM32 field arithmetic and ESP-NOW tail-frame storage without removing features or lowering memory reserves. Refresh power-saving fixtures and pin official-app tests to a published archive.
2026-10-23 19:04:43 -07:00
mikecarper b8929c15fe Keep ESP-NOW TX seen keys instead of duplicate packet snapshots 2026-10-23 18:57:57 -07:00
mikecarper e13d24020a Cover RXPS arm retry state in radio diagnostics reset fixture 2026-10-23 18:56:00 -07:00
mikecarper 9da754b137 Support SenseCAP Solar P1 bootloader identity separately from XIAO 2026-10-23 16:51:34 -07:00
mikecarper 9b0e013f4b Merge PowerSaving-v18 into keymindCascade
Integrate the ESP32 power-saving core and RXPS recovery/status updates while preserving radio2, telemetry and saved settings.
2026-10-23 16:11:49 -07:00
mikecarper 84cae8a774 Show last completed telemetry transmission age 2026-10-23 15:12:42 -07:00
mikecarper a032d53004 Repair stale CI fixtures for shared help and radio controls
Allow saved radio-fast metadata in the persistence harness, follow shared raw and packed CLI help, refresh reviewed help snapshots, and update HAL, build-hook and SD helper mocks without changing firmware behavior.
2026-10-23 13:56:39 -07:00
mikecarper 837847f891 Record SPI9 hardware checks and fix idle sleep test fixture 2026-10-23 13:18:04 -07:00