Skip to content

Car Data (OBD and CANbox)

deviloufr-ai edited this page Oct 10, 2026 · 5 revisions

Car data (OBD and CAN box)

Live car data

Dashwheel reads the car two ways: an ELM327 OBD adapter (Bluetooth or USB cable), and the head unit's own CAN box where the firmware shares it.

OBD (ELM327 adapter)

  • Readings: speed, revs, coolant and intake temperature, throttle, engine load, fuel level, module voltage. Speed and revs are read about every 0.7 s, the rest in turn.
  • Fault codes: read and erase (modes 03 / 04 / 07), engine lamp state, a raw-replies view for debugging. Works with CAN cars whose computers all answer a broadcast (headers on or off). Codes are spoken by name, and a fault the car already reported only counts as new again after 3 days unseen or once the codes are erased.
  • Connects by itself when the ignition comes on and recovers from drops; it stays connected while the second screen shows readings.
  • Advanced readings (experimental): Settings → System → Lab → Advanced readings tries standard PIDs, then requests proposed by the AI for your car (e.g. DPF soot load), keeping only those that answer plausibly and steadily.

Generic OBD only sees engine / emissions faults: ABS, airbag and body faults need the maker's tool.

Status: daily use over Bluetooth (C4 Picasso, generic ELM327).

How Dashwheel reaches the adapter

Everything about the adapter is in Settings → Connections → OBD adapter: which adapter, Forget, and OBD reached through.

Way Setup Status
Bluetooth on the head unit Pair the adapter in Android's Bluetooth settings (PIN 1234 or 0000), then tap the OBD button or the adapter row and pick it. A tap on OBD switches Bluetooth on and redoes a lost pairing Daily use
USB cable Plug the adapter into a USB port of the head unit. When Android asks, let Dashwheel open it and tick always: it then connects by itself at every start. Or tap OBD and pick it at the top of the adapter list New on 2026-10-10, not tried with a real adapter yet
Through the phone In the companion, OBD through this phone → Choose the adapter: the phone holds the Bluetooth adapter and passes it on over the phone link, so calls and Android Auto on the head unit's Bluetooth no longer get in the way Experimental

No more freezes (2026-10-10): the adapter's name and the way it is reached are looked up off the screen's thread and kept ready, and picking or dialling an adapter runs off it too. On a unit whose Bluetooth was half asleep, those calls used to stall the whole screen. When the phone starts offering the adapter while the unit is already connecting on its own Bluetooth, the link moves to the right side once it is up.

OBD reached through offers Automatic, Bluetooth, USB or Phone. Automatic uses a USB adapter first when one is plugged in, then the phone when its companion holds the adapter, else the head unit's Bluetooth; pull the cable out and it goes back to Bluetooth.

USB adapters: ELM327 cables with FTDI, CH340, PL2303 or CP210x chips, and adapters that show up as a plain USB serial port (STN-based ones such as OBDLink or OBDX). Dashwheel finds the adapter's speed by itself (38400, 115200, 500000 baud and others) and remembers it. Handy on head units that refuse Bluetooth devices other than their own (reported on Joying units). Dashwheel only opens a USB device you allowed or picked, never another serial chip of the head unit by itself.

Deep OBD instead of an adapter (experimental): where the Deep OBD app (BMW / VAG) is installed, OBD readings from picks Adapter or Deep OBD. With Deep OBD, Dashwheel leaves the adapter alone and takes the readings Deep OBD broadcasts (turn on its data broadcast); tap a line to change what it counts as. Fault codes and advanced readings still need the adapter. Tried with simulated broadcasts only.

The head unit's CAN box (QF firmware)

Doors, bonnet, tailgate, fuel level, lights, mileage, trip and consumption, range, reversing, ignition (ACC), seat belt, tyre pressures, steering angle, parking radar, climate: whatever your CAN box and car provide.

  • Doors and car status need the one-time WRITE_SECURE_SETTINGS grant or root; the CAN monitor (raw frames) needs root. See Root and PMPatch3.
  • The fuel level can be learnt for cars whose OBD reports none.
  • The ignition signal drives OBD reconnects, the start-up briefing and saving the parking spot.

Status: car-tested on the K706 with an RZC Peugeot-protocol CAN box.

Cars whose head unit sends no body data no longer show made-up lights, mileage, range or parking brake: those tiles wait for real data.

Car signals: teach Dashwheel your car

Settings → System → Lab → Car signals shows what Dashwheel reads from the car and where it comes from.

  • Find teaches it a missing signal: open and close a door three times as the voice asks (from outside the car if you like), then pick what changed. Works for doors, reverse gear, headlights and the driver's seat belt; learned signals feed the door alert, the reverse view, the dark look and the belt reminder.
  • Raw sniffer: every CAN box frame, head-unit flag, setting and message as it changes, with marks, and a recording you can send to the phone (handy for a bug report on another car).
  • Pick which camera the reverse view opens.

Status: emulator-tested; new on 2026-10-04.

Derived data

  • Gear widget: estimates the gear from revs per km/h and learns your gearbox's ratios; R from the reverse signal.
  • Eco driving score, trip computer, break reminder, fuel to destination, fuel log with real consumption.
  • Drive log sent to the phone: see Phone Link and Companion.

Demo

No adapter? Demo Mode fakes a drive through every feed.

Clone this wiki locally