Files
app-flutter/docs/impl/reports/LINK-TEST-2026-10-11.md
T

2.7 KiB
Raw Blame History

type, date
type date
report 2026-10-11

USB link test: plain cable vs PD hub

Does the PD hub degrade the tablet ⇄ Orin USB (NCM) link? Measured from the app (the only place on the tablet whose sockets use the link) with the link test, lib/linktest.dart + tool/linktest_server.py.

Short version

  • No measurable effect of the PD hub, with or without the charger connected. All three setups: 0% loss at every size and rate up to 500 packets/s, the same latencies, 0 TCP retransmits.
  • The loss seen earlier the same day did not come back. Before these runs, ICMP ping from the Orin lost 2.5–32% at 20 packets/s through the hub. After a replug, the same ping sweep is 0% through the hub too. That connection was in a bad state; the hub is not shown to be the cause. Cause unknown; worth watching for (the soak below is the app-shaped check).
  • The link is asymmetric: tablet → Orin ~22 MB/s, Orin → tablet 1.9–5.6 MB/s and variable, with ~30 ms RTT under load and no loss (the Orin's gadget TX side queues rather than drops).
  • App-shaped traffic is fine: 30 s at 10 packets/s, longest silence ≤ 144 ms, against a 5 s heartbeat timeout.
  • adb push through the SSH tunnel stays slow (0.14 MB/s, 223 Orin retransmits per 20 MB) on a healthy link, while the app's TCP over the same link runs at 5.6 MB/s with none. Specific to the adbd connection; not the hub, not routing (tcp_fwmark_accept=1). Unexplained.

Results

Link USB 2.0 high-speed in all runs. TCP: 5 s each way; UDP: 3 s per cell, RTT p50 / p99 / max in ms.

Plain C-to-C Hub + charger Hub, no charger
UDP loss, 64 B and 1400 B, 10–500 /s 0% 0% 0%
UDP 64 B 10/s RTT 4.1 / 24.2 / 24.2 4.0 / 10.5 / 10.5 4.1 / 5.6 / 5.6
UDP 1400 B 500/s RTT 2.8 / 7.3 / 39.7 2.7 / 9.4 / 42.5 2.7 / 16.6 / 60.2
Soak 64 B 10/s 30 s: loss, max gap 0%, 144 ms 0%, 135 ms 0%, 104 ms
TCP Orin → tablet 1.85 MB/s 4.06 MB/s 5.57 MB/s
TCP tablet → Orin 21.8 MB/s 22.4 MB/s 22.6 MB/s
Orin TCP retransmits 0 0 0
ICMP ping from the Orin, 20/s, 56–1472 B 0% 0% 0%

For reference, the same test over WiFi to the Orin's LAN address: 0% loss, about 25 MB/s each way.

Raw records: ~/linktest/results.jsonl on the car Orin; tabulate with python3 tool/linktest_summary.py ~/linktest/results.jsonl [label…].

Running it

On the Orin: python3 linktest_server.py (from tool/, copied to ~/linktest/). On the tablet: Link test in the link bar, or remotely:

adb -s localhost:15555 shell am start -n dev.yukart.display/.MainActivity --es linktest <label>[@<host>]

The host defaults to the gateway's. A run takes about 75 s and reports each result to the Orin as it goes.