Tuesday, 28 July 2015

DIS v44: Diesel Injector Coding / Programming Guide

If an injector is replaced it needs coding to the ECU. Once you know what to do, injector coding is a pretty quick and easy job, all 6 can be done in about 15-20 minutes. You will need a working install of DIS and EDIABAS, so a download and setup-guide is in this post. The code is 6 or 7 digits and printed on the top of each injector, more information in this post.


** Connect a float-charger to the battery before coding with DIS ** The process takes 10-20 minutes if all goes well, but it is not worth the risk of doing adjustments to the ECU without one.

1. Connect car to DIS and perform API test.
2. Click on 'Diagnosis'.
3. Select 'Series' and 'Model series', then click the forward arrow.
4. Click on 'Yes' to start the 'Short-test', wait a few minutes for it to complete and click the forward arrow.


5. Click on 'Function Selection'. (Bottom left.)
6. Select 'Service Functions'.
7. Select 'Drive'.
8. At EGS transmission control prompt, select 'No' if your car is manual, 'Yes' if automatic, and click OK.
9. Select 'Diesel Electronics'.
10. Select 'Adjustment Programs'.
11. Select 'Injector rate adjustment' so it is highlighted in black.
12. Click on 'Test Plan'. (Bottom centre.)


13. Check 'Injector rate adjustment Bxxxx_Dxxxxxx' is highlighted and click the forward arrow.


14. Wait for the fault memory to be read and at the 'Fault codes are stored...' prompt click the forward arrow.
15. Wait for the current calibration values to come up and click the forward arrow.


16. Select '1' (Enter new calibration values) and click the forward arrow.
17. Enter the number of the injector into the keypad to be re-calibrated and click the forward arrow.
18. Enter the new injector code into the keypad with no spaces and click the forward arrow.


19. If more than one injector needs coding, select 'Yes' to the prompt and click the forward arrow, then repeat the last 2 steps for each injector number. If not, select 'No' and click the forward arrow.
20. Select '2' (Save calibration values) and click the forward arrow.
21. Check the values are correct, select 'Yes' and click the forward arrow.


22. When the new values are displayed click the forward arrow.


23. Select '3' (End) and click the forward arrow.
24. When 'End service function' is displayed click the forward arrow.
25. Shut down DIS and disconnect the car.

http://www.instructables.com/id/BMW-Diesel-Injector-Coding-with-DIS-v44/

Saturday, 25 July 2015

Working DIS Installation Simple Guide + Downloads


Download Links [Dropbox]:

You will need:
  1. A laptop running Windows, preferably XP SP2.
  2. A USB-OBD cable (or a serial-OBD cable if your laptop has a serial port).
  3. INPA / EDIABAS.
  4. VM Ware version 5.5 or later.
  5. EasyDIS.iso and DIS_v44_programs.iso.
  6. Diag Head Emulator.

Installation procedure that worked for me: [Obviously refer to the installation guides / videos for detailed instructions.]
  1. Disable Windows Firewall and Anti Virus.
  2. Install drivers for your USB-OBD cable and USB-serial adapter, making sure it is set as port COM1.
  3. Install / update INPA / EDIABAS, using ADS interface, not OBD.
  4. Change environment path in Windows to c:/ediabas/bin.
  5. Install ADS Setup.
  6. Install OBD setup.
  7. Edit ediabas.ini, change remote-host and port.
  8. Install VM Ware [version 5.5 or higher].
  9. Edit VM Ware network bridge in network editor.
  10. Set up the new virtual machine with ethernet set to the network bridge.
  11. Install Diag Head Emulator.
  12. Install easy_DIS and the DIS programs.
  13. Load DIS, open/run Diag Head and open IFHsrv32.exe.
  14. In DIS, enter Administration > Calibrating Touch Shield, change the processes to off and make sure it passes the API test.
  15. Enter Administration > Diagnostic Head, click on the IP-address / computer-name and click the OK button.
  16. Enter Administration > Connection Setup, click on the IP-address / computer-name and click Connecting. Once connected the IP-address should appear in the bottom right and both sets of lights are lit up.
  17. Go back into Administration > Calibrating Touch Shield, set the vm process back to off and change translator to Fister.
  18. Edit ediabas.ini again, changing the interface to STD:OBD instead of ADS.
To run DIS / test connection:
  1. Connect cable to OBD socket on car and turn ignition to phase-2.
  2. Load up INPA (.ipo), check the Battery and Ignition dots are black.
  3. Close INPA, but leave EDIABAS Server running in task-bar.
  4. Start DIS and wait for it to fully load.
  5. Load up Diag Head and click run.
  6. Load up IFHsrv32.exe.
  7. Enter Administration > Calibrating Touch Shield in DIS.
  8. Perform API-test, check it passes, exit back to DIS.
  9. Click on Diagnosis and DIS should now identify your car / carry out the short-test.
Troubleshooting:
  1. If you have access to more than one laptop, try installing DIS again on one of them, rather than wasting days on a problematic install. Some just don't want to work with virtual networking, but will probably work first time on another, similar laptop. 
  2. If API-test fails - Check ediabas.ini has the right remote-host and port set / check VM network settings / try out this fix by changing addresses in Unix itself [] / ensure firewall is off and re-install DIS.
  3. If API-test passes, but DIS does not communicate - Check INPA is communicating and reboot DIS / check ediabas.ini has interface set to STD:OBD / check USB-serial port is set as COM1.
  4. DIS ERROR 200.19 - Battery is below 12v, connect a float-charger / check IP address is right for Diagnostic Head in DIS, Admin / check API-test passes.
  5. INPA ERROR IFS-0009 - Ensure USB-serial port is set as COM1 / check ediabas.ini has interface set to STD:OBD / make sure cable is working and fuse 25 has not blown.

Tuesday, 7 July 2015

E60: New Engine Tune Up Part 5 - Injectors / Smooth Running Control

The car is running OK, but the lumpy idling is still annoying me. Others don't notice it and I should probably just throw the acoustic-covers back on and just enjoy the car, but the urge to investigate the smooth-running control issue [this post] was just too great and a big job has broken out yet again.

I repeated the smooth-running measurement and injector 5 was still giving zero reading, so I bought a re-conditioned one off eBay for £45. I had also noticed oil running down the centre of the rocker-cover that seemed to be leaking out from the rear injector ports, so my logic was if they were coming out for cleaning and re-seating I may as well replace no. 5 and not worry about having to do the work again if it was indeed faulty. Saturday's jobs are listed below:
  • Replaced injector 5.
  • Removed / cleaned injectors.
  • Refitted rocker-cover and injectors carefully!
  • Repaired sheathing of inj. 5 ground wire.
  • Cleaned MAP sensor.
  • Put swirl-flap actuator back on vac-line.
  • Made sure inj. leak-off hose is secure! [It popped off while working on it, lost £5 fuel at least.]

BEGINNING DIESEL INJECTOR CODING:

In the days leading up to the work above I was contacted by another user who had the same issue with the smooth-running readout. They had fitted a brand new injector to the cylinder showing zero and it had made no difference to the readout. I hoped mine would not turn out the same way and the new injector would cure the problem, but it did not. A crushing final smooth-running measurement still showed 0.0 for injector 5 and the idling remains the same. My contact feared a fried ECU / DDE and had theirs tested, but it came back with no faults. This is unlikely anyway if the car is running OK and it turned out to be a software problem with the scanner. Later using INPA on my laptop I was able to view correctional-amounts for all 6 cylinders, so no. 5 was likely never a serious problem. Better yet, the amounts shown for mg/stroke were more realistic and not 100mg out like before. Never the less, the poor idle remained.


I was now informed that if an injector had been replaced then it would need coding. Basically, every injector has a slightly different correctional-value and is given a unique code. These are stored by the ECU after assembly, which then operates each injector perfectly within the parameters set by each code. When a new injector is fitted the ECU needs to be recoded accordingly. The codes are found in the lower-left quarter of the markings on top of the injector, shown in the photos. M57NTU BMWs used Euro 3 v2 injectors in 2003 and from mid-2004 used Euro 4 injectors. These are interchangeable, even late E39 units work, but injectors made after 2007 for the later M57NTU2 do not. A great guide on BMW diesel injector codes is here - http://www.bmw-planet.com/diagrams/release/en/zinfo/FIN0201FB47TU033.htm.

As each cylinder is coded to a specific injector the order the injectors are fitted in is critical and must remain the same. This got me wondering if that could be the cause of the lumpy tickover after all. During the whole course of the swirl-flap repair and then engine swap these same injectors have been removed from the head half a dozen times. It is possible that during nozzle-cleaning or engine-swap teething troubles that one or two may have become jumbled. The only way to know is to read the code sequence on the ECU and match them to the codes on the injectors, so I fired up the scanner and went into Injector Programming. What I found was the picture below. Only 1-4 showed up with codes and only the first one matches any of my injectors. No. 5 and 6 are blank, but only 1 and 2 can be selected to alter the code anyway, so it would seem that the scanner I am using is unsuitable for complex BMW work - it is, after all, optimised for Transit vans. I have now procured some dedicated diagnostic software and a BMCables.com blue OBD-USB cable, which will hopefully give an improved result like it did with the smooth-running readout. If the codes still don't match my injectors then they're not the originals and were never coded in anyway, putting the idle problem into a different court entirely. Only time will tell, as INPA does not work for injector-coding on diesel Beemers - for that you need DIS and it has been so hard to set up that I will have to cover it in later posts.

My current injector codes are:

1 - 7G1R6A [Euro 3 v2]
2 - ASR1CE [Euro 3 v2]
3 - 6RH1DW [Euro 3 v2]
4 - BZZNBI [Euro 3 v2]
5 - 7GZ6417 [Euro 4]
6 - B1APEI [Euro 3 v2]

Sunday, 5 July 2015

E46 Clubsport: Nathan's split rubber + other issues.

More big spending as the Clubsport gets back on the road with a new MOT, starting with 4 new Maxxis tyres for the refurbed split-rims. It's been running a bit rough, but as he started it for the first time in a month it ran a bit worse and began producing a lot of white / blue smoke from the exhaust. Fearing the head-gasket he started dismantling and found it was just one of the profile-gaskets in the rocker-cover [16 in the bottom diagram] was split and hadn't seated in the head properly the last time it was replaced and was allowing oil to spill down into the chamber and was causing the smoke. This, he assures us, is a common problem in 6-cylinder BMW petrols and had nothing to do with any 'engine-weld' products he may have also added. Never the less, with a new rubber-gasket the smoke has ceased. During the job he found the rubber intake hose was also split in two places, clearly contributing to the lack of smooth acceleration suffered since he got it, so he treated the 330 to a new one of these as well.


The MOT threw up borderline high emissions, which was waved, and both front lower ball-joints were knackered. These are usually replaced as a whole control-arm, so that's what was done and finally the Clubsport is back on the road, looking and sounding as it should with better pull and a really raspy vanos exhaust note. Next up comes replacing the lower bumper splitter sorely missing from the front end.