Error 159 occurs when INPA sends a request to an ECU (e.g., DME, ABS, Airbag module) and does not receive an expected response within the timeout period. Common root causes include:
Incorrect Interface or Cable Settings
Software and Driver Mismatch
Vehicle-Specific Issues
Hardware Faults
DME.IPO → Run connect job.0 means success; -1 indicates failure.If you run the "IFHSrv32" tool (located in C:\EDIABAS\BIN), you can see raw error logs. A typical error 159 log looks like this:
[IFH-0009] Timeout error on K-Line (no response from ECU)
But if you see:
[IFH-0010] ... – That means a short circuit on the K-Line.
[IFH-0003] ... – That means incorrect baud rate (9600 vs 115200). Go back to latency settings. inpa error 159
Q: Does INPA Error 159 mean my DME (ECU) is dead? A: Rarely. 95% of the time it is a cable or driver issue. Only consider a dead DME if you have tried three different cables and two different laptops, and you have confirmed 12v on Pin 16 and continuity on Pin 7.
Q: Can I use a USB-to-Serial adapter to fix this? A: Yes, if you have an old physical serial port laptop. Native COM ports rarely throw error 159. If you must use a USB adapter, buy a StarTech ICUSB232PRO (FTDI chip).
Q: Why does INPA work for the airbag but not the engine (error 159)? A: The engine (DME) is on a different diagnostic address ($33). The airbag is on $58. If the DME is asleep or the K-Line signal quality is poor, the DME will time out but the airbag module—which is less sensitive—will respond. This still indicates a weak signal issue (latency or cable bridge). INPA (BMW Diagnostic Software) uses a variety of
Q: I set latency to 1ms, but Windows resets it to 16ms. Why? A: Some counterfeit chips ignore latency settings. You need to use the FTDI Prog tool to write the latency value directly to the EEPROM of the cable. Or buy a better cable.
Some cheap Chinese interfaces come with faulty firmware for the PIC microcontroller. You can re-flash them using MProg (for FTDI-based cables). Download the BMW Standard Tools compatibility firmware (version 1.5 or 1.6). After re-flashing, the interface will correctly handle job termination acknowledgments, eliminating Error 159.