From 27ecc5492a9e9f2aee87ec0807204787fdce7380 Mon Sep 17 00:00:00 2001 From: Mathieu Moran Date: Sat, 15 Aug 2026 19:25:14 -0400 Subject: [PATCH] docs: move Android Auto media-template telemetry idea into poc mediacenter plan --- FEATURES.md | 28 ---------------------------- poc/yaris-mediacenter-plan.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/FEATURES.md b/FEATURES.md index 09d4972..c85d14f 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -36,7 +36,6 @@ dedicated PLAN.md phase (or fold it into the relevant existing work) and mark it | 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 | | FEAT-16 | `SHIPPED` | Max-speed marker on trip replay map | Phase 29 | -| FEAT-17 | `IDEA` | Android Auto media-template live telemetry (speed/RPM in now-playing) | unassigned | --- @@ -303,30 +302,3 @@ dedicated PLAN.md phase (or fold it into the relevant existing work) and mark it `max_speed_kmh`. Works identically on the Pi and the server portal (shared `history.js`). -### FEAT-17 — Android Auto media-template live telemetry (speed/RPM in now-playing) -- **Status**: `IDEA` -- **Area**: Android app (`android/`) — new AA `CarAppService` + media-template `Session` -- **Phase**: unassigned (Phase 28.x candidate) -- **Requested**: owner — wants live RPM + OBD speed visible on the portable CarPlay/Android - Auto screen, without a separate app (the screen only runs CarPlay/AA, no Android). -- **Idea**: register the yaris-obd app as an Android Auto **media** app (Fermata Auto / - OBD2AA style) and push live values into the "now playing" fields — e.g. title `87 km/h`, - subtitle `RPM 2400 · Coolant 90°C`, refreshed every 1–2 s from the Pi's `/api/obd/status` - (or a new lightweight endpoint). The phone keeps the full Compose app; the AA surface is a - separate templated screen (one APK, two surfaces). -- **Constraints / risks**: - - **No gauges in AA** — only templated text/buttons; this is a text readout, not a gauge - cluster. - - **WiFi conflict** — wireless AA occupies the phone's WiFi, so it can't also be on the Pi - hotspot. Requires **wired AA** (USB) so WiFi stays free for the Pi, or real-time OBD pushed - via the server over cellular (adds latency + load). - - **Distribution** — custom AA apps need Google Play review (unlikely to approve a gauge - app) or a whitelist patch (`aa-rs`/root/ADB); AAAD only installs its own fixed list and - Google patches these routes regularly. - - **Driving restrictions** — AA is templated and driver-safety-limited; best treated as a - parked/glance readout. -- **Outstanding considerations**: ship as an AA mode of the existing app vs a standalone build; - whether the screen supports wired AA; whether the data path should be Pi-hotspot (wired AA) - or server (cellular). - - diff --git a/poc/yaris-mediacenter-plan.md b/poc/yaris-mediacenter-plan.md index 239fc55..20f59ee 100644 --- a/poc/yaris-mediacenter-plan.md +++ b/poc/yaris-mediacenter-plan.md @@ -290,6 +290,37 @@ Add M6 later as an optimization for Spotify specifically. --- +### Phase M7: Android Auto "now playing" telemetry readout (stretch goal) +**Goal:** Show live OBD values (speed, RPM, coolant) on the portable CarPlay/Android Auto +screen. The 9.26" display only runs CarPlay/AA — it has no Android app surface — so the only +viable path is a templated AA app that spoofs media metadata (the "now playing field" trick). + +- [ ] Register the yaris-obd Android app as an Android Auto **media** app + (`CarAppService` + `MediaSession`) — Fermata Auto / OBD2AA style. +- [ ] Push live values into the now-playing fields, refreshed every 1–2 s from the Pi's + `/api/obd/status` (or a new lightweight endpoint): + - Title: `87 km/h` + - Subtitle: `RPM 2400 · Coolant 90°C` +- [ ] One APK, two surfaces: the full Compose app stays on the phone; the AA surface is a + separate templated screen. + +**Constraints:** +- **No gauges** — AA only exposes templated text/buttons; this is a text readout, not a + gauge cluster. +- **WiFi conflict** — wireless AA owns the phone's WiFi, so it can't also be on the Pi + hotspot. Requires **wired AA** (USB) so WiFi stays free for the Pi, or real-time OBD + pushed via the server over cellular (adds latency + load). +- **Distribution** — custom AA apps need Google Play review (unlikely to approve) or a + whitelist patch (`aa-rs`/root/ADB); AAAD only installs its fixed list and Google patches + these routes regularly. +- **Driver safety** — AA is templated and driver-safety-limited; treat as a parked/glance + readout. + +**Note:** this phase is Android-side (lives in `android/`), unlike M1-M6 which are +Pi-side. It lands under the same "media center" umbrella the car converges on. + +--- + ## Hardware Status | Component | Status |