If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
Announcement
Collapse
No announcement yet.
A quick and easy way to street tune your CSL conversion for drivability.
Thanks heaps for this - Correct me if I'm wrong but doesn't this straight up disable the lambda controller?
Yes, that scalar will shut down the lambda controller completely however Lambda regulator shutdown is rpm/rf based. You'll have a blast disassembling the lambda module! I don't miss it one bit, LOL…
I was doing so much at once back then that I don't remember what steps I took exactly, but there was some drift with each successive cycle. The car ran fine the whole time, and it presented as stumbling from the transition from cold start open loop to regular closed loop operation, due to a sort of binary change in fueling.
Now that I think of it a little more, this might have only been an issue during AFR based tuning. I tried a bunch of different things to get the transition from part throttle to full throttle AFR right, which is challenging as the DME goes open loop at different relative openings based on RPM. Then the latency from polling the d-bus messes with your numbers.
Perhaps it's not needed after all, I should have thought more before posting! But tuner beware if you're using AFR
Okay cool - it will be good to get some more feedback from others before discounting this I think, I am but one data point. It has driven me to look further into the lambda controller disassembly which is also a good thing.
It will be good if I can make some progress on the CAN bus message to get fast data acquisition for this as well so we can stop worrying about the data point latency issue.
Hi gentlemen, trying to play catch up as i've just startet following your work. A suggestion i would propose is to deactivate tank ventilation too.
Great to have more people looking at this. You raise a very valid point re tank ventilation. What I'm not sure of though is for what period of time it's reasonably safe to disable ventilation for? Does anyone have any thoughts on this? There's certainly easy ways it could be disabled in the partial tune.
I do know for sure that tank ventilation is specifically accounted for in the MAP sensor RF calculations. I suspect that probably the tuning process will get the VE table close enough either way for the MAP sensor to be able to compensate when it's turned back on, but regardless we should try to understand this fully (as I would think those running pure AlphaN could take advantage of this tuning process in similar ways right?)
Thanks heaps for this - Correct me if I'm wrong but doesn't this straight up disable the lambda controller?
When you were doing your early tuning runs and ended up rich at low RPM how was that presenting to you? Was the lambda integrator reporting 1 for those cells but the wide-band was showing it was actually rich? Or was there some sort of feedback loop where it was being driven rich on each successive run? Just curious as I'm not really seeing that (second scenario) play out for me with this current testing I'm doing. The low RPM idle range has mildly more fuel than the stock CSL tune, but only slightly so and has consolidated around a lambda of 1.0 after 3 tuning runs.
I was doing so much at once back then that I don’t remember what steps I took exactly, but there was some drift with each successive cycle. The car ran fine the whole time, and it presented as stumbling from the transition from cold start open loop to regular closed loop operation, due to a sort of binary change in fueling.
Now that I think of it a little more, this might have only been an issue during AFR based tuning. I tried a bunch of different things to get the transition from part throttle to full throttle AFR right, which is challenging as the DME goes open loop at different relative openings based on RPM. Then the latency from polling the d-bus messes with your numbers.
Perhaps it’s not needed after all, I should have thought more before posting! But tuner beware if you’re using AFR
Thanks heaps for this - Correct me if I'm wrong but doesn't this straight up disable the lambda controller?
When you were doing your early tuning runs and ended up rich at low RPM how was that presenting to you? Was the lambda integrator reporting 1 for those cells but the wide-band was showing it was actually rich? Or was there some sort of feedback loop where it was being driven rich on each successive run? Just curious as I'm not really seeing that (second scenario) play out for me with this current testing I'm doing. The low RPM idle range has mildly more fuel than the stock CSL tune, but only slightly so and has consolidated around a lambda of 1.0 after 3 tuning runs.
Ah nice! I hadn't figured that out! - that would be great if you could! If we can identify all these factors and how to address them we should be able to come up with a really solid process anyone can follow to do this.
Ah there's another fuel trim that you need to disable that's active near idle conditions. I found this one out during my early testo logging which was fun. Some early versions of the mullet ended up super rich near idle because of it when combined with this fuel trimming process. This is partly why I switched to AFR based final tuning. Will see if I can get to my laptop before I head out of town to dig it up.
Ah nice! I hadn't figured that out! - that would be great if you could! If we can identify all these factors and how to address them we should be able to come up with a really solid process anyone can follow to do this.
Ah there’s another fuel trim that you need to disable that’s active near idle conditions. I found this one out during my early testo logging which was fun. Some early versions of the mullet ended up super rich near idle because of it when combined with this fuel trimming process. This is partly why I switched to AFR based final tuning. Will see if I can get to my laptop before I head out of town to dig it up.
Yeah good call - I mentioned this in the disassembly thread but hadn't really expanded on it here. For reference for everyone here are the details below of how I'm now setup for VE tuning.
1: Disable and clear Long Term Fuel Trims
In TunerPro (with the XDF above loaded along with your current 0401 partial (tune) binary) Open the K_LAA_TMOT_MIN parameter and set it to 100 degrees C. As noted in heinzboehmer's earlier post this has the effect of raising the point at which the LTFTs are updated above the operating temperature of the motor (e.g. the LTFTs will never change).
2: Clear current engine adaptions in INPA.
Again as heinzboehmer notes this is necessary because the above step only stops LTFT's from being updated, not used. So you need to reset them to 1.00 so that they have no effect.
3: Disable the MAP Sensor Integrator
The MAP Sensor is a good thing under normal conditions in that it, in real time, accounts for variation between the AlphaN VE table and actual real-world conditions. This is why running the MAP Sensor results in a smoother drive. However this correct is counter-productive when performing the VE tuning process. To disable the MAP sensor input to calculation of Relative Fill and rely solely on the AlphaN VE table set k_rf_cfg to 0x02 (if you would like more reassurance that this does what I say it does see here: https://github.com/karter16/CSL_0401...put-parameters)
4: Go for a drive and log in TestO.
Log the following Parameters (you can log other parameters as well, just need at least these):
- Relative Opening
- RPM
- Lambda Integrator 1
- Lambda Integrator 2
- Motor Temp (if you're going to log from cold, otherwise only start logging once car is completely up to temp)
5: Process the log file to correct the AQ_REL (Relative Opening) values
Take the resultant log file and run it through https://docs.google.com/spreadsheets...it?usp=sharing to adjust the Relative Opening values to scale correctly for the AlphaN VE table.
6: Load the processed log file into MegaLogViewer
Load the processed log file into MegaLog Viewer.
7: Calculate the new VE table
Copy the lambda table from MegaLogViewer into heinzboehmer's spreadsheet and process as per the instructions there.
I went for another run this morning (about 5 degrees cooler than last night).
I didn't need to look at the log file to know that this is the right approach. Honestly was like driving the car with the MAP sensor enabled.
As you can see from the log there's still some tuning to go, mostly around the very low rpm range which is really hard to consistently hit while driving (especially with SMG). But essentially all the cells are pretty rapidly converging at 1.0 (those that still have some work to do are where they didn't have good coverage in the previous logging run).
I'm stoked. I'm very confident now that this is the trick to nailing down the low RPM, and just need some others to further validate what I'm seeing.
There are two key learnings out of this:
1: It is important to make sure the DME is actually functioning the way you think it is. In this case the assumption was that AQ_REL (Relative Opening) was used by the Alpha_N (VE) table the same as it is in the VANOS tables, etc. Digging into the disassembled code showed that this was not the case and that the Alpha_N (VE) table y-axis uses a modified form of AQ_REL at low RPM. The effect of this is that, if not corrected, MegaLogViewer attributes Lambda Integrator values to the wrong Relative Opening cell. This results in lower RF (relative fill) values being entered into the VE table, which in turn has the effect of making that cell leaner than it should be.
2: Disabling the MAP sensor is the second key to this process. The way the MAP sensor works is to compensate for the difference between the Alpha_N (VE) table calculated RF and the real-world RF calculated from the MAP sensor readings. This means that if the MAP Sensor is left enabled during this process it has the effect of covering up error in the Alpha_N (VE) table. With the MAP sensor enabled I had a pretty reasonable VE table, but with some areas that weren't quite right and seemed to keep moving around and couldn't quite be nailed down (the MAP sensor was masking inaccuracies). Disabling the MAP sensor takes that variable away and helps target a more accurate VE table more quickly.
I’m still not clear on why we need to do this correction. If we’re seeking a stoichiometric 1.0 number, then using only that multiplier to determine the cell in the fuel map, we should not be modifying the end result.
In the case that we do need to make this correction, that would mean that the DME is deliberately targeting a ‘lean’ mixture in throttle transients and using the O2 sensors to bring it back to stoich in steady state. Seems a little odd to me, logically.
edit: Nevermind, I see now! This is changing the actual throttle opening position, not the fueling amount. Makes sense. Leaving this here in case I was not the only one misinterpreting.
Okay cool, just making sure. Appreciate the references
Yeah absolutely - The more we constructively challenge each other's work the better - no one is immune to mistakes or misunderstandings, so we all benefit from robust discussion :-)
I did a test drive just now.
I took my most recent VE log (note this was first one with MAP sensor disabled which I think is why it shows slightly lean across the board - I think the MAP sensor was compensating for/hiding this) and ran it through the spreadsheet, then imported to MLV, then into your spreadsheet Heinz, to generate the new VE table. The result was as I was expecting, that the mismatched AQ_REL values were previously making low RPM appear richer than they actually were (e.g. more fuel was needed).
I then went for a (reasonably quick) run (about 6000 log lines) focusing on the low RPM and could tell the improvement pretty much immediately, no-throttle, low-rpm downshifts were particularly noticeable, rev matching was even better than previously, the car had even more pep than previously (remember I'm currently doing these runs with the MAP sensor turned off as well, so when I'm making these comparisons it's on pure AlphaN without the MAP sensor correcting anything).
And I think the MLV view speaks for itself - Lambda around the high change areas is significantly better, and a lot of values that were quite wrong are now spot on. There's those couple areas between 870 and 1100 RPM to clean up (that previously weren't clearly identifiable and kept moving around - which makes sense given AQ_REL was being misinterpreted) but all in all this is quite a lot of improvement for a single run, and it's very noticeable when driving.
I'll do another run tomorrow off the back of this to prove further that this converges on a neat end result, but I'm pretty confident from this first run that this is the missing trick to really nailing down the low RPM.
Important to note as well that I am running pure AlphaN with the MAP sensor disabled. I think this is really key when logging as well to not end up masking inaccuracies in the VE table.
Leave a comment: