Commit Graph
124 Commits
Author SHA1 Message Date
liu weikai b5b0a2597b feat: prepare 1.1.0 Linux device release and mesh reliability fixes 2026-11-08 20:59:12 +08:00
liu weikai 8bc50ffc22 fix: repair MC and MT node discovery and peer key propagation
Schedule Linux self announcements and retain full MeshCore discover keys.
Align adapter and worker PKI readiness, converge node metadata with public-key
identities, and preserve projected node IDs across persistence and restart.

Avoid routing-prefix self collisions and use local receive time for Nearby
freshness on embedded MC paths. Start MT NodeInfo reply suppression only after
successful transmission.

Add paired-radio discovery/direct-message, directory migration and worker
regressions with English audit and validation notes.
2026-11-08 13:53:15 +08:00
Trail Mate Dev 4732374d04 feat: add receiver views and contextual OFDM help 2026-11-03 11:03:51 +08:00
Trail Mate Dev 5fe456ac52 feat: connect OFDM subcarrier learning views to coherent symbols
Add full-carrier resource grids, selected raw/equalized/channel/reference phasors, exact phase linkage, orthogonality/CFO/CP models and capacity explanations. Preserve source and generation identity, compact CM0 geometry and receiver defaults. Use bounded float32 carrier chunks to retain reception throughput; cover native, synthetic, replay and ARM UI flows.
2026-11-03 02:25:46 +08:00
Trail Mate Dev 074273c4cb feat: add native OFDM learning workbench
Expose signal-chain controls, mathematical previews, actual phase forecasts and residuals, channel and FEC diagnostics, IQ recording/replay, and synthetic OFDM experiments. Preserve qualified CM0 defaults and compact FFT/NEON decoding, batch diagnostics for real-time reception, and package verified backend sources.
2026-11-02 21:43:49 +08:00
Trail Mate Dev ef88a4ca63 fix: keep capture GPIO handles inside locked transport storage
Replace Linux HAL's separately allocated map nodes with bounded owned
storage while preserving its count/find/index/iteration/clear interface.
BUSY polling now reads handles retained by the transport object's memory
lock instead of depending on the capture worker's allocator arena.

Revert broad anonymous-map admission, which exceeded the device's existing
48-MiB admission budget. Keep main-heap/runtime/stack admission bounded.
Verify an owner allocated on the main thread and initialized on a worker
has locked handle storage, plus lookup, replacement, capacity and reuse.

Validation: focused capture-memory/handle regression passed; clang-format
14 and staged diff checks passed. GitNexus reports Linux HAL class impact
as medium (six direct dependencies); its broad pinMode graph is critical,
so that function implementation and its callers remain unchanged.
2026-11-02 09:53:11 +08:00
Trail Mate Dev f64509de02 fix: include worker allocator arenas in capture memory admission
GPIO initialization occurs on the capture worker, whose allocator arena is
a private anonymous mapping rather than the main process heap. Include
readable private writable anonymous mappings in the existing bounded
admission, while retaining the current-stack window and 48-MiB ceiling.

Run the map-node residency regression inside a real worker thread. This
fails even with main-heap locking and passes with anonymous arena locking.

Validation: worker-thread capture memory regression passed; clang-format14
and staged diff checks passed. GitNexus change analysis was run but this
inline class is absent from the index; direct source diff remains limited
to capture memory admission and its regression.
2026-11-02 09:46:31 +08:00
Trail Mate Dev 883e312a55 fix: lock heap-backed GPIO state before 1seg DMA capture
Include the process heap in the bounded capture memory admission. Locking
the radio object alone does not retain separately allocated GPIO map nodes
that are read during BUSY polling. A failing transfer recorded a minor
page fault during a 1099-us BUSY wait.

Add a regression that checks a real std::map node's locked VMA flags. It
fails with the old admission and passes with heap admission. Preserve the
48-MiB cap and fail-closed behavior. Live RF endurance still needs validation.

Validation: 31 1seg tests passed; ARM application/helper build succeeded;
clang-format 14 and git diff checks passed. GitNexus impact/change analysis
was attempted; the inline memory class is not indexed, so its graph result
does not cover this change. Direct source review limits the diff to memory
admission and its regression.
2026-11-02 09:43:22 +08:00
Trail Mate Dev ff556e38c0 feat: add 1seg reception tuning and FIFO timing visualization
Expose sample rate, SPI clock and receiver gain in the TV page, persist the
selection, and restart capture and decoding with matching per-generation
parameters. Use 450 kpair/s, 8.7 MHz and gain 9 as the current test baseline.

Present ideal FIFO fill/drain curves beside measured reception counters,
separate preview settings from active settings, and keep the fixed 320x240
video beside programme information. Document that capture timing failures
remain unresolved and that SPI bulk transfers already use DMA.

Validation: 31 1seg tests; actual LVGL page regression with offline IQ and
synthetic metadata, parameter application and reopening persistence; ARM
application/helper compilation; clang-format 14; UI boundary, root artifact
and ESP stack hygiene guards; staged GitNexus change analysis.
2026-11-02 03:34:42 +08:00
Trail Mate Dev ad5aa8bb6f fix: bound image fixtures and restore WebAssembly preview headers 2026-11-01 22:14:11 +08:00
Trail Mate Dev b10cbf316b fix: stabilize CM0 1seg reception and repair CI regressions
Keep IQ capture isolated from decoder startup and rendering, bound transport
backpressure, validate DMA batches before publication, and expose playback
telemetry. Preserve radio restoration and add capture, transport, media and
SDL regression coverage. Document user-accepted CM0 and Sony reception and
the limits of the one-shot kernel experiment.

Repair stale preview TileContext initialization, missing simulator link
sources and Cardputer SDL dependencies. Align menu and radio-log contracts
with current implementations, keep AutoInterface port admission covered,
refresh source inventories, and apply the CI clang-format 14 rules.

Validation: 45 Agenda tests, 30 1seg tests, 8 LR2021 IQ tests, 17 native config
interop tests, ESP stack hygiene, platform/root guards, source inventories,
clang-format 14, git diff --check, and staged GitNexus detect_changes.
2026-11-01 09:39:20 +08:00
liu weikai 05d75d6617 feat: integrate LR2021 FM and CM0 1seg TV with radio UI fixes 2026-10-31 21:24:34 +08:00
Trail Mate Dev 6e613e382e Add CM0 Linux support and share device services across platforms
Compose the CM0 fullscreen application and standard Debian package, align the
Cardputer Zero shell, and share protocol, configuration, audio and storage
services with embedded targets through existing platform seams.

Add the paginated on-device TMAP creator using Center's published producer,
private workspace recovery and direct keyboard shortcuts. Preserve unfinished
management work behind its existing opt-in capability.

Include native, ARM and shared-core regression fixtures, integration records,
packaging helpers and dependency/license updates. Keep local build trees,
device credentials, produced packages and validation logs outside version control.

Validation before integration: ESP stack hygiene, Reticulum scope guard, staged
whitespace checks and GitNexus scope audit. Prior device/build evidence and
remaining hardware/package boundaries are recorded in the acceptance documents.
2026-10-29 10:29:29 +08:00
liu weikai 40e460bf9f Improve device widgets, music playback, and native navigation
Fix P4 control and keyboard integration, use content fonts throughout Music, filter Compass by magnetometer capability, and reduce playback scheduling and SD overhead with L2 audio diagnostics.

Include current navigation, contacts, SD, browser documentation, and regression coverage for remote device testing.
2026-10-16 18:44:54 +08:00
liu weikai 3df8082d2c Add PSRAM music playback and coordinated device widgets 2026-10-16 11:58:53 +08:00
liu weikai f7fc43304c feat(firmware): add bounded USB configuration and device author operations 2026-10-14 15:17:10 +08:00
liu weikai a3acc716ea fix(geocaching): preserve settings in full app catalog and repair CI checks
Allow all 17 apps in the catalog and menu, update the Agenda catalog fixture, distinguish fixed array capacity from whole-file GPX reads, and normalize inherited formatting with clang-format 14. Catalog and streaming-guard regressions passed.
2026-09-24 21:03:33 +08:00
Trail Mate Dev 7fdc3c8108 Merge main into Geocaching development
Integrate origin/main at 6941943ddd.
Preserve Geocaching target overlays alongside Agenda map selection and target
requests; include target sessions in coordinate conversion and route loading
guards. Retain main's SD transport, map lifecycle and Settings changes.

Track the fixed Geocaching protocol fixtures previously excluded by *.bin.
Update map gesture regression expectations for the Geocaching tap event while
preserving drag/release coverage.

Validation: Geocaching core/UI, Agenda, waypoint, map gesture/Settings/tile
image, SD transport/filesystem (Ubuntu GCC), SD record I/O, Python contracts,
ESP stack hygiene, and tlora_pager_lr1121 firmware build passed.
Geocaching remains WIP; no indexed-storage cutover or device acceptance is claimed.
2026-09-24 09:10:28 +08:00
Trail Mate Dev 3d65ece83d WIP: checkpoint geocaching before main integration 2026-09-24 08:47:53 +08:00
liu weikai 8eeccc7b6b Prepare 0.1.48-alpha: optimize SD transports and repair map lifecycle 2026-09-20 18:00:31 +08:00
Trail Mate Dev 63d04fbfa2 feat(screen): add resume API and swipe-up gesture for Wio L2 2026-09-18 14:52:57 +08:00
liu weikai 27a0049f3b fix(ci): preserve timezone persistence boundary 2026-08-28 11:59:12 +08:00
liu weikai f6bb408279 fix(ci): restore USB runtime interface parity 2026-08-24 20:49:41 +08:00
liu weikai 4b2d966281 feat(config): make SD TMS authoritative and USB-safe 2026-08-24 14:59:37 +08:00
liu weikai fd093d60bc feat(config): complete SD working configuration 2026-08-20 12:33:26 +08:00
liu weikai a58304b3d1 feat(config): add TMS persistence and English documentation 2026-08-20 10:55:40 +08:00
Trail Mate Dev 22e4561590 fix(ci): restore Linux and Cardputer release checks 2026-08-14 15:41:00 +08:00
Trail Mate Dev d20ed0ad36 feat(tdeck-pro): add e-paper text UI and A7682E support 2026-08-13 14:02:32 +08:00
liu weikai c715c72d78 feat(radio): add protocol probe 2026-08-11 09:30:56 +08:00
liu weikai 6bc25ce5e1 feat(packet-probe): replace energy sweep with protocol probing 2026-08-09 23:15:26 +08:00
Trail Mate Dev dceaf58e28 refactor(config): remove deprecated mutable config access 2026-07-29 13:58:48 +08:00
Trail Mate Dev ef529a2255 refactor: consolidate storage maintenance ownership 2026-07-28 19:26:40 +08:00
Trail Mate Dev bab0dcceb3 refactor app config persistence ownership 2026-07-26 18:08:15 +08:00
Trail Mate Dev 1bb0ee3b35 refactor: harden shared SPI ownership and ESP memory use 2026-07-26 14:02:58 +08:00
liu weikai 8389c4fa88 complete screen power input state machine 2026-07-25 16:46:47 +08:00
liu weikai bcff97afd9 fix: bind uconsole GPS page to AIO2 runtime 2026-07-24 18:22:18 +08:00
liu weikai ec548393b4 fix: remove seams between uconsole map tiles 2026-07-24 17:51:56 +08:00
liu weikai 466be8d6fc fix: share map tile placeholders and throttle refresh 2026-07-24 17:44:09 +08:00
liu weikai 5d46dc91b0 fix: reserve footer space for help key 2026-07-24 17:35:48 +08:00
liu weikai 3d16605e14 fix: fit complete map shortcut legend 2026-07-24 17:33:53 +08:00
liu weikai e765cdab82 fix: keep full shortcut footer visible 2026-07-24 17:32:02 +08:00
liu weikai 71d59603d8 fix: compact uconsole shortcut footer 2026-07-24 17:30:05 +08:00
liu weikai ae4b7357d4 fix: make map shortcuts responsive 2026-07-24 17:28:04 +08:00
liu weikai 53e88dda49 fix: prevent footer shortcut clipping 2026-07-24 17:24:55 +08:00
liu weikai b28591530a fix: fit uconsole footer shortcuts 2026-07-24 17:22:44 +08:00
liu weikai 7ceda37863 feat: render uconsole shortcuts as keycaps 2026-07-24 17:20:11 +08:00
liu weikai 98ab3bcb26 feat: add pager-style uconsole map shortcuts 2026-07-24 17:12:28 +08:00
liu weikai df61530b24 fix: show map page keyboard hint 2026-07-24 17:06:43 +08:00
liu weikai 3a31367866 refactor: share canonical map tile geometry 2026-07-24 17:01:35 +08:00
liu weikai d2ef6ab776 fix(uconsole): render the full five by three tile grid 2026-07-24 16:54:14 +08:00