0xreversed/with.ai
APIs and protocolsResearchSource available
Target: BMW Scanner 1.4.0 (OBD cable, DS2 bus)

Probed the BMW Scanner 1.4.0 cable DS2 bus from raw USB on Android, without its protected Windows app

BMW Scanner 1.4.0 (OBD cable, DS2 bus): A diagnostics cable freed from its Windows-only software.
Image: GitHub (mogyiii/BMW-scanner-1.4.0-Android)

What was done

An Android app speaks raw FTDI and DS2 framing to the diagnostic cable, with a configuration sweep that replaces an hour of manual toggling in the car.

An Android app brings the BMW Scanner 1.4.0 diagnostic cable up on a phone: raw USB talks to its FTDI chip, and the DS2 framing and bus scan run over that. Every commit carries Claude Opus 5 as co-author.

How it was done

The cable is an FTDI part with a re-flashed EEPROM and a non-standard vendor ID, which is why no ordinary OBD software recognises it. The original Windows program is wrapped in an executable protector, so the author deliberately left the binary alone and worked from the USB side and the car bus instead. The app documents the FTDI vendor request driver, DS2 framing with XOR checksums, an optional K-line echo cancellation for the single wire bus, and a sweep that walks all 16 combinations of channel, baud, parity and echo against candidate module addresses.

Results

The current build finds the cable, dumps descriptors and EEPROM, runs the whole configuration sweep in about a minute, scans the DS2 bus for any module that answers, and logs it all for a single field session. Fault code decoding is not confirmed yet and is honestly listed as the next step, with the on-car test procedure written up. Odometer writing is out of scope on principle.