I am looking for a way to program various ECUs in a 2005 Audi A4. (Engine is the least interesting ones for me – I am more interested in e.g. infotainment, Bluetooth etc.). As far as I know, most of the ECUs in question use the KW1281 protocol, a K-line protocol standardized as ISO 9141. Some might use KW2000, also over the K-line; CAN was not yet widely used in this particular model.
I have a Bluetooth ELM 327 adapter, which I am currently using with an Android OBD-II app. These devices are marketed as dedicated OBD-II adapters, not necessarily for vendor-specific protocols, as the adapter incorporates some of the protocol logic specifically for OBD-II.
One of the OBD-II protocols supported is ISO 9141-2, which according to the ISO abstract is a subset of ISO 9141:1989. As far as I can tell from the ELM 327 datasheet, the ELM supports arbitrary ECU addresses, sending a 5-baud initialization sequence (as required by ISO 9141/KW1281) and even bypassing initialization. The only thing I am not sure is if there is a way to exchange raw data with the ECU, or at least something low-level enough to be able to exchange KW1281-compliant data.
I have come across Addressing ECUs directly using ELM 327 dongle and ISO 9141 – while it turned out that the OP needed a different protocol, the answer indirectly links to VAG Blocks by Jared Wiltshire, which implements custom CAN-based protocols (KW2000 and TP 2.0, also genetically related to their OBD counterparts) on top of an ELM 327. So I was wondering if something similar is possible for K-line protocols.
I am also aware that there are a few solutions out there building on a “dumb” KKL adapter – basically just a USB-to-K-line converter with no protocol logic in its circuitry. However, the baud change (5 bps to send the initialization sequence, then 9600 or 10400 bps for the communication with the actual module) is somewhat challenging to implement – the ELM 327 has this capability built in natively.
So, is there any way to exchange an arbitrary ISO 9141-based protocol using an ELM 327?