Who wants to detect overfuelling injectors? (Continuous/background injector smooth running check)

owner

Oz '03 316CDI LWB ex-Ambo Patient Transport
Some of you may be aware I have gotten the MB smooth running check woking on my modded NautaBox on my CDI2 T1N. So this applies to ROW OM612 (and possibly NAFTA OM612 but this needs to be tested).

The background is that Im modding my NautaBox to emulate an ELM327 Bluetooth adapter so that I can use the Android Torque app to view/monitor/log interesting stuff like oil and trans temps. (https://sprinter-source.com/forums/index.php?threads/79732/)

I can trigger this to start monitoring and read the individual injector corrections at-will. But Star diagnosis only allows this to happen when ECT is above 80DegC.

I need help deciding on what steady state conditions I should trigger the tests with. The actual results I can do a rolling/timed/filtered average via BT in the Torque Android app, and can log and set alerts etc.

At the moment Im thinking only trigger when all these conditions are met:

1. ECT above 80DegC and drift within +/-2DegC.
2. RPM above 500 and below 1200rpm. With no more than +/-50rpm drift during the test.
3. LOD above 10% and below 50% with +/- 10%.
4. Vehicle speed must be and remain zero.

In terms of drift, I will latch the channel values at the start of the test, and those values must not drift beyond the amounts specified. Assuming other conditions are still met, new run would occur with newly latched values. The aim is to only acquire the inj corrections under steady state so that they are relevant and relative to each other.

So a test will begin, and remain active while all of those conditions are met.

During a test the individual inj corrections will be filtered and logged in Torque. Once conditions are not met the test will stop, and the values in torque will no longer be collected (essentially frozen), until next time conditions are met and they are accumulated again continuing from the previously frozen values.

So this should give a good filtered long term average for each injector correction under steady state conditions.

Im wanting it so that it will be collecting inj corrections every time the engine is idling.

Are there any issues or omissions you can see with those conditions?

Edit:
Post #46 text added with permission from Owner. AP
(If I copied the reply with post #46 click link the text would be condensed/chopped off.)

"WARNING. I had a bit of a runaway situation today. The only thing I can think of that could cause it is the smooth running test.

I was coasting to a stop at some traffic lights, up a slight incline. Then suddenly it was like the van applied the "throttle" a bit, instead of continuing to coast down to a stop. The brake wouldn't stop it, in fact the van actively fought against the brake, trying to maintain speed! I immediately knocked it into N and the engine then idled as if no code-brown had just happened.

I think what may have happened is the OBD command to stop smooth running may have failed. I only try it once in the code, and don't check for failure. I have changed the code now to fix this, so that it will keep trying to stop the smooth running function. Don't use the code I attached earlier without doing this change. And the code I released in post #42 has been deleted now.

I'm not sure how to safely fix it. Probably do one retry of stopping the smooth running test, then if that fails, go into a reset state for 10s. I'm hoping the ECM will drop the connection (and smooth running mode) after the KWP2000 specified 5s, then I can restart my code. I can't do anything else really.

In any case, the code I re-upload will have the smooth running disabled."
 
Last edited by a moderator:

trc.rhubarb

Well-known member
I'm curious... without any downstream monitoring, how is the system making corrections?
Is it purely based on crankshaft pulses or have you added an O2 or EGT sensor to help with this?
 

owner

Oz '03 316CDI LWB ex-Ambo Patient Transport
Its a built-in routine inside the Bosch ECU inside every sprinter. MB Star diagnostics uses it to perform the "Smooth running" injector test.

I assume it measures crank teeth to make sure each injection event results in the same piston acceleration during each power stroke. Similar to how it measures this for the compression stroke during the relative engine compression test.

The way the ECU controls smooth running is by adding/subtracting fuel to each injector (individual injector correction). I can now get access to those individual injector correction values whenever I want.

The idea is that an overfuelling injector would have a relatively large negative correction compared to the other injectors. So I want to detect that condition before a piston is damaged.
 

Midwestdrifter

Engineer In Residence
Sounds like you need to log some data to see what range is normal. I am not sure how often the ecm recalculates, but it could be often.

If you Determine the maximum range the ECM can inch adjust the fuel trim, then you can simply trigger the alarm if the range is maxed out. Of course the issue comes in when you have multiple injectors that are funky and the ECM can't adjust the trim properly due to a relative imbalance across the entire engine.
 
B

billintomahawk

Guest
I can only encourage you and hope that this new monitoring technology can be made available to all of us. The engine saving and money saving potential sounds enormous since you can monitor and identify individual injector/cylinder problems.

If that is so, finding a problem is simplified and testing/replacement is individualized negating the need for removal and testing of all the injectors to identify the bad one. That alone make the initial investment well worthwhile.

Smooth running becomes safe running and that's revolutionary as our machines really become 'Million Mile Sprinters'.

The potential to test a replacement engine or a rebuild is unlimited.

bill in tomahawk
 

calbiker

Well-known member
One would think a fault code would be thrown if a injector correction is out of bounds. Would be interesting to scan all fault codes.

Owner- what correction data are you seeing?

I might take a look at my data. I’m currently on my summer trip. Don’t like to run experiments while 2000 miles from home.
 

Nautamaran

2004 140” HRC 2500 (Crewed)
This sounds VERY cool!
Renews my desire to crack through the “unlock“ challenge/response routine on the CDI3 ecm and get at these diagnostic routines. :unsure:

-dave
 

220629

Well-known member
One would think a fault code would be thrown if a injector correction is out of bounds. ...
One would hope. The piston failures of some 5 cylinder engines have shown damage that could be related to overfueling. I don't recall anyone mentioning a computer imposed LHM or other response that tried to avoid the failures.

An injector overfuel warning would be a nice addition. :thumbup:

:2cents: vic
 

Nautamaran

2004 140” HRC 2500 (Crewed)
Possible CDI3 solution: while the injector correction values are behind the “unlock” barrier, the injection duration is not. I have not examined the source data that the iCarsoft MBii and Autel tools use when displaying the injection duration values, but since these are available while still in the locked (public) ECM state, if these durations are available per cylinder then a similar alarm may be possible without unlocking, triggering if one injector’s duration becomes drastically shorter than the others?
(or, the durations may be the gross value before individual injector corrections are applied and not useful for this sort of analysis)

-dave
 
Last edited:

owner

Oz '03 316CDI LWB ex-Ambo Patient Transport
or, the durations may be the gross value before individual injector corrections are applied and not useful for this sort of analysis)
After thinking about it, Im fairly confident that bunch of "public" injector volumes and timings are the current calculated global vaules. There are pre-injection and main-injection and total volumes and timings.

The individual injectors should in theory then have their own trims/corrections applied to this value before firing. These are usually fixed multipliers based on injector coding and engine design.

Certainly the overfuelling failures we see, the lack of MIL codes being thrown, and the existance of the smooth running test, would suggest there is nothing more than that going on under normal running.

If an injector was overfuelling during normal running, those total fuel values would change slightly say at idle, where the ECU is targeting a specific rpm and adjusts overall fuel to compensate. But this wouldn't be enough to detect as it is spread across 5 cyls and there are many other factors at play. (Having said that, it could be better than nothing if you really cant get access to smooth running on CDI3).

So this is probably why the smooth running test exists and needs to be triggered. The ECU will specifically monitor individual cylinder acceleration, and make individual fuel corrections based on that.

IIRC MB STAR says when an injector gets to -5mm3/Hub it needs to be replaced. So now its just a case of only triggering/looking at those values when appropriate. ie. only when the ECU can reliably measure individual cyl accel and can effect change on those accels.

For example it doesnt make sense to do it when in gear at constant cruise, because the individual cyl accels are constrained by the significant load on the crankshaft.

Using MWDs suggestion I will run some tests/logging with the basic conditions of vehicle stopped and engine at idle speed. Im hoping the extra load of being in gear wont matter but its not ideal.
 
Last edited:

Nautamaran

2004 140” HRC 2500 (Crewed)
Based on the LOD value, the TC load is significant even at idle? IIRC the LOD goes from around 25% in N up to 35% in D or R at rest, so the flywheel would see significant damping during the smooth running test when in gear?

(The ECM is aware of selected gear... Will it even enter a smooth running test cycle while in Drive?)

-dave
 

owner

Oz '03 316CDI LWB ex-Ambo Patient Transport
Will it even enter a smooth running test cycle while in Drive?
Yes it seems to enter smooth running as soon as I tell it to, regardless of actual conditions. So at this stage I have full control over when to enable and collect the measurements. So we just need to decide when is appropriate.

I will hopefully get some logged data over the next week or so.

I think the load from the TC while stationary in D may actually work in our favor? - Sure the load on the engine is increased, but it isn't adding any momentum (when stationary in D) So the difference between power-stroke accel rates and non-power-stroke decel rates would be amplified - like when you have a rough idle, its always worse when sitting in D against the brakes. But the extra fuel demand could mask a slightly dribbling injector.
 
Last edited:

owner

Oz '03 316CDI LWB ex-Ambo Patient Transport
IMG_20200707_153952.jpg
Boom.

I have live inj cor values on the top row. Average of the 10 last samples on the second row. And continuous rolling average on the bottom row (I'm currently having issues with this RAVG function within the Torque app). So I might change the bottom row to graphs.

I did a quick test between idling in P and idling in D. My same -ve injectors showed up in both, with roughly the same values. So it looks like its good 2 go.

I need to work out how to do logging on Torque to get a better idea of its usefulness. But already I can see inj2 is showing a lot of negative corrections most of the time conpared to the others.
 

gs850gx

Active member
Boom! Indeed. I'd be interested in seeing those values on my engine. Very cool stuff and thanks for sharing.
D
 

owner

Oz '03 316CDI LWB ex-Ambo Patient Transport
I'm having some weird issues with the Torque app. You can see one in the photo I posted earlier, row2 col2, the label for that display is wrong, it says inj01 but it is definitely inj02. Doesn't matter how many times I re-do it, it always says inj 01. This is also affecting my alarms, they all revert to inj 01 even though I choose inj 0x. Its kind of useless if I can't raise alarms on the other injectors. grr.
 

Cheyenne

UK 2004 T1N 313CDi
You can see one in the photo I posted earlier, row2 col2, the label for that display is wrong, it says inj01 but it is definitely inj02.
Row3 col1 is also incorrect so have you possibly got the boxes in the wrong place on the display? It may help to change the titles for last 10 avg and rolling avg to differentiate displays.

Keith.
 

owner

Oz '03 316CDI LWB ex-Ambo Patient Transport
nah that one was actually a mistake by me which I have since fixed. Its just a really weird bug, because all of the other 03-05 work fine, just that one. Note that it does show the correct channel, jut the title gets set wrong. I can actually manually change the title so I will just do that.
 

markxengineering

Active member
This is great.
I think the best way to set a threshold for "we have a problem" is to temporarily test a known-bad injector, perhaps one pulled from an engine that cracked a piston or other similar fueling failure. Even better if that injector has also been sent to be characterized by Bosch rebuild service. Other than that, we would have to wait for engine failures from those running the monitor to learn appropriate thresholds.

Since both of the above are semi-unrealistic for different reasons, monitoring the long term trends under known conditions might give an early warning. At this point, I don't think we know if the failure are a sudden black and white event, or a gradual failure, or if there are multiple types of failure. I think hot idle (in drive or park) and highway cruising (cruise control at 65mph, flat ground) are good conditions to trigger the test, as they are easily repeatable.
 

marklg

Well-known member
I think it would be ideal to get some Nautaboxes with this capability to some shops that do lots of Sprinter work and would be willing to do before and after tests when injectors are replaced or refurbished.

Regards,

Mark
 

Top Bottom