sweet - all good. I've had a pretty good go through the code, there's a significant number of LLS (idle sync controller) errors that will trigger an EGAS emergency mode, but not all. confirmed as well that this logic is significantly different on the CSL specifically as it doesn't have the HFM (MAF sensor) to fall back on.
Announcement
Collapse
No announcement yet.
heinzboehmer's 2002 Topaz 6MT Coupe
Collapse
X
-
2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
- Likes 1
-
Also, I couldn't help myself. This is what an ICV looks like on the inside:
I had to cheat a bit at this point. There's a needle roller bearing at the very end of the casting that supports the top of the shaft that runs through the center of the rotor. But there's also another, bigger ball bearing that's held captive with this retainer:
The correct way to take this apart would be to insert a sleeve-like tool in between the casting and the rotor to push this retainer out of the way, then pull the rotor out. I don't have this tool and I was unable to get a good grip on the rotor with pliers, so I went the caveman route and cut the top off of the casting. With the shaft exposed, it was pretty easy to tap out.
Worth going into a bit of detail about the electronics as well. In retrospect, what I learned is obvious, but I was a bit blinded by an assumption I made a long time ago. The first time I saw the three pin connector, I immediately assumed that this was a brushless motor and I guess that idea never left my mind. But if you look closely at the stator, you'll see that there's actually only one continuous winding, with a tap in the middle:
Looks like this is designed this way so that you don't need to flip the polarity of the voltage going to the actuator to reverse its direction. Instead, you have a common tap in the middle of the winding that you can hold at a static voltage and then actuate the rotor by pulling up/down the other two pins. There's a bit of SW overhead involved with this approach to ensure you don't try to rotate it both directions at once, but it's nothing compared to the HW overhead that would be needed to reverse the polarity of the current going through the stator. I like it.
Quick look at TIS confirms this. Pin 2 goes straight to fuse 2 in the engine bay. Pins 1 and 3 go to the DME and get pulled down to ground when it wants to spin it one direction or the other.
If you look closely at the bottom of the casting, you'll see a "track" that a pin in the rotor rides in. This limits the rotor's range of motion, so that all the DME needs to do is energize it one way or another. Kinda crazy to think that this thing is an on/off switch. I always thought there was more fine grained control involved in the idle air circuit, but I guess not. Again, TIS helps confirm this with the descriptions in the DME pinout:
I guess, technically, the DME could hold the valve in some middle state between open and closed by quickly alternating what pin it's driving, but there's no position feedback anywhere on this thing, so that sounds highly unlikely. It would either need to guess the current position or rely on feedback from the MAF/MAP, which would nowhere near fast enough for this to work reliably.
I also measured the resistance of each section of the winding and got 11.0 Ω for one and 12.3 Ω for the other. For completeness, I hit the stator with a torch and measured again. Resistance went up as expected, but unfortunately, I found no faults in the wiring related to heat. Nothing really stands out to me here.
Honestly, at this point, it's looking like this thing is working exactly as expected. It's designed pretty robustly, so not surprised these don't ever go bad (like George Hill was saying).
There were two things that caught my eye though.
The first one I noticed before even taking it apart:
Those streaks make me wonder if some sand or similar got in there and messed up the bore. Could also be causing the valve to sporadically stick.
The second thing I noticed was a bit more confusing:
If I turn the rotor all the way to it's fully closed position, it WAY overshoots and lets a bunch of air through. This is what it looks like when it's held against its "fully closed" limit:
Note that the valve is turning more than it should and not less. If the face of it were longer, it would still be closed. I probably should have taken a video of this, since it's almost impossible to show in a static image, but just trust me on this one.
I don't know exactly how this valve is blended with the throttle bodies, but I can see why the DME would freak out if it's expecting the valve to be fully closed, but it's actually 1/3 open. I'll have to check if the new part does this same thing or not.
In a previous picture, you can see small dents at both ends of the feature in the casing that limits the valve's rotation, but I'm not convinced that those account for this in its entirety. Looks to me like the valve overshoots by more than the size of those dents, but it's hard to tell. Surprisingly, I saw absolutely no signs of wear on the pin that slams against these limits.
So, I've learned how this thing works, but I'm still unsure if it's actually broken. I mean, it's broken now, but maybe it wasn't broken before I started poking at it
2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - SSV1 - HJS - Mullet Tune - MK60 Swap - E86 Front Triangulation - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
- Likes 2
Comment
-
Thanks for sacrificing this to show us how it's built - super interesting and good to understand how it works.
It's definitely fine-grained. It's controlled via a 100hz inverse duty cycle.Originally posted by heinzboehmer View PostKinda crazy to think that this thing is an on/off switch. I always thought there was more fine grained control involved in the idle air circuit, but I guess not. Again, TIS helps confirm this with the descriptions in the DME pinout:2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
- Likes 1
Comment
-
Wait what.Originally posted by karter16 View PostIt's definitely fine-grained. It's controlled via a 100hz inverse duty cycle.
I believe you, but how does the DME know what the position of the valve is?
2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - SSV1 - HJS - Mullet Tune - MK60 Swap - E86 Front Triangulation - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
Comment
-
I don't think it really needs to - the current duty cycle gives a relative position of sorts, but really the idle controller is a fancy rpm-based feedback loop.Originally posted by heinzboehmer View PostWait what.
I believe you, but how does the DME know what the position of the valve is?
If RPM below target, increase duty cycle proportionally, evaluate response, continue to adjust, etc.
That's a simplified example, target air mass calculations and all that are in there too, but all inferred from the duty cycle as far as I can tell.2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
Comment
-
That's wild. I'm surprised that control loop works as well as it does. Would have thought the latency of the feedback would be too high for it to be stable.2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - SSV1 - HJS - Mullet Tune - MK60 Swap - E86 Front Triangulation - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
- Likes 1
Comment
-
Aha!
New genuine valve arrived. Bosch, made in Germany, with a manufacture date of late 2019. As far as I can tell, the design is identical to the one that was original to the car.
I gave it 12V in both directions to observe its limits and found this (apologies for the shitty pics, it was quite hard to hold the valve + wires + phone all at once):
Idle:
Fully open:
Fully closed:
This one doesn't overshoot!
I tried pushing it past its fully closed state with a toothpick, but was unable to. It felt like it was at the mechanical limit.
I can definitely see the DME throwing an error because of this, especially if the control loop is based on RPM/measured air like karter16 confirmed. Flow leading to the error would look something like this:
DME tells valve to fully close -> valve overshoots and lets a little bit of unexpected air in -> RPMs rise -> DME reacts to RPM rise by telling valve to close more -> valve overshoots more and lets more air in -> RPMs rise more -> DME tells valve to close more -> rinse and repeat -> DME gives up and throws an error
I'll get this installed and tested soon. I'll be very happy if this solves my recent low speed jerkiness and it turns out that I do know how to drive stick.2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - SSV1 - HJS - Mullet Tune - MK60 Swap - E86 Front Triangulation - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
- Likes 3
Comment
-
Weeell, there goes that theory. Managed to prove it wrong two separate ways:- The old valve, with the stator clocked like it was prior to disassembly (I marked it), does not overshoot when given 12V. It can mechanically overshoot, but the motor cogs at the fully closed position, since there's no commutator to keep it spinning until it hits the mechanical limits. I'm guessing the limits are purposefully placed further out to avoid having the pin slam into them every single time. This makes sense.
- I was able to force the new valve to overshoot by pulsing the 12V signal to it, effectively causing a positive feedback loop. Looks like the mechanical stops are in the same place as the old one, but it doesn't overshoot when held at a static voltage because of that same cogging effect.
I should probably stop messing with this and just put the car back together...2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - SSV1 - HJS - Mullet Tune - MK60 Swap - E86 Front Triangulation - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
- Likes 3
Comment
-
I usually spray mine down with electronics parts cleaner, but might need to start doing the soak thing.Originally posted by Obioban View Posthttps://www.amazon.com/clp/B00DSMEL2...2R1WD61CA2KYC5
one gallon of this has cleaned all my car’s ICV’s for the last 30 years, whenever I have access to them. Very low effort and cheap preventative.2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - SSV1 - HJS - Mullet Tune - MK60 Swap - E86 Front Triangulation - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
Comment
-
Also, WOW. Turns out I'm not a shitty driver (I think), it was the car!
Like any good scientist, I changed multiple variables at once before testing, so I'm still not convinced the ICV was fully at fault.
In addition to the ICV, I also swapped in new individual throttle pull rods (13547832148). There really wasn't anything wrong with the ones on the car, but I had new ones on hand, so I took the opportunity to refresh them.
Here's a quick comparison of the play in the pull rods. Cylinder 1 has a new one, 2 and 3 have old ones. Recommend headphones so you can hear the difference, cause it's practically impossible to tell visually:
I didn't even bother taking a picture of new vs old, cause they looked identical.
One thing that did change with the new ones is that the ITBs no longer squeak when actuated! Guess there must have been some crud inside one of the pull rods. I'm surprised this was the cause of the noise, since it's always sounded metallic to me, but I'm not complaining.
Anyway, after doing this work, I cleared idle/throttle adaptations and took the car on the same test route that had triggered the ICV code before. No more codes and driving impressions are all positive. Here's the stuff that most stood out to me:- Throttle tip in is way smoother. I used to feel a subtle bucking that I attributed to slack in the drivetrain, but that's pretty much gone now.
- Pulling away from a stop is also much smoother. I feel like I no longer have to anticipate what the engine will do, since it now does what my foot tells it to. I think the best way to describe this is that it feels like a more modern car now.
- The little bit of remaining weirdness at ~1800 rpm is gone, gone. I'm hoping this was the last remaining difference between mine and Bry5on's car.
- In general, the engine's response to small throttle inputs feels more "rounded". This is a very welcome change.
So even though I didn't fully figure out what was wrong, I do think I solved the issue. I need more seat time to know for sure, but I'm happy for now.Before:
Idle controller adaptation torque: 36.3 Nm
Idle controller start torque: 36.3 Nm
Idle controller start torque with A/C: -24 Nm
Idle controller start air mass: 0.0625 kg/h
After:
Idle controller adaptation torque: 2 Nm
Idle controller start torque: 2 Nm
Idle controller start torque with A/C: 3.2 Nm
Idle controller start air mass: 0.92188 kg/h2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - SSV1 - HJS - Mullet Tune - MK60 Swap - E86 Front Triangulation - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
Comment

Comment