Commit Graph
935 Commits
Author SHA1 Message Date
mikecarper aa2cfaba62 Retain USB packet logging in canonical nRF sensor OTA pairs 2026-10-17 15:50:19 -07:00
mikecarper 29f6ffa2be Delay displayed radio preamble advice for two minutes 2026-10-17 14:45:33 -07:00
mikecarper bd6f721a6b Fix hosted links for new power-saving documentation 2026-10-17 13:44:40 -07:00
mikecarper d845c6545e Fix W12 TX prearming without standby PA drain 2026-10-17 13:36:38 -07:00
mikecarper 5d525b88f2 Allow safe nRF52 MCU idle between radio2 scan deadlines 2026-10-17 13:21:05 -07:00
mikecarper 6921e0d364 Avoid flash load image for the empty contact-path cache 2026-10-17 11:57:05 -07:00
mikecarper c0672b9010 Initialize DC/DC on nine circuit-verified nRF52 boards 2026-10-17 11:42:21 -07:00
mikecarper 811f568838 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-17 11:37:01 -07:00
mikecarper 39b9f9b440 Enable RAK4631 Companion DC/DC in all transports 2026-10-17 11:35:50 -07:00
mikecarper ecbeb91617 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-17 11:22:33 -07:00
mikecarper e0096c5bb5 Fix T096 Companion runtime RAM with RGB332 framebuffer 2026-10-17 11:22:15 -07:00
mikecarper eb74c74e39 Preserve millisecond power-saving deadlines across roles 2026-10-17 11:21:48 -07:00
mikecarper 189a6de830 Retain valid noise floors during adaptive AGC maintenance 2026-10-17 11:06:10 -07:00
mikecarper bd09019ada Sleep between noise-floor samples and reduce idle refreshes 2026-10-17 10:18:14 -07:00
mikecarper 190941e7b8 Enable contact caching for high-capacity nRF52 companions 2026-10-17 10:14:17 -07:00
mikecarper 5996b2e294 Reuse active Sensor tracker wake deadlines 2026-10-17 02:25:37 -07:00
mikecarper 9c50eb15e1 Fix nRF52 idle sleep event and CryptoCell handling 2026-10-17 02:22:26 -07:00
mikecarper e1a72ac147 Add on-demand power-saving diagnostics 2026-10-17 01:15:54 -07:00
mikecarper f9e145216f Preserve current Room downloads during QSPI rollout 2026-10-16 23:46:21 -07:00
mikecarper 71210f0a39 Consolidate onboard QSPI infrastructure build profiles 2026-10-16 23:42:10 -07:00
mikecarper bf07999e12 Retire internal-only SolarXiao Room release variants 2026-10-16 23:24:36 -07:00
mikecarper 9963d798e2 Preserve armed OTA handoffs when debug resume is requested 2026-10-16 15:43:32 -07:00
mikecarper ebf6454cca Restart contact streams after storage recovery
Release cached path snapshots before resetting contacts while retaining the requesting transport and table revision for a complete stream restart. Keep explicit session cancellation unchanged and avoid copying uncached contact buffers.

Cover cached and uncached recovery, transport isolation, empty reloads, backpressure, and the former cancellation as a negative control.
2026-10-16 09:11:19 -07:00
mikecarper 7b2daaed9f Preserve accepted contacts after transient path read errors
Recheck cached immutable paths before resetting the live table after raw I/O failure. Keep accepted RAM mutations, current jobs and save deadlines when reads recover; stronger source or publication uncertainty still forces full recovery. Use the existing recovery byte and a fixed scratch buffer, with no cache allocation or eviction.

Cover full-cache transient recovery, persistent I/O and checksum failures, nRF unread-scope restoration, active ESP jobs, real uncertain publication and unchanged lazy deadlines with sanitizer tests and restored-reset negative controls.
2026-10-16 08:54:12 -07:00
mikecarper fbd5c84ec4 Preserve contacts when source discovery is unknown
Do not classify legacy or page-name stat errors as unread payloads. Keep candidate contact files unchanged, retry source selection, and use bounded volatile operation if authority remains unknown. Cover legacy absence, downgrade leftovers, cleanup-time metadata recovery and persistent faults with actual-source sanitizer tests and restored-bug negative controls.
2026-10-16 08:38:26 -07:00
mikecarper 2311160a97 Recover unreadable contacts without stranding Companions
Verify fallback namespace moves before accepting publication or rollback. Reload readable contact images at a safe host boundary, discard only unreadable contact data after bounded retries, and permit volatile operation when storage cannot recover. Preserve unrelated stores and fail explicit durability requests truthfully.

Keep existing flash, RAM, OTA and capability limits by streaming nRF52 preferences through the validated wire table and sharing identical contact deadline resets. Add fault-injection, sanitizer, legacy-image parity and CLI lifecycle regressions.
2026-10-16 08:28:45 -07:00
mikecarper 880733c209 Hold fleet authority after uncertain settings publication 2026-10-16 06:53:19 -07:00
mikecarper a4f833f0da Preserve radio2 ACK ownership without extending expired leases
Keep tracked reply generations stable in feature-off builds as well as optional transport builds. After ACK copies drain, let expired temporary profiles restore saved settings while failed permanent commits stay staged and retry.

Cover packet generations, rollover, persistent commit faults, cancellation and eventual commit across feature-off, Meshtext and Ethernet configurations. Document ACK ownership and post-reply storage retry behavior.
2026-10-16 06:02:01 -07:00
mikecarper 16749091ff Keep RAK Companion Ethernet waits off the mesh loop
Run DHCP and renewal in a cooperative worker, bound socket commands, and retain SPI ownership until cleanup is safe. Preserve framing deadlines, response ownership and whole-frame replay, including pending-ACK queue pinning.

Budget the worker additively and retain all OTA names with an exact-checked Full-only compact index. Add full-driver, sanitizer, queue, shutdown, storage and memory regression coverage.
2026-10-16 02:23:03 -07:00
mikecarper c0362a5dfc Restore RX power saving after deferred calibration cleanup 2026-10-16 01:42:37 -07:00
mikecarper 6fa2a6ad0a Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-16 01:27:24 -07:00
mikecarper 7a1b4d026b Bound failed RX retries without blocking power-saving sleep 2026-10-16 01:27:24 -07:00
mikecarper e62d9866a2 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-16 01:18:26 -07:00
mikecarper 3804bca99a Add adaptive RAK4631 SD storage to full firmware profiles 2026-10-16 01:18:26 -07:00
mikecarper c1104090c4 Validate beacon power without stranding saved settings 2026-10-16 00:39:07 -07:00
mikecarper edd84b3880 Add opt-in decoded-channel Meshtext rebroadcasting 2026-10-15 23:39:05 -07:00
mikecarper 20e5e0b8e3 Keep local onboarding notices behind real Companion traffic 2026-10-15 23:37:17 -07:00
mikecarper 7b27dc50af Seed a quiet local emergency-channel notice on Companion joins 2026-10-15 23:16:27 -07:00
mikecarper 8cce02012a Fix missing Waveshare LR1121 observer migration metadata 2026-10-15 22:51:36 -07:00
mikecarper 7916f144f2 Publish one auto-slot Station G3 firmware choice per profile 2026-10-15 22:30:37 -07:00
mikecarper f765604cb8 Fix peripheral power shutdown and auto-detect Station G3 radio slots 2026-10-15 22:30:37 -07:00
mikecarper c176b1349e Fix Meshtext metadata lifecycle and radio2 readiness refresh
Delay automatic GPS-free NodeInfo until a quiet TX gap, invalidate stale metadata after durable node renames, and refresh the profile when same-tuple publication releases its busy guard. Cover the real Companion methods and document the behavior.
2026-10-15 21:05:14 -07:00
mikecarper 8c9ea0d18d Announce MeshTalk identity after first chat and retry until heard 2026-10-15 17:57:34 -07:00
mikecarper 88de438620 Add configuration-preserving Waveshare observer partition migration 2026-10-15 17:37:52 -07:00
mikecarper 4c51ef7341 Add opt-in RAK15002 SD firmware seeder with isolated SPI and cache regression tests 2026-10-15 15:10:44 -07:00
mikecarper ecd8e51f84 Merge observer firmware with persistent opt-in advert signature verification
Add Waveshare LR1121 observer recipes. Adapt observer advert verification to existing transactional CLI, append-only binary preferences and Companion NVS, preserving default file lengths and WiFi credentials. Reject oversized unsigned advert tails consistently with Mesh::onRecvPacket. Keep current BLE recovery and GPS claim accounting.
2026-10-15 13:45:27 -07:00
mikecarper f3aa936c41 Merge meshcore-dev dev with routing, WiFi and power-policy compatibility
Integrate upstream 1.18.0, delayed direct ACK forwarding, zero-scope routing, Waveshare LR1121 and dynamic WiFi variants. Preserve fork chemistry-aware power management and bounded multi-interface UI; retain retry/dedup safety while adding upstream ACK delay. Qualify LR1121 band power and HP-only Morse handling with native regressions.
2026-10-15 13:30:41 -07:00
mikecarper e511bf6c1e Cover new transports in CI and repair hosted beacon documentation link 2026-10-15 11:06:11 -07:00
mikecarper 938f637487 Share radio2 raw transport for Ethernet and negotiated direct LoRa OTA 2026-10-15 11:05:21 -07:00
mikecarper 9969a17831 Preserve MeshCore preambles with Meshtext and allow MQTT upload 2026-10-15 11:04:38 -07:00