Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/firmware.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:

- name: Run Python tooling selftests
run: |
python -m py_compile scripts/check_tdeck_budget.py scripts/fetch_tdeck_artifact.py scripts/serial_harness.py scripts/tdeck_smoke.py scripts/tdm_airtime_smoke.py
python -m py_compile scripts/check_tdeck_budget.py scripts/fetch_tdeck_artifact.py scripts/serial_harness.py scripts/tdeck_smoke.py scripts/tdm_airtime_smoke.py scripts/mc_companion_usb_smoke.py scripts/mc_companion_ble_smoke.py
python scripts/tdm_airtime_smoke.py --selftest
- name: Validate local app samples
run: |
Expand Down
15 changes: 9 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,14 @@ iPhone-style dark look (status bar, battery glyph, grouped settings cards).
enabling one frees the other.

### 🔭 Later
- **MeshCore companion bridge** — V0 protocol foundation is drafted, and an
initial `companion mc ...` USB serial-console smoke surface can report
snapshots and exercise send boundaries; the formal USB/BLE bridge remains
planned, and it is not official MeshCore app compatible unless the real
MeshCore app protocol is confirmed.
- **MeshCore companion bridge** — V0 USB foundation is in progress:
`companion mc ...` covers console smoke, and `companion mc usb on` enters
formal MC0 mode for identity/status/node/thread snapshots, send boundaries,
revision counters, event controls, and bounded node/message/TX event draining.
Private MC0-over-BLE transport is available for LimitlezzOS/test clients via
`companion mc ble on` and the custom `Limitlezz-MC0-*` GATT service. It is not
official MeshCore app compatible unless the real MeshCore app protocol is
confirmed and mapped.
- **Roll the iPhone look everywhere** — grouped cards / dividers across Messages, Nodes, Contacts.
- **Local app platform** - scan local app manifests from `/sd/limitlezz/apps`,
`/sd/apps`, `/appfs/apps`, and simulator data dirs, then show accepted apps
Expand Down Expand Up @@ -185,7 +188,7 @@ iPhone-style dark look (status bar, battery glyph, grouped settings cards).
- [`docs/tdeck-firmware-audit.md`](docs/tdeck-firmware-audit.md) - current firmware audit and risk list.
- [`docs/tdeck-feature-inventory.md`](docs/tdeck-feature-inventory.md) - feature-by-feature implementation inventory.
- [`docs/tdeck-firmware-roadmap.md`](docs/tdeck-firmware-roadmap.md) - roadmap to a complete T-Deck firmware.
- [`docs/tdeck-meshcore-companion-protocol.md`](docs/tdeck-meshcore-companion-protocol.md) - draft Phase 5/V0.8 MeshCore companion line protocol.
- [`docs/tdeck-meshcore-companion-protocol.md`](docs/tdeck-meshcore-companion-protocol.md) - Phase 5/V0.8 MeshCore companion V0 protocol.
- [`docs/tdeck-hardware-dogfood-checklist.md`](docs/tdeck-hardware-dogfood-checklist.md) - stock-device hardware proof checklist.
- [`docs/tdeck-release-checklist.md`](docs/tdeck-release-checklist.md) - slow-host Actions artifact and COM8 release evidence checklist.
- [`docs/tdeck-troubleshooting.md`](docs/tdeck-troubleshooting.md) - build, flash, boot, radio, storage, Wi-Fi, and companion troubleshooting.
Expand Down
2 changes: 1 addition & 1 deletion docs/tdeck-feature-inventory.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ Status labels:
| MeshCore self-advert TX | Partial, needs validation | Ed25519 identity, self-advert builder, serial/UI advert commands | Needs interop proof with real MeshCore nodes. |
| MeshCore public channel / rooms | Planned | README says receive/default Public channel still ahead | V0.6: implement group text decode/send, room model, and split airtime config. |
| MeshCore DMs | Planned | MeshCore contacts are non-messageable while gated | V0.7: implement key/session model, send path, ACKs, and UI routing. |
| MeshCore companion bridge | Planned/In progress | `docs/tdeck-meshcore-companion-protocol.md` drafts the V0 USB serial line protocol; `companion mc ...` provides an initial firmware smoke surface for snapshots, sends, and self-test | V0.8: formalize USB first, mirror to BLE later, and do not claim external MeshCore app compatibility until the real app protocol is confirmed. |
| MeshCore companion bridge | Partial/In progress | `docs/tdeck-meshcore-companion-protocol.md` defines the V0 MC0 line protocol; `companion mc ...` provides console smoke coverage, `companion mc usb on` enters formal USB MC0 mode for identity/status/node/thread snapshots, send boundaries, event controls, revision counters, and bounded node/message/TX event drain, and `companion mc ble on` advertises a private `Limitlezz-MC0-*` GATT service for the same logical protocol | V0.8: hardware-validate USB and BLE MC0 with TX-event smoke, add BLE client/reconnect soak, and do not claim external MeshCore app compatibility until the real app protocol is confirmed. |

## User Interface

Expand Down
25 changes: 17 additions & 8 deletions docs/tdeck-firmware-roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ These maintainer-provided beta labels are the canonical near-term sequence. The
| V0.6 | MeshCore public chat and split airtime config | 🚧 Public chat send/receive hardware-verified; **split airtime may not be working — needs re-verification**; config UI still TODO |
| V0.6 | MeshCore public chat and split airtime config | In progress - public chat send/receive hardware-verified; split-airtime serial dwell/switch smoke passed on COM8; packet-loss, latency, and real dual-network traffic soak still open |
| V0.7 | MeshCore DMs and private chats | ✅ Encrypted DMs (X25519 ECDH + AES) send/receive hardware-verified against a real MeshCore peer |
| V0.8 | MeshCore USB companion and MeshCore BLE companion | 🚧 Protocol foundation drafted; USB/BLE implementation still planned and not external-app compatible yet |
| V0.8 | MeshCore USB companion and MeshCore BLE companion | In progress - USB MC0 mode covers identity/status/node/thread snapshots, send boundaries, revision counters, event controls, and COM8 smoke hooks; private MC0-over-BLE service is implemented for LimitlezzOS/test clients; official MeshCore app compatibility remains unclaimed |
| V0.9 | Code review, optimization, and emoji polish | ⬜ Not started |
| V0.95 | Basic app SDK and infrastructure; Home UI supports adding apps and multiple home screens | 🚧 Local manifest scanner, Home paging, and detail shell started; runtime/catalog still TODO |
| V0.96 | Upgraded Wi-Fi password storage | ✅ Implemented on T-Deck hardware: credentials use ESP32 NVS, legacy `wifi.cfg` migrates/removes, and diagnostics do not print passwords |
Expand Down Expand Up @@ -189,18 +189,27 @@ Exit criteria:

Goal: expose MeshCore companion functionality only after native MeshCore messaging is stable.

**Status:** protocol foundation in progress with an initial USB serial-console
smoke surface. `companion mc hello|status|nodes|threads|send|dm|test` now
exercises the firmware-owned MeshCore snapshots and send boundaries for COM8
validation, while the formal `MC0` bridge, BLE transport, events, and real
external MeshCore app compatibility are still planned work.
**Status:** USB-first protocol foundation in progress. `companion mc
hello|status|nodes|threads|send|dm|test` still exercises the firmware-owned
MeshCore snapshots and send boundaries for COM8 validation, and formal
`companion mc usb on` MC0 mode now handles `HELLO`, `IDENTITY`, `STATUS`,
`NODES`, `THREADS`, `SEND_PUBLIC`, `SEND_DM`, `EVENTS`, and `EXIT` with
snapshot revisions plus bounded node/message/TX event draining. Private
MC0-over-BLE mode exposes the same line protocol through a LimitlezzOS-specific
GATT service for test clients; real external MeshCore app compatibility remains
planned work until the app protocol is confirmed and mapped.

Deliverables:

- Define the MeshCore companion protocol surface for node DB, public chat, private chats, and send/receive forwarding. Drafted as `docs/tdeck-meshcore-companion-protocol.md`.
- Add a USB serial-console smoke surface that reports MeshCore companion status, nodes, threads, Public send, DM send, and self-test.
- Implement MeshCore USB companion mode.
- Implement MeshCore BLE companion mode.
- Implement MeshCore USB companion mode. In progress: MC0 USB request/response
mode is implemented for identity, status, node/thread snapshots, send
boundaries, exact full-public-key DM routing, event controls, bounded event
draining, and reconnect/resync counters.
- Implement MeshCore BLE companion mode. In progress: private MC0 BLE service
mirrors the USB logical protocol over custom RX/TX GATT characteristics; BLE
client hardware smoke and external protocol mapping remain.
- Add UI and serial commands that distinguish Meshtastic companion from MeshCore companion.
- Decide whether one companion session or one network can own the external-app bridge at a time.
- Confirm the real MeshCore app protocol before claiming compatibility with existing external MeshCore apps.
Expand Down
Loading