service :
started :
completed :
Android Race Dash began when my 350Z started overheating and the stock gauges weren’t precise enough to diagnose the problem. I built ARD to turn any Android device into a modern, customizable digital dash for daily driving and track days. It features fully customizable, drag-and-drop dashboards with analog and digital gauges (speed, RPM, coolant temp, horizontal temp bars, compass, G-meter, check-engine indicator, and more), plus unit conversions, thresholds, and rich styling. Beyond display, ARD reads and logs diagnostic trouble codes (powertrain/ABS/airbag), tracks maintenance with reminders and CSV export/printing, supports per-vehicle profiles (VIN, engine, fuel type, tank size, curb weight), and records data sessions for lap days or canyon runs while keeping the screen awake. Under the hood, ARD connects to a user-supplied OBD-II scanner (Bluetooth/Wi-Fi) and can ingest external USB sensors (e.g., oil pressure via a Pro Micro). It fuses ECU PIDs with onboard GPS, accelerometer, and gyroscope to compute real-time telemetry like G-forces, lap times, and 0–60. Kotlin/Java components process raw streams, apply user-defined thresholds/styles, and render gauges in real time (UI built with XML/Compose). I use the app daily for commuting and at events; development is ongoing with plans for deeper CAN-bus integration and a larger gauge library. Notable challenges I’ve solved include robust OBD-II streaming, accurate G-force/lap timing calculations, and reliable power/sensor management during long sessions.