From ac4626640c97d96e8e470ec96323488fc5d8a02f Mon Sep 17 00:00:00 2001 From: mikkeli Date: Fri, 9 Oct 2026 00:12:45 +0900 Subject: [PATCH] USB display link is NCM; app must bind to the Ethernet network Tested with the tablet: it picks NCM, not RNDIS, from the Orin's L4T gadget. Android won't route app traffic over a network without internet while WiFi or cellular is up, so app-flutter has to request and bind the Ethernet network. The Orin's USB-C port has no PD, so the tablet is charged through a PD hub in the car. Co-Authored-By: Claude Opus 5.5 --- docs/ARCHITECTURE.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 9ab2337..a8bcf73 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -190,9 +190,15 @@ subscribes to the bus and renders itself. | Path | Transport | Notes | |---|---|---| -| `app-flutter` | USB (RNDIS), or WiFi | The display. Full client, richest UI, also the audio sink | +| `app-flutter` | USB (NCM: tablet is host, Orin at `192.168.55.1`), or WiFi | The display. Full client, richest UI, also the audio sink | | `app-esp32` + RLCD/e-ink | WiFi, or USB/BT serial | Low-rate glanceable subset. Not in current scope | +Over USB, Android sends app traffic only via its *default* network, and the +USB link, having no internet, never becomes default while WiFi or cellular is +up. `app-flutter` must request the Ethernet network (`TRANSPORT_ETHERNET`) and +bind to it. The Orin's USB-C port can't charge the tablet (no USB PD), so in the +car the link runs through a PD hub that feeds the tablet from the car charger. + Displays reaching the bus over IP connect to the broker through `svc-gw`, which owns the boundary. For transports without IP — BT SPP, plain USB serial — `svc-gw` bridges serial ↔ bus rather than each device inventing its own protocol.