In which I get BMW dealer-specific tools on my side
Many years ago, I ordered a USB to OBD2 interface. It is recognized by my machine as a Future Devices FTR232R USB UART (chip FT232RL).
I wasn’t able to get this working properly at the time, so I turned around and ordered a different interface, marked BMW Scanner 1.4.0. This shipped with PA Soft’s BMW Scanner 188.8.131.52, and served me well for reading off error codes and resetting them. I was able to use it to reset the airbag indicator, which I tripped during a window regulator service back in December 2012.
Most recently, I found myself troubleshooting a no start condition following the replacement of my 2003 BMW 330i’s CCV system.
I knew that it would do me well to play with some BMW dealer-specific tools. There were limitations to the depth that I could go as a shadetree mechanic by relying solely on BMW Scanner 1.4.0, and I was starting to question my decisions.
I started with an installer that I already had on my NAS: EasyDIS + GT1 v44. I gave up after installation failed. For reasons unknown, I wasn’t able to get GT1 v44 to install.
At this point, I learned of newer diagnostic tools, so I decided to pursue those instead.
I browsed the BMW Coding and Programming section of the Bimmerfest forums and found Mike’s Easy BMW Tools Package (direct download through Mega), which contains the following (note that I do not provide support for this tool, but merely post information on it for reference):
- INPA 5.0.6 (with English script files and support for F-series
- EDIABAS 7.3.0
- NCS Expert (with English menus and buttons, and NCS Dummy Profile pre-installed)
- NCS Dummy 4.0.1
- Tool32 4.0.3
- WinKFP 5.3.1
- Integrated SP-DATEN v53.3
- BMW Coding Tool v2.5.0 (for use as an alternative to NCS Dummy, or to update DATEN files as new ones become available)
- USB Drivers for cable
I ran the installer on the same Windows XP Pro SP3 virtual machine that housed my working copy of BMW Scanner. I skipped the bundled USB drivers for my interface, opting to use the latest revision from FTDI. Initially, I encountered no success with INPA, but I was finally able to get INPA to read some of my vehicle’s data after revising settings inside of the Device Manager.
I read on Bimmerforums.co.uk (bimmerforums.co.uk/forum/f99/idiots-guide-bmw-inpa-installation-modded-usb-vagcom-interface-winxp-vista-t102843/) that changing USB transfer sizes would help: inside of the Device Manager, expand Ports (COM & LPT), right-click on USB Serial Port and select Properties, select the Port Settings tab, click the Advanced… button, and adjust the Receive and Transmit data rates to 2048 Bytes using the dropdown menus.
Given that I was able to get my FTR232R USB to OBD2 interface working for INPA, I reasoned that I wasn’t far off from ISTA/D. I set up ISTA/D under a new Windows 7 64-bit virtual machine. After checking EDIABAS.ini and OBD.ini against my known good configuration, I wasn’t getting anywhere.
I contemplated purchasing yet another interface, but stopped myself. I had yet to perform modifications to the cable. Time and time again, I’ve seen advice stating to solder pins 7 and 8 on the interface. With this modification performed, ISTA/D was successful at last in reading my vehicle’s information.
A couple of things stood out to me from the laundry list of error codes that I was dealing with. First were the codes relating to the DMTL pump:
8C/72 – Output stage fault, DMTL pump, short circuit to negative or open circuit
7E/72 – Output stage fault, DMTL module, tank leak diagnosis valve, short circuit to negative or open circuit
Next was the ominous sounding code relating to the main relay:
24/61 – Main relay, fault
I performed a search for information about the BMW E46 DMTL pump, and noted that it was an emissions control component located at the rear of the vehicle. I disregarded the error code for the time being – after all, my work had taken place in the engine bay.
Moving forward, I tackled the main relay fault first. Within the ECU box is a black box containing five fuses. I found this blog post on Bavauto helpful.
I wasn’t able to get the fuse pack lid off without destroying the locking tabs. I dumped all of the fuses out, and discovered one of the 30 amp fuses was blown. I replaced this with a spare that I had lying around.
Using ISTA/D, I was able to generate a test plan to diagnose each individual error code. The troubleshooting procedure for the DMTL pump included a test whereby the ECU would signal the operation of the DMTL valve (the parts diagram refers to this as the fuel tank breather valve – part #1 in the diagram below, BMW
13901433603) for 15 seconds. During this time, ISTA/D stated that a ‘tocking’ sound would come from the unit.
I heard no ‘tocking’ sound, so I indicated within ISTA/D that no sound was heard, and moved on. ISTA/D stated to check the connector, and further stated that the connector in question had two wires. Well, I checked my connector, and I had plugged one with only one wire to the valve. This begged the question, where was the right connector for the DMTL valve?
I pulled and checked various connectors, eventually coming across the connector for the oil pressure switch (part #12 in the diagram below, BMW 12618611273). This connector is the same shape as the connector for the fuel tank breather valve – the only difference being the number of wires. I ran my finger against the single pin of the oil pressure switch, and knew where I’d erred.
In closing, the connector mixup resulted in one of the 30 amp fuses within the ECU box fuse pack blowing on each attempt to start the car. Prior to starting the car, I got a long list of error codes. After attempting to start the car, I’d get an error code for a main relay fault, indicating that a fuse within the ECU box fuse pack had blown.
Further on modifications to the USB to OBD2 cable – geargrinder’s post on Bimmerforums:
Is car DCAN or do you ever want to do DCAN cars?
Yes – Buy new BMW K+DCAN Cable, toss VAG cable in back of closet
No – Continue on…
Do you really need ignition sense?
Yes gotta gotta must have – OK do you want do it the easy way or hard way or the quick hack way?
Easy – Buy new BMW K+DCAN Cable, toss VAG cable in back of closet
Hard – Fork around with modding your VAG cable, check to be sure 7&8 bridged at the same time
Quick Hack – Use FTDI drivers to fake ignition sense per other threads & check 7&8 bridged
Meh don’t need – just check 7&8 bridged on VAG cable, continue on with life
Spoofing ignition sensing can be done using MProg per the following instructions:
Install MProg & modify the programming of the EEPROM FT232RL
We need to invert RI # and DSR # signals to fool the detection of battery and ignition. After programming check your I/O Control settings, they must be:
#C0 = RXLED
#C1 = TXLED
#C2 = POWERON
#C3 = PWRON
#C4 = SLEEP
Invert RI ticked
Invert DSR ticked