Hey all, I was doing some research into the CSL conversion and I got a bit confused with all IAT sensor location. It seems like the stock location on the CSL box causes heat soak making the engine run richer than necessary. However I’m wondering does this change if you’re using a snorkel or flap? I have a Karbonious Snorkel I plan on using. Does the utilization of the snorkel/flap eliminate the heat soak issue? Or is it something that’s consistent with being left at the stock location? Thanks
Announcement
Collapse
No announcement yet.
CSL IAT Sensor location
Collapse
X
-
From another thread.
Originally posted by karter16 View PostI'll throw this into this discussion.
When designing the CSL BMW's engineers wrote code specifically to address and account for heat soak as a result of the stock IAT location. This code is not present for the standard M3, it was written specifically for the CSL as a result of the differing IAT location.
The original post is here and I've replicated the content below.
TL;DR: Yes heat soak needs to be considered, but BMW's engineers were also aware of this and there is code in the CSL program specifically to deal with and account for this. If you move the IAT from the stock location you are giving the DME a false representation compared to what it is expecting.
Okay here's one for those who are concerned about heat-soak and the location of the IAT sensor.
The CSL software has additional code in the function that calculates TAN (intake air temperature):
Lines 16 to 26 are not found in the standard euro software. These lines are calculating a version of TAN specifically for the purpose of being used in the CSL's calculation of air mass, which in turn is used in the calculation of final RF as we've seen previously.
k_tan_m_cfg is set to 1 in the 0401 partial:
which means that tan_m is set from what I've tentatively named tan_m_adj.
How is tan_m_adj calculated? Like this:
The key thing to understand about this function is that it is iterative. It runs every 100ms and the previous result is used to calculate the next.
So what are the key behaviors?
To simplify it down a lot, the function basically:
1: Starts with IAT (measured intake temp)
2: Compares it with TMOT (motor temp) and blends it to some degree based on:
3: ML - load
At high load tan_m_adj is pretty just TAN, at low load conditions where the engine is idling the tan_m_adj function is distrustful of what the IAT is telling it and calculates tan_m_adj more and more heavily based on tmot the longer the conditions continue.
Why is this model needed? It is specifically to deal with heat-soak at idle and at stop conditions. The model prevents situations where the DME trusts the IAT in heat-soak scenarios. This would be bad as it would result in lean running conditions. The tan_m_adj model gives the DME a more realistic understanding of the actual intake temperature to ensure that lean conditions don't occur.
It's a bit hard to graph, but this kind of shows the response of the model at various levels of load:
This isn't completely representative of how it works in reality as it is based on a fixed TAN reading, when in reality TAN will rise quickly due to heat soak, but what this graph does show is that at higher load levels the model heavily favors actual TAN (higher airflow = more accurate reading) at lower load levels it skews towards TMOT over time.
I can't come up with a good way to graph or visually represent an actual scenario of a car coming to stop at the lights and the behavior of TAN and tan_m_adj, so you have to just work it through in your mind.
Essentially this a fairly complex model which is tuned to handle IAT heat soak scenarios and give the air mass calculations a more accurate IAT value in those scenarios. The model is iterative and adjusts the tan_m_adj value further towards TMOT the longer the heat soak conditions continue.
What's the lesson? Don't mess with your IAT sensor - the software is specifically calibrated to deal with heat soak conditions.
2002 TiAg M3 Coupe (SMG to 6spd), 2003 Jet Black M5
https://www.instagram.com/individual_throttle_buddies/
- Likes 2
-
Just to confirm - The IAT sensor should be in the stock position. Also this is the IAT sensor to get? https://www.fcpeuro.com/products/bmw...or-13621739510
- Likes 1
Comment
-
Yep that's the part number I used. Also IMO the IAT should be in it's stock location, but given I wrote what's quoted above I would say thatOriginally posted by 4getr34 View PostJust to confirm - The IAT sensor should be in the stock position. Also this is the IAT sensor to get? https://www.fcpeuro.com/products/bmw...or-13621739510
2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread: https://nam3forum.com/forums/forum/m...e46-m3-journal
Comment
-
I also found that people are using e34 IAT and then rescale during tune.Originally posted by karter16 View Post
Yep that's the part number I used. Also IMO the IAT should be in it's stock location, but given I wrote what's quoted above I would say that
13621725323
So I couldn't help but notice that the IAT is even closer to the enigne with the CSL airbox than it was with the stock box. For those of you with a CSL box and a relocated sensor, where are you mounting them? Also what are you using to plug the hole in the airbox for the IAT? I did this last night just because, but this is not
Hey guys Im planning to grab a CSL intake soon. However before I do, I want to convert to MAP and run the CSL software on my ECU. Is this possible, and if so, where can we install the CSL IAT, or will the standard IAT sensor built into the MAF work? The idea is to install and wire in the MAP, and convert the ECU to CSL spec
what was your tuning experience?
Comment
-
Apologies - I missed this.Originally posted by 4getr34 View Postwhat was your tuning experience?
Do you mean what tune did I opt to go with? If so then I have built out my own tune following some of the same principles Bry5on has with his Mullet tune. I think of my tune as sort of an experimental tune that I use to validate various theories and ideas. If you're going CSL airbox with standard M3 cams IMHO you can't do better than the Mullet tune - you won't be disappointed.2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread: https://nam3forum.com/forums/forum/m...e46-m3-journal
Comment
-
Ok, I will look up his info. You should make a thread on your experience too.Originally posted by karter16 View Post
Apologies - I missed this.
Do you mean what tune did I opt to go with? If so then I have built out my own tune following some of the same principles Bry5on has with his Mullet tune. I think of my tune as sort of an experimental tune that I use to validate various theories and ideas. If you're going CSL airbox with standard M3 cams IMHO you can't do better than the Mullet tune - you won't be disappointed.
Comment
-
Originally posted by 4getr34 View Post
You should make a thread on your experience too.
Update 16 September 2025: The latest disassembly archive can be found here: https://github.com/karter16/CSL_0401_Binary_Disassembly_Notes/blob/master/MSS54_Disassembly_2025_09_16.gar There is a lot of additional work been done since the March update - off the top of my head things like: CSL RF calculation path built out
and my build thread (various posts from this one onwards): https://nam3forum.com/forums/forum/m...850#post279850
:-)2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread: https://nam3forum.com/forums/forum/m...e46-m3-journal
- Likes 1
Comment

Comment