Commit Graph
382 Commits
Author SHA1 Message Date
mikecarper c9acec474b Record final emergency power and constrained-profile build checks 2026-10-28 05:07:58 -07:00
mikecarper e86710eda2 Document emergency power controls and record three-board wake tests 2026-10-28 03:40:25 -07:00
mikecarper dfef59331c Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-28 02:33:24 -07:00
mikecarper b18ba8288a Report the running firmware USB mode without disturbing logging 2026-10-28 02:14:11 -07:00
mikecarper f4f9453248 Suspend the RAK3401 amplifier during emergency sleep 2026-10-28 02:12:04 -07:00
mikecarper 0c7dec9f19 Add an hourly emergency battery sleep schedule for infrastructure nodes 2026-10-28 02:06:58 -07:00
mikecarper 05679aa741 Add a saved override to keep USB packet logging continuous 2026-10-27 18:47:05 -07:00
mikecarper b3df8bfd3f Quiet USB packet logs for five minutes after console commands 2026-10-27 18:19:19 -07:00
mikecarper ff1ccacb2a Support LR1121 RX duty-cycle power saving 2026-10-27 14:34:55 -07:00
mikecarper 85fd38290b Show first-boot key progress with accumulating e-paper dots 2026-10-27 13:26:28 -07:00
mikecarper 71e42b2e62 Manage MediaMesh forwarding region with saved radio2 profiles 2026-10-26 22:15:37 -07:00
mikecarper cb3c92a8da Add saved raw radio2 KISS host sessions to Full firmware 2026-10-26 16:57:49 -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 b00d346df7 Unify Heltec V4 OLED, TFT and headless display selection
Detect OLED or the original stock TFT touch assembly in ordinary V4.2/V4.3
images. Add saved live display.type auto/oled/tft/off selection and report
the active selection in board output. Keep sensors on primary I2C, preserve
shared power, and isolate TFT FSPI from radio HSPI through sleep and changes.

Consolidate future picker/build choices only with application capability
proof. Retain exact legacy OTA identities and separate R8 hardware images.
Document controls and physical qualification limits.

Validation: five serialized Full builds with capability/size/RAM checks;
focused host tests, existing R8/T-Deck/OLED regressions, build-profile suite,
and picker/provider tests. V4.3 OLED live changes and off/auto reboot
persistence passed on Mercerwood. Physical TFT qualification remains pending.
2026-10-26 15:19:17 -07:00
mikecarper a87b2a33a3 Fix LR2021 TempRadio with incompatible extra-SF detectors
Temporarily disable incompatible cached side detectors while applying a temporary primary tuple, preserving their saved configuration for normal restoration. Use primary-only CAD while those detectors are suspended. Keep compatible temporary detectors and real hardware errors intact.

Report pending TempRadio starts instead of off, preserve live-tuple status during replacements and future schedules, and include the two-second delay in the accepted reply. Share primary validation to retain STM32 Mini flash capacity without dropping features.

Validated production CLI status, scheduler and persistence cases; LR2021 detector suspension, restoration, CAD and hardware-error paths; reply handoff, room/sensor recovery, Morse and OTA automation regressions. W12 repeater, room-server and sensor builds pass. Canonical STM32 Mini Repeater passes flash and runtime RAM admission with 436 bytes of flash remaining. Physical W12 RF testing remains unverified.
2026-10-26 00:58:57 -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 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 65928aae95 Apply saved TX power automatically across firmware roles 2026-10-25 14:08:15 -07:00
mikecarper af69918094 Honor saved WebUI off during unconfigured boot setup
An enabled MQTT bridge without a saved SSID forced WebConfig back on at boot,
even after set webui off. Its setup AP also suspended an enabled ESP-NOW bridge.

Use first-time MQTT setup as the default only when no WebUI choice is saved.
Apply the saved on/off setting afterward in Repeater and Room Server. Preserve
first-time provisioning and explicit starts.

Add executable boot regressions for both roles with unset, on and off WebUI
settings and configured/unconfigured WiFi. Update setup and picker guidance.
2026-10-25 09:07:47 -07:00
mikecarper 4c94d6b4e4 Default Cascade Companions to two-byte path hashes 2026-10-24 23:52:54 -07:00
mikecarper 4fd3358a45 Add saved node and region discovery response switches 2026-10-24 20:37:51 -07:00
mikecarper b9c0ede82a Refresh LoRa OTA guides for 1.18.0.1 2026-10-24 19:12:11 -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 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 ea4b53ceee Enable direct-route echo retries for telemetry snapshots 2026-10-23 15:00:42 -07:00
mikecarper d6853f4521 Add saved 9 MHz alias for supported 8.889 MHz SPI clocks 2026-10-23 12:54:54 -07:00
mikecarper 4c0f2acf64 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-23 10:41:27 -07:00
mikecarper 61d024bc72 Add saved controls for radio switching acceleration 2026-10-23 10:41:26 -07:00
mikecarper 99eb24736f Limit Meshtext messages to 15 total attempts
Stop on a matching forwarded echo and preserve lower saved retry settings. Keep scheduled beacons on their separate single-send path.
2026-10-23 10:33:21 -07:00
mikecarper 807343de8d Share Companion hardware diagnostics and protect RXEN reconfiguration 2026-10-23 08:57:51 -07:00
mikecarper 1412ee4954 Prioritize ESP32 Auto CPU speed during dual-profile radio scanning 2026-10-23 02:34:50 -07:00
mikecarper ab6412e73c Add persistent battery ADC calibration across boards
Add meter-reference calibration with saved ADC corrections, checked persistence and rollback. Preserve existing board coefficients and nRF52 voltage policy, and merge the Mini Repeater feature gates.

Validation: 69 focused tests, hosted documentation checks, and four firmware builds passed. Mini Repeater retains calibration and its existing filesystem with 376 flash bytes free; earlier Mini Sensor size failures remain documented.
2026-10-22 18:56:32 -07:00
mikecarper 94a3b7e568 Omit optional battery controls from Mini Repeater 2026-10-22 18:13:14 -07:00
mikecarper af106a0ee9 Add optional battery thresholds for repeat and flood forwarding 2026-10-22 17:33:23 -07:00
mikecarper f4ade738df Add packed noise-floor telemetry history for both radio profiles 2026-10-22 16:50:31 -07:00
mikecarper 5e25faa3d0 Add station-only WiFi UDP bridge with eight authenticated peers 2026-10-22 12:20:43 -07:00
mikecarper 281f1a5199 Add runtime RS232 bridge diagnostics and wired link probes 2026-10-22 11:51:56 -07:00
mikecarper e7b863494c Record ESP-NOW diagnostic build and host validation 2026-10-22 11:40:44 -07:00
mikecarper 14682de00e Add runtime ESP-NOW bridge diagnostics and link probes 2026-10-22 11:30:28 -07:00
mikecarper 882c927185 Clean MeshPocket page changes and extend e-paper idle timeout 2026-10-22 00:21:36 -07:00
mikecarper 7d0709bf03 Park paused UART sessions and timestamp ESP32 sleep calls 2026-10-21 23:24:07 -07:00
mikecarper a3d77a9a76 Clean project references and separate optional bench tooling
Remove unrelated ecosystem comparisons and software citations while retaining hardware links, measured model names, and required license notices.

Preserve stock-peer runners and tests in a verified local validation package. Keep shared Companion USB transport in the firmware repository for the raw-radio sweep and OTA seeder, with focused CI coverage. Restore missing hosted documentation links.
2026-10-21 17:35:37 -07:00
mikecarper 804219e9fe Detect SolarXiao MPPT automatically and support Base self telemetry 2026-10-21 16:32:03 -07:00
mikecarper e6b08cafab Add explicit SolarXiao Advanced carrier selection and capability reporting 2026-10-21 16:18:18 -07:00
mikecarper 2dcc1caccb Add native SolarXiao MPPT and battery telemetry and controls 2026-10-21 15:25:53 -07:00