# OpenClaw on Android Head Unit
## Overview
Running OpenClaw as a voice AI assistant on a standalone Android head unit (Topway TS10) in a 2014 Hyundai Sonata Hybrid. The head unit is connected to the car's CAN bus via a Simplesoft CAN decoder box, enabling deep car telemetry + hands-free voice AI.
## Hardware
### Head Unit — Topway TS10
| Spec | Detail |
|------|--------|
| SoC | Unisoc UIS7862 — 8-core (2×A75 + 6×A55) @ 1.8GHz |
| GPU | Dual-core ARM Mali-G52 |
| Bluetooth | 5.0 |
| Resolution | 1280×720 |
| Firmware | VOVOL XC90 20230 variant |
| **RAM** | **4GB** ✅ |
| **Storage** | **32GB** ✅ |
### CAN Decoder — Simplesoft HY-SS-04
| Spec | Detail |
|------|--------|
| Model | HY-SS-04 |
| Brand | Simplesoft |
| Software | V3.01.101BYPT (DC:20230627) |
| P/N | K0090 |
| Compatible | Hyundai Sonata 8 (2011-2014), Sonata 9 (2015-2017), Kia Sportage/Sorento/Cadenza |
| Serial Protocol | TTL 3.3V UART, **38400 baud**, 8N1 |
| Output format | 6-byte CAN frame dumps (e.g. `46 32 02 01 01 XX`) |
| Harness | 16-pin OEM-style plug, no wire cutting needed |
| Head unit setting | Factory Settings → CAN bus config → select "Simplesoft" |
**Protocol note:** The decoder outputs raw CAN message bytes over UART. Steering wheel buttons produce specific byte sequences (e.g. VOL+ → `46 32 02 01 01 DB`). The head unit firmware decodes these into control actions.
### Car — 2014 Hyundai Sonata Hybrid
| Spec | Detail |
|------|--------|
| CAN Bus | High-Speed CAN (OBD2 pins 6=CANH, 14=CANL) |
| OBD2 Port | Standard 16-pin DLC; pins 6/14 = HS CAN bus |
### Connectivity Path
```
Sonata CAN Bus (pins 6/14)
↓ 2-wire raw CAN
Simplesoft HY-SS-04 CAN Decoder
↓ UART 38400 8N1 (TX line)
Topway TS10 Head Unit (Android)
↓ WiFi (phone hotspot)
OpenClaw Gateway on media server (100.91.1.57)
↓
Qdrant / Skills / Tools / Home Assistant
```
## Use Cases
1. **Wake word voice assistant** — "Hey [wake word]" → hands-free AI
2. **Home Assistant control** — "open garage door", "turn on porch light" from driveway
3. **CAN bus telemetry** — speed, RPM, fuel level, door status, TPMS via decoder serial stream
4. **Steering wheel button trigger** — intercept factory steering wheel controls → OpenClaw wake
5. **Commute briefing** — weather, calendar, traffic on demand
6. **Message handling** — read/respond to Discord/Signal by voice, hands on wheel
7. **Navigation intents** — trigger maps with voice
8. **Check engine code read** — "do I have any error codes?" via OBD2
## Setup Steps
### Phase 1 — Android Side
- [ ] Confirm RAM size (Settings → About)
- [ ] Enable ADB: Factory Settings → password `adbon`
- [ ] Enable Wireless ADB (see StarMusa88 TopWay guide)
- [ ] Sideload OpenClaw Assistant APK (`adb install`)
- [ ] Connect head unit to WiFi (phone hotspot)
- [ ] Point OpenClaw Assistant to gateway URL (media server via Tailscale)
- [ ] Validate wake word + voice response
### Phase 2 — CAN Bus Side
- [x] Identify CAN decoder: Simplesoft HY-SS-04 confirmed
- [x] Confirm serial protocol: 38400 baud 8N1
- [ ] Tap UART TX from decoder (need FTDI/CH340 adapter + laptop)
- [ ] Capture serial stream while driving (speed, doors, steering buttons)
- [ ] Map byte sequences to physical signals (speed formula, door bits, button codes)
- [ ] Write OpenClaw skill to parse serial → structured telemetry
- [ ] Map to voice queries: "what's my speed", "fuel level", "any doors open"
### Phase 3 — Integration
- [ ] Steering wheel button intercept → OpenClaw wake trigger
- [ ] CAN telemetry → voice responses
- [ ] OBD2 code reading on demand
- [ ] TPMS voice readout
- [ ] Home Assistant联动 on driveway arrival
## CAN Bus / Serial Sniffing Plan
**Equipment needed:**
- USB-UART adapter (FTDI FT232RL or CH340) — 3.3V TTL
- 4 dupont wires (F/F jumper cables)
- Laptop with serial terminal (PuTTY, SerialMonitor, or `screen /dev/ttyUSB0 38400`)
**Steps to sniff decoder output:**
1. Remove head unit (or pull it out enough to access the harness)
2. Find the 4-pin connector from HY-SS-04 to head unit
3. Identify pins: typically +12V (red), GND (black), TX (white/yellow), RX (green)
4. Connect FTDI adapter: GND→GND, TX→RX (cross), 3.3V if powered separately
5. Open serial terminal at 38400 8N1, no flow control
6. Power the decoder (start car or have battery on)
7. Watch data scroll — press steering buttons, open/close doors, drive
**What to look for:**
- Steering VOL+ : `46 32 02 01 01 DB` (from XT9218c research, likely same format)
- Speed: some byte position scales with kph/mph
- Doors: 1 byte with bit flags for each door
- RPM: some byte position, formula: `val * X` or `val / Y`
## CAN Bus Resources
- **comma.ai/opendbc** — open-source DBC files, check Sonata coverage
- **2015 Hyundai C-CAN DBC** — close baseline for 2014 (Scribd)
- **iDoka/awesome-automotive-can-id** — Hyundai Genesis 2015 CAN IDs (partial overlap)
- **CSS Electronics OBD2 DBC** — standard OBD2 PIDs (Mode 01)
- **XDA Forums CAN decoder research** — Simplesoft serial protocol confirmed at 38400 baud 8N1
## Key References
- OpenClaw Android docs: docs.openclaw.ai/platforms/android
- OpenClaw Assistant (voice app): github.com/yuga-hashimoto/openclaw-assistant
- Topway TS10 ADB Guide: github.com/StarMusa88/TopWay-Android-Headunit-ADB-Guide
- XDA Forums TS10: xdaforums.com/t/new-topway-ts10-uis7862-6gb-ram-128gb-head-unit-q-as.4227947/
- Simplesoft HY-SS-04 info (Skyfame): skyfame.com
- Hyundai Sonata OBD2 pinout: pinoutguide.com/CarElectronics/hyundai_obd_2_pinout.shtml
- Hyundai CAN bus forum: hyundai-forums.com/threads/tapping-into-can-bus.160677/
- YT9218c CAN protocol (similar): xdaforums.com/t/yt9218c-8227l-steering-wheel-controls-and-canbus-hardware-support.3953011/
## TTS: VOICEVOX
- **VOICEVOX** selected for local TTS — runs on media server alongside Ollama
- GitHub: github.com/VOICEVOX/voicevox
- Different ports on same host as Ollama — fully local, no cloud TTS
- OpenClaw Assistant routes TTS through VOICEVOX API
## Status
- [x] Project file created
- [x] Confirmed: 2014 Hyundai Sonata Hybrid, HS CAN (pins 6/14)
- [x] Confirmed: Simplesoft HY-SS-04 decoder, 38400 baud 8N1 UART
- [x] TTS: VOICEVOX selected (local, runs on media server)
- [ ] Confirm head unit RAM size
- [ ] Enable ADB access
- [ ] Sideload OpenClaw Assistant
- [ ] Gateway connectivity test
- [ ] Wake word validation
- [ ] UART sniff decoder output (capture steering/speed/door bytes)
- [ ] Map byte sequences to physical signals
- [ ] Write OpenClaw skill for serial telemetry parsing
- [ ] Steering wheel button → OpenClaw wake
- [ ] CAN telemetry → voice integration