This is something that everyone with an S38 engine needs to do periodically. You also need to do it before/during throttle synchronization. In Rod’s own words:


“I developed these procedure out of necessity when I first got my M6 14 years ago.

The engine would occasionally die when retuning to idle, i.e. when casually down shifting or after a rev off idle.

After several trips to the dealer for the problem and no solution, I researched several BMW Repair Manuals, Service Bulletins and compiled the information.

Need I say this is the only diagnostics and it is the base line setup for the Basic Motronic 1.0.

Jim Conforti has confirmed the procedure.”



It is not advisable to just twisting the idle screw.
I assume if the idle is dropping below the idle speed control valve may be non-operational. I would suggest that you follow the procedure below.

Without a "Check Engine" light how will you know when the M5/M6 S38B35 DME O2 circuit is operating open loop?
M5/M6 S38B35 also has a closed loop Idle control circuit that performs functions such as "Coast-Off" and an idle adjustment bypass port, how can the proper open loop idle speed be set?
Is your idle rough?
Does your engine occasionally die when coasting down to idle?

Make no mistake, this is not the end-all, be-all for idle problems. The Bosch X5DC plugs should be replaced at every Inspection (15K miles), the distributor cap & rotor should be replaced at 60K miles and you will want to check the vacuum at each throttle body to ensure the throttles are evenly set. You could also have a leaky injector that will raise havoc with idle performance.

The S38B35 engines have a manual idle speed set-point adjustment on the 3-4 throttle body and a manual CO adjustment on the AFM that sets the DME closed-loop for the O2 sensor at idle. I have found an occasional need (3 times over the last 7 years) to reset the CO adjustment on the Air Fuel Meter and open loop Idle speed in-order to recover normal Idle performance. Fuel blend changes (winter/summer, MTBE, etc.) create a need to reset the CO and idle adjustment. The more sophisticated Bosch DME's accomplish this as a learning function in the CO & idle compensation circuit in the DME. In most cases when I have noticed a high idle condition the DME is actually functioning open loop. Therefore, if the S38B35 engines had a "Check Engine" light, it would have been lit!!

Attempts to set the idle without using a
Throttle Switch Bridge will produce mediocre results at best (you'll just be guessing). Adjusting the CO screw on the AFM without monitoring the O2 sensor will cause the DME to operate open loop at idle.

Below are the basics to successfully setting the CO and open-loop idle speed.


Throttle Switch Bridge, BMW p/n 88 88 613 4 010 (shorts all three pins together NOTE: You can easily make something yourself to short the three sockets in the TPS cable connector – TK)


Clamp on Tachometer, Idle setting is 850 +/- 50 rpm's (Note that your dashboard tach is useless for setting idle RPM – TK)


Voltmeter for monitoring A/F mixture: ideally, a Fluke 88, recording/averaging meter is the best, set meter to; 40volt range, record/average. (If you don’t have access to one of these $$ meters, then a simple analog meter will work pretty well – TNK)


1)Check to make sure the throttle switch (TPS) closes just as the throttle butterfly's close (the closer this switch is set, the better the engine will transition between idle and non-idle throttle positions).

2) Connect the voltmeter between pin 5 (DME oxygen sensor signal on 15 & 20 pin Diagnostic Connector) and ground (pin 19 on a 20 pin or pin 1 on 15 pin) Diagnostic Connector.

3) Start the engine, while the engine is warming up observes the voltage reading at pin 5 on the Diagnostic Connector.

4) Once the engine is warm the oxygen sensor signal should read between 5-7 volts average (6 volts +/- 3 volt spec.). If you don't have an averaging volt meter, your volt meter will cycle every second or so between 0 volts and 12 volts the cycling should be 50% duty cycle. The cycling is demonstrating that your fuel injection system is running closed loop. If the oxygen sensor signal is not cycling then you will need to diagnose and repair the DME open loop problem. The problem could be something as simple as the CO adjustment on the Air Flow Meter. (NOTE: If you are too rich, the meter will sit at zero volts (it will also do this if the meter’s battery is dead!). Too lean, it will sit at 12V. As your mixture approaches stoichiometric, the needle will start to cycle, but will stay longer at either 12V or 0V depending on whether you are on the rich or lean side of stoich – TNK).

5) Shut-off the engine and install the
Throttle Switch Bridge on the cable connector for the throttle switch. The Throttle Switch Bridge allows the idle circuit in the DME to operate in open loop mode and sets the idle control valve a nominal position.

6) Start the engine, check to see that the oxygen sensor signal is reading 5-7 volts (after reset the recording function) or that the voltage is cycling at a 50% duty with a standard volt meter. (the engine will not rev or operate normally with the Throttle Switch Bridge installed)

7) Adjust the Idle speed screw to 850 rpm's (large brass slot screw recessed in the middle of the 3-4 throttle body) using the record/ averaging function will help accurately set the idle speed as it fluctuates. The minimum and maximum record measurements on the Fluke will help you understand the open-loop idle smoothness. (NOTE – Loosening the screw increases idle speed – TNK)

8) Shut-off engine, remove the
Throttle Switch Bridge and re-connect the throttle switch.