feat: FEAT-14 dual T3U — wlan2 uplink, wlan1 AP, onboard wlan0 fallback

This commit is contained in:
Mathieu Moran
2026-08-14 21:32:30 -04:00
parent c7329186f4
commit 25f57603c6
9 changed files with 57 additions and 57 deletions
+17 -16
View File
@@ -33,7 +33,7 @@ dedicated PLAN.md phase (or fold it into the relevant existing work) and mark it
| FEAT-11 | `SHIPPED` | Hotspot SSID/password settings + 5GHz WiFi role swap | Phase 27 |
| FEAT-12 | `SHIPPED` | Log OBD speed before GPS fix (rolling-start capture) | Phase 27 |
| FEAT-13 | `IDEA` | Flush uploaded tracking rows from local DB | unassigned |
| FEAT-14 | `IDEA` | Second T3U to replace onboard wlan0 (dual AC radios) | unassigned |
| FEAT-14 | `SHIPPED` | Second T3U to replace onboard wlan0 (dual AC radios) | Phase 29 |
| FEAT-15 | `SHIPPED` | Clear DTC codes from the DTC page | Phase 29 |
---
@@ -259,21 +259,22 @@ dedicated PLAN.md phase (or fold it into the relevant existing work) and mark it
### FEAT-14 — Second T3U to replace onboard wlan0 (dual AC radios)
- **Status**: `IDEA`
- **Area**: hardware + `deploy/yaris_uplink.py`, `deploy/install_netwatch.sh`, `modules/app_network.py`
- **Phase**: unassigned
- **What**: Owner bought a second TP-Link Archer T3U (RTL8812BU) to replace the onboard
BCM43438 currently serving as the internet uplink (wlan0). Both radios would then be fast
AC1300 T3U dongles — one AP (wlan1, 5GHz) and one uplink (wlan0) — removing the current
tradeoff where away-from-home uploads run over the weak onboard radio.
- **Considerations**:
- Both dongles share the Pi 3's USB 2.0 bus (~480 Mbps total), so two AC dongles can't both
run at full speed simultaneously — but each still far exceeds the onboard radio.
- Power: two AC dongles draw more than onboard + one; verify the 5V GPIO feed holds
(`vcgencmd get_throttled` should stay `0x0` for no undervoltage).
- Interface naming: both radios are USB now, so `wlan0`/`wlan1` may not map predictably —
pin `connection.interface-name` and/or add MAC-based udev rules so AP vs uplink never swap.
- The rtl88x2bu driver is already built; a second identical dongle should be plug-and-play.
- **Status**: `SHIPPED` 2026-08-14
- **Area**: hardware + `deploy/yaris_uplink.py`, `deploy/install_netwatch.sh`, `modules/app_network.py`, `deploy/90-yaris-uplink`
- **Phase**: Phase 29
- **What**: Owner added a second TP-Link Archer T3U (RTL8812BU) to replace the onboard
BCM43438 as the internet uplink. Both radios are now AC1300 T3U dongles — `wlan1` (T3U #1)
hosts the 5GHz in-car AP, `wlan2` (T3U #2) carries the uplink (home-wifi + phone-hotspot),
and the onboard `wlan0` is retired to a weak fallback. Removes the old tradeoff where
away-from-home uploads ran over the weak onboard radio.
- **Changes**: `PRIMARY_INTERFACE=wlan2` / `FALLBACK_INTERFACE=wlan0` / `AP_INTERFACE=wlan1`
in `yaris_uplink.py` + `app_network.py`; `install_netwatch.sh` rebinds `home-wifi` +
`phone-hotspot` to wlan2 and recreates the `home-wifi-fb` fallback on wlan0; the NM
dispatcher (`90-yaris-uplink`) now listens on `wlan0|wlan1|wlan2`.
- **Verified**: the second T3U enumerates as `wlan2` (rtl88x2bu) and
`vcgencmd get_throttled` = `0x0` (no undervoltage with both dongles powered).
- **Open item**: interface-name pinning relies on USB enumeration order; if the two T3Us ever
swap ports, `wlan1`/`wlan2` swap — a MAC-based udev/`.link` rule is the robust follow-up.
### FEAT-15 — Clear DTC codes from the DTC page