GS-911 and ezCAN User Forum

General Category => Technical => GS-911 => Engine related issues => Topic started by: javadude on June 08, 2019, 06:09:41 PM

Title: Lambda/O2 sensor/probe stuck at 870mv
Post by: javadude on June 08, 2019, 06:09:41 PM
Until yesterday I’d only ever used the mobile version of the software to check for error codes and other readings I understood.

Yesterday, I plugged in my laptop and clicked around the PC version of the software to see what it more could do. One of the things I did was to look at the Lambda voltage, which was high at c. 870mv and well above the green band – i.e. fuelling running rich.

I went away and did some research to learn that the Lambda graph should really be jumping around, whereas mine was almost flat at a fairly constant 870mv. I also learnt that the engine should be up to temperature before taking any meaningful readings.

So today I connected my laptop and started the GS-911 data logging (spreadsheet enclosed). I pulled the fast idle trigger into its first position – the BMW Repair Manual refers to this as ‘starting-speed increase’ - started the engine from cold and allowed the engine to warm up. When it reached operating temperature, around 80C, I turned the fast idle off whereupon the idle speed dropped from about 2,2000 RPM to around 1,100 RPM.

I expected the Lambda voltage to start jumping around but it remained stuck at about 870mv.

Even as the engine temperature continued to increase it remained stuck at about 870mv. I switched the engine off and went back inside to take a look at the data log.

The first thing I noticed, is that all the way through ‘Lambda closed-loop control’ remains at 0 (zero) – i.e. open-loop. My understanding is that it should switch to closed-loop when the engine gets to operating temperature.

The second thing I noticed, is that ‘Idle switch’ remains at 1 (one). So I went back to the start of the log and can see that it starts at 0 (zero), and changes to 1 (one) before the engine starts up. This tells me that it is switching on but not switching off again. At this point in time my theory is that this is forcing the ECU to remain in open-loop.

I’ve checked the BMW Repair Manual and wiring diagrams for my bike, but I can’t see a physical ‘idle switch’ anywhere.

I could have missed something of course, but my question is this: How does the ECU know when the ‘idle switch’ is on or off?

Thanks in advance for your help!

Motronic MA2.4
Motorcycle Variant:   R1100 S ECE-Kat
Part No.:   1342982
Bosch Part Number:   0261204709
ECU Software Number:   1037359252
ECU coding variant:   0
ECU program version:   43010300
Manufacturer:   Bosch
HWOE No.:   42375823
Idle Actuator:   No
Emissions control type:   Lambda
Title: Re: Lambda/O2 sensor/probe stuck at 870mv
Post by: Jughead on June 09, 2019, 08:44:04 AM
You may well find that the TPS (Throttle Position Sensor) needs to be adjusted correctly.  I did a write-up some time ago on how to set up the TPS and throttle bodies correctly.  Will try to find it and post it here for you.
Title: Re: Lambda/O2 sensor/probe stuck at 870mv
Post by: Jughead on June 09, 2019, 08:49:21 AM
Here you go.

Adjust valve clearances.
Starting with the left throttle body, remove and clean the BBS using brake cleaner or whatever you prefer.
Remove the rubber cap from the vacuum port, remove the throttle body from the intake manifold, clean TB with brake cleaner and blow dry with compressed air.
Replace the BBS, applying a dab of rubber grease to the o-ring.
Turn the BBS in all the way and then back it out 1.5 turns.
Loosen the locknut on the throttle stop screw on the LHS throttle body and back the screw out so that the butterfly closes completely.
Make sure there is enough free play on the cable.
Refit the throttle body and plug in the TPS
With a multimeter connected to pins 1 and 4 of the TPS connector, turn on the ignition and adjust the TPS to give you a reading of 0.25V.
Lock the TPS in that position and do not touch it again.
Now adjust the throttle stop screw to give a reading of 0.36V.  Lock it in place using the locknut.
The LHS throttle body is now set up correctly.
Repeat the cleaning process on the RHS throttle body, and also adjust the BBS to 1.5 turns out once clean.
Start the motor and adjust the balance at idle using the throttle lock screw on the RHS only, NOT the BBS.
Once balanced, both throttle bodies will now be working in sync at idle.
Now bring the rpm up to around 3500 - 4000 RPM and adjust the cables to balance.

If you check your idle switch now, it will most likely be off.

Hope this helps.
Title: Re: Lambda/O2 sensor/probe stuck at 870mv
Post by: javadude on June 09, 2019, 10:48:16 AM
You may well find that the TPS (Throttle Position Sensor) needs to be adjusted correctly.
Thanks for the suggestion. I don't think that the TPS adjustment is the problem, as it's nicely in the green zone according to GS-911 readings.

I'll post a couple of graphs from the log. Measures other than 'Idle switch' show that the ECU registers the fast idle being switched off.
Title: Re: Lambda/O2 sensor/probe stuck at 870mv
Post by: javadude on June 09, 2019, 11:23:02 AM (

In the top graph, about 2/3 along, the 'Ignition angle' drops as does the 'Throttle position (TPS)' when the 'fast idle' is switched off.
Title: Re: Lambda/O2 sensor/probe stuck at 870mv
Post by: javadude on June 11, 2019, 02:31:25 PM
Here's an update following another test run.

In the first test, I used the fast idle to get the engine up to temperature quickly but the graph showed the ‘Idle switch’ turning on and not turning off again.

I ran this test specifically to test whether the ‘Idle switch’ was working correctly and got a completely different graph! (

From the very start, the GS-911 recorded the fast idle being turned on and off. I’d noticed this at the very start of my first test but when the engine was up to temperature in that test the ‘Idle switch’ remained on.

In the second test the ‘Lambda closed loop control’ remained off until the engine temperature reached about 58 C, when it flickered briefly. When the engine temperature reached about 64 C it remained mostly on, which means, if I’ve understood things correctly, that the ECU is using the Lambda/O2 sensor in its calculations.

At about the same point, the ‘Lambda sensor voltage’ is seen to drop and then follow its expected pattern of jumping between high and low voltages. Whilst this is much, much closer to the expected pattern, I’m uncertain whether it’s actually responding quickly or slowly when compared to other published graphs out there.

Interestingly, as the engine temperature continues to rise, the ECU switches back to open-loop and the ‘Lambda sensor voltage’ goes back up to the 870mv range seen on the first run. I suspect that the ECU is running a rich mixture in an attempt to control the engine temperature.

It seems that my first test was invalidated by keeping the fast idle switched on for so long during warm-up, which may have caused the ECU to remain in open loop, especially as the engine temperature continued to rise. It’s all down to the programming, and since we don’t have access to the spec or the code, all we can do is monitor the behaviour and comment, possibly speculatively.

Given that I’ve been able to observe a more normal ‘Lambda sensor voltage’ graph I’m going to leave it at that for now.

For the benefit of others who may come across this post:
My bike is a European spec R1100S manufactured in December 1998. It does not have a Cat Code Plug (CCP) fitted. I checked this out with an independent BMW business here in the UK,, who confirmed that EC models were not fitted with a CCP. The GS-911 ECU readout shows the ‘Motorcycle Variant’ as ‘R1100 S ECE-Kat’. That reads like ‘EC model with catalytic converter’ to me, and I believe that this also refers to the set of maps that the ECU is using (please refer to ( for R1100 & R1150 CCP variations).
Title: Re: Lambda/O2 sensor/probe stuck at 870mv
Post by: Jughead on June 11, 2019, 03:41:54 PM
Remember that your lambda sensors can only measure what is fed into the cylinders.  If one cylinder is running richer that the other one, how can one lambda sensor compensate for that?  It cannot, so it takes an average.

I will refer back to my earlier post and ask:

Have the valve clearances been set so that both cylinders match?
Have the throttle bodies been synced so that they match, not only at idle but also higher up the rev range?
Have the butterflies been synced?
Are the throttle cables (the short ones from the junction box) in good condition, moving freely and not frayed?
Have the idle bypass screws been adjusted to match?
When last were the bypass screws cleaned?  (As a matter of interest, how many turns out is the LHS screw in relation to the RHS?)

Before I do any exhaustive fault finding, I first check and double check all of the above.  When I am happy that everything on the 2 cylinders match 100% and I still have an issue, then only do I start fiddling.

99.9%of the time the issue is gone.