RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Sat Feb 21, 2026 10:39 pm

All times are UTC





Post new topic Reply to topic  [ 93 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7  Next
Author Message
 Post subject: Re: Fuel map tuning methods
PostPosted: Tue Jan 12, 2021 12:17 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 11:04 pm
Posts: 2661
Location: RIP
No, it's only difficult for you. Plenty of engines running on different injectors, MAF, etc. tuned without issue. Get a wideband O2 if you want to properly tune fuel. Relevant tables are defined to do so.

This is my last post to you about this.

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Tue Jan 12, 2021 3:52 pm 
Offline
Experienced

Joined: Tue Nov 07, 2017 1:46 am
Posts: 153
Location: Warsaw, Poland, (Polish, English)
Sorry but you made too many assumptions about me and tools I have...

It seems there are some serious secrets regarding old and not profitable ECUs (MS4x family).
If you are sure everything what is really needed is already provided why not provide commented disassembly? I am not going to replicate something which was already done (was it???) as for me it is much more cost effective to use standalone ECUs... It is faster (and safer) to tune from square 1 than to fight with some hidden correction factors and most of them have all functionality you will ever want (wideband oxygen sensor support, ignition and/or fuel cut, NLS, LC, boost control...).

Unfortunately we should not tell the people we are open (as in open source) community having such attitude.
I do not own any car equipped (or capable of running) with any MS4x ECU so it should be out of my business but there are so many questions from people having many issues with their cars/tunes...


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Thu Sep 09, 2021 5:08 pm 
Offline
Newbie

Joined: Wed Jul 17, 2019 4:05 pm
Posts: 17
I hope this is in the right section. I want to set a correct fuel table for WOT and made a pull from 1 to 3 gear. As you can see in green, lambda goes from ~1 at first gear to 0.9 to 1 in second gear and sits perfect stable at 0.9 in thrid gear. Can i leave it like this? how to adapt for different gears? (see screenshot in attachmet) I also added the logfile


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Fri Sep 10, 2021 5:19 am 
Offline
Experienced

Joined: Thu Nov 15, 2018 3:00 pm
Posts: 718
Location: Europe, France (French/English)
What was you stft in first gear when you got 1 lambda? Was stft when it was 0.9?

Sometime even at WOT stft is not 0 and messes up the afrs


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Sat Sep 11, 2021 5:49 pm 
Offline
Newbie

Joined: Wed Jul 17, 2019 4:05 pm
Posts: 17
I have not found STFT as a variable, i think there are only Bank1 and Bank2 Lambda Intergrators. And as you can see in my screenshot they were not 0 unfortunately.


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Sat Sep 25, 2021 5:49 pm 
Offline
Newbie

Joined: Tue Nov 10, 2020 5:52 am
Posts: 11
Hello,

I have little issue with RE85 when running cold engine, crancking is fine and engine starts like a stock car at cold morning but if I press gas pedal to accelerate in very low rpm the engine want to stall but when slowly raising rpm to ~2k then throttle response is normal, when reaching ect 60 no more issues

For running with e85 fuel I have just raised adaptation limit, multiply all fuel tables that stands for injector pulsewidht by 1.3 and crancking table needed still a very little adjust to get the engine running without long starting.

Any doubts what adjustments I need to do to get my car work good when driving cold engine? For now I have just tried to play with warmup table.


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Sat Sep 25, 2021 6:17 pm 
Offline
Experienced

Joined: Thu Nov 15, 2018 3:00 pm
Posts: 718
Location: Europe, France (French/English)
First really tune your fuel map, and not only multiply your fuel map. its going to need more than 40% increase of the fuel table.

Then your issue is probably a bad warmup enrichment


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Sun Oct 24, 2021 10:03 pm 
Offline
Newbie

Joined: Tue Jun 15, 2021 10:52 pm
Posts: 1
pazi88 wrote:

7. Copy the previous base fuel map to the excel and now use the equation you got to calculate every column using the corresponding load as the X in the equation. Like this:
Image
Don't worry about the RPM. And if you are working with turbo car, now it's good time to rescale the load axis so that the highest load on the map is 1024 mg/st. Currently the higher loads won't work.



I would greatly appreciate some help! I know this thread is super old but its a goldmine so far. I have followed and understood the steps in pazi88's original post up until step 7. Step seven is where I am a bit confused. I have my equation from the scatter plot in excel, unfortunately I do not understand how to apply the equation to my fuel table. Is there anyone that can help me understand this? Thank you!


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Mon Oct 25, 2021 12:02 pm 
Offline
Experienced

Joined: Thu Nov 15, 2018 3:00 pm
Posts: 718
Location: Europe, France (French/English)
Use the quick scalar old flow/new flow to make a base table
Then use the integrators to fine tune. No need to make it complicated if you do not understand the excel thing


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Sat Mar 26, 2022 6:11 pm 
Offline
Experienced
User avatar

Joined: Mon Jul 19, 2021 6:41 pm
Posts: 101
pazi88 wrote:
Maybe people could post their fuel map tuning methods to help out others. Especially some beginners who have just got into this.

With stock injectors I normally leave the base fuel tables untouched. They work really well with stock injectors and close to stock engine. I only play around with the WOT enrichment table to optimize the engine.

But then with bigger injectors in turbo engine for example or in e85 conversion I have figured out this process for tuning the fuel map:

1. Calculate preliminary fuel map just by multiplying the base fuel map by the flow ratio of the new and stock injectors. For example the stock b28 flow about 220cc and you have 440cc new injectors: 220/440 = 0.5. So you need to multiply the base fuel map by that 0.5. If you want to run e85 multiply the fuel map by 1.4 after that. Remember also to multiply the cranking maps. If you are unsure about your fuel injector flow rates, you can change the lambda integrator limits to +/- 50% to make the step 4 to work.

2. Zero out the "Fuel Injection - Base - Vanos Correction" and "COP - Fuel Enrichment - Nominal" maps. This disables these features from distracting the fuel map tuning. You could also disable the cat heating tables but those have no effect on the this.

3. Disable the WOT enrichment feature by putting 120% to whole "Detection - WOT" -map. This will make the engine run in closed loop for 90% of the time. If you run regular pump gas, you could drop the ignition advance from higher loads to prevent knock. After first log you can restore the previous map.

4. Go make a long logging route with various loads. More you can get different loads on the log the better. No fast throttle movements to prevent acceleration and deceleration maps to interfere the injector PW. You could even drive against brake to get high loads for longer time than in regular acceleration.

5. Open the log you made in megalogviewer and do "Scatter Plot" so that the X-axle has engine load and Y-axle has injector PW. And then "hits" as Z-axle. The result should look like straight line as you can see here:
Image
But if you MAF scaling is off the result will not be straight line. It will be more like curve. In that case you could look you MAF scaling but it's not necessary. The next step will be just more complicated if the result is not straight line.

6. From the low end of the line take one point from the middle of some cluster of points. For example load 85 and IPW 1.30 in this case. Then second point from higher loads (525/7.7) This also needs to be from the middle of one cluster of points. Put the numbers you got to excel sheet, do X-Y scatter and add linear trendline with equation. The trendline represents the line you could see in the megalogviewer also. Result should look like this:
Image
If the line wasn't straight in megalogviewer then you need to take several points from the X-Y scatter to excel. More point is better. And then choose Logarithmic trendline in excel.

7. Copy the previous base fuel map to the excel and now use the equation you got to calculate every column using the corresponding load as the X in the equation. Like this:
Image
Don't worry about the RPM. And if you are working with turbo car, now it's good time to rescale the load axis so that the highest load on the map is 1024 mg/st. Currently the higher loads won't work.

8. Once you have applied the equation to every cell, copy the map back to RomRaider and add little bit of PW to the sub-idle RPM row to make that richer. This will help if the RPMs will drop below idle for some reason. And the result should look like this.
Image

And congratulations. Now you have tuned your fuel map to work on your setup. Without spending lots of time and even without wideband lambdasensor. You could test your map doing the same logging route again and see how the lambda integrator works. Remember to clear adaptations before doing that. The integrator should now stay within +/- 5% in steady loads. You can do some fine tuning if it doesn't but the fuel map should be close enough to use even without fine tuning.

9. After fine tuning you can now enable the WOT enrichment by editing the "Detection WOT" map. Something like 50% tps thresold is ok for N/A but for turbo you may need to go low as 30% threshold to make the enrichment work all the time when on boost.

10. Last step is to adjust the the WOT enrichment to the AFR you want to run on high loads by adjusting the "Fuel injection - WOT enrichment". Here i have graph that shows what enrichment % represents which AFR:
Image

And instead of steps 9 and 10 you could leave the WOT enrichment disabled and add the enrichment to the main fuel table also. For example just by multiplying higher load values by 1.1 for 10% enrichment etc. But I haven't found clear way to control if the engine is at closed or open loop. So if the engine is still at closed loop when entering the richer area of the map, it will make the short term fuel trims go wrong. If there would be load limit for closed loop this would work much better. But If you plan running the engine entirely on open loop, then it's not a problem.
For step number 2. Do we 0 out just the cop nominal map or all the maps that pertain to it?

Also for step number 3. My ms41.2 doesnt say WOT so im guess they are the open loop detection maps?


Sent from my iPhone using Tapatalk


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Sat Mar 26, 2022 8:07 pm 
Offline
Experienced
User avatar

Joined: Mon Jul 19, 2021 6:41 pm
Posts: 101
Also what does 00h mean and how do i 00h a table? I see this and also making 120 to zero but idk if im doing it right for open loop tables


Sent from my iPhone using Tapatalk


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Fri Jun 10, 2022 10:19 pm 
Offline
Experienced
User avatar

Joined: Mon Jul 19, 2021 6:41 pm
Posts: 101
busterhax wrote:
Nice. I've always wanted to do this. It'll be interesting to compare methods and perhaps we can start a ignition timing thread too.

Here's a rough step-by-step of what I do.

Disclaimer: adjust fuel at your own risk. This method worked for me but may not work for others. You can cause catastrophic damage if adjusting improperly.

I've found MLV to be essential in this process.

I start with the stock fuel table and set my axis. I interpolate the stock values for my new axis.
If you run stock injectors, you can skip the dead time and scaling steps.
I also 00 out the WOT enrichment and vanos correction tables as I run fuel table only. This is a personal preference.

I find the dead time on the Internet for the appropriate fuel pressure and set that. I do the scaling method shown by pazi = stock ipw(old flow rate/new flow rate). This helps sort of get close but is no where near perfect as latency is different between injectors. I do this for the cranking fuel maps as well.
If I experience weird dips and surging immediately after start, I manually adjust with the cranking fuel tables to get a solid start. I find the above method usually makes things a bit too rich.

I then 00h out the maximum temperature for lambda adaptations so that there will only be STFT and LTFT will be disabled.
Log idle for several minutes (gauge this based on how well it is idling)

I then load my log into MLV and go to the histogram/table viewer. You will need to manually set your axis points. I always set a filter to filter out transient conditions. I use the following but there might be a more ideal method:
Code:
(abs([* Engine Speed] - [* Engine Speed-4]) > ([* Engine Speed] * 0.10) ) || (abs([* Throttle Position] - [* Throttle Position-4]) > 5 )  || (abs([* Engine Load] - [* Engine Load-4]) > ([* Engine Load] * 0.15) ) 


Then I set lambda integrator as the Z axis and I get the following:
Attachment:
mlv_idle.png

Sorry for people using 2 banks. You will need to average your two fuel trim banks in your log before loading it into MLV.

Now I can see my fuel trims for each cell on my fuel table.
I don't worry about the lowest RPM row. I manually fill that in with the same value as 850.

I have a spreadsheet set up that allows me to paste in my current fuel table and then I paste in this table next to it, and it pumps out a new fuel table for me.
Attachment:
fuel_spreadsheet1.png


The formula I use for the multiplier table is x/100+1. This will give the value that the current ipw setting must be multiplied by to get it to what the DME is requesting and if the DME is requesting 0% change or it is a cell that you haven't hit, it will pump out the value of 1 thus not changing the value for that cell.
I then multiply the values in the table on the right with my current fuel table and it will pump out a new fuel table for me.

I repeat this step until I end up at +/- 2% in my logs. It can get tedious.

Once start and idle are all good to go, I use the same method for dialing in idle as i do for part throttle.
Personally I do not use the WOT multiplier map or vanos fuel correction. I do everything in the main fuel table with the other two 00'd out. This is a personal preference.
So I start logging and drive around PT as I usually would. Get lots of data here. The longer the log, the better. Start easy, then get more aggressive as your logs smooth out.

Here's a random log of me part throttling around town
Attachment:
mlv_pt.png


Apologies, I have no idea what I was doing in this log or when it was from so the values may look a bit off. But anyway..I follow the same method as I do with dialing idle in. Drive around, log, apply to spreadsheet, generate new table, rinse, repeat with 1 exception. I set a filter so that it will only display values where lambda integrator is turned on.
Code:
[* Lambda Integrator  Bank 1] = 0.00


Once I'm happy with the part throttle fuel trims being +/- 3ish, I do a compare to my original file and manually fill in the areas that were unachievable. I use best judgement here. I'm sure there's a proper way to go about doing this.

Next comes WOT. And since I don't use the WOT table multiplier..you guessed it- It's similar to my above method with a few changes.

You will obviously need to have a wideband integrated into RR logger.

I leave LTFT disabled because it doesn't really matter for WOT. I disable the primary o2 sensor so that the engine is running off of pure tables and lambda integrator will always be 0. Before this, I made sure all of my values were safe. Use best judgement here.
I go out and log pulls from various TPS >= WOT mode TPS setting all the way to redline. So here we will assume I have WOT enrichment set to 50% tps. This will be when the o2 sensor are turned off in the real world.

Load that log into MLVand I apply the following filter:
Code:
([* Throttle Position] < 50.00) || ([* Lambda Integrator  Bank 1] != 0.00)


Attachment:
mlv_wot.png


I have another spreadsheet set up similar to my part throttle spreadsheet but with some changes.
I paste my current fuel table. Paste my MLV WOT table output. I create a table with my desired AFR. It then calculates a parts fuel table and a multiplier table based on reported parts fuel and my desired AFR. It then multiplies my current fuel table by the multiplier table which gives me my new fuel table. I repeat this method until I am comfortable with the wideband reported readings.
Attachment:
fuel_wot1.png

Attachment:
fuel_wot2.png


Then multiple fuel table by the above table on the right.

I then re-enable LTFT and primary o2 sensors and the car is good to go fuel-wise.

As far as the values go in my screen shots, both the fuel table and logs are all random from who knows when. I just picked archived files that showed decent data. They are displayed only to show the method I used.


I also want to add that since I'm boosted, I maxed out the final load value and I scale it to dump fuel in the event of over boosting.


hey buster do you leave the COP TABLES untouched aswell?


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Fri Jun 10, 2022 10:23 pm 
Offline
Senior Member

Joined: Wed Jan 22, 2014 10:54 pm
Posts: 1774
BlastinBlanks wrote:
busterhax wrote:
Nice. I've always wanted to do this. It'll be interesting to compare methods and perhaps we can start a ignition timing thread too.

Here's a rough step-by-step of what I do.

Disclaimer: adjust fuel at your own risk. This method worked for me but may not work for others. You can cause catastrophic damage if adjusting improperly.

I've found MLV to be essential in this process.

I start with the stock fuel table and set my axis. I interpolate the stock values for my new axis.
If you run stock injectors, you can skip the dead time and scaling steps.
I also 00 out the WOT enrichment and vanos correction tables as I run fuel table only. This is a personal preference.

I find the dead time on the Internet for the appropriate fuel pressure and set that. I do the scaling method shown by pazi = stock ipw(old flow rate/new flow rate). This helps sort of get close but is no where near perfect as latency is different between injectors. I do this for the cranking fuel maps as well.
If I experience weird dips and surging immediately after start, I manually adjust with the cranking fuel tables to get a solid start. I find the above method usually makes things a bit too rich.

I then 00h out the maximum temperature for lambda adaptations so that there will only be STFT and LTFT will be disabled.
Log idle for several minutes (gauge this based on how well it is idling)

I then load my log into MLV and go to the histogram/table viewer. You will need to manually set your axis points. I always set a filter to filter out transient conditions. I use the following but there might be a more ideal method:
Code:
(abs([* Engine Speed] - [* Engine Speed-4]) > ([* Engine Speed] * 0.10) ) || (abs([* Throttle Position] - [* Throttle Position-4]) > 5 )  || (abs([* Engine Load] - [* Engine Load-4]) > ([* Engine Load] * 0.15) ) 


Then I set lambda integrator as the Z axis and I get the following:
Attachment:
mlv_idle.png

Sorry for people using 2 banks. You will need to average your two fuel trim banks in your log before loading it into MLV.

Now I can see my fuel trims for each cell on my fuel table.
I don't worry about the lowest RPM row. I manually fill that in with the same value as 850.

I have a spreadsheet set up that allows me to paste in my current fuel table and then I paste in this table next to it, and it pumps out a new fuel table for me.
Attachment:
fuel_spreadsheet1.png


The formula I use for the multiplier table is x/100+1. This will give the value that the current ipw setting must be multiplied by to get it to what the DME is requesting and if the DME is requesting 0% change or it is a cell that you haven't hit, it will pump out the value of 1 thus not changing the value for that cell.
I then multiply the values in the table on the right with my current fuel table and it will pump out a new fuel table for me.

I repeat this step until I end up at +/- 2% in my logs. It can get tedious.

Once start and idle are all good to go, I use the same method for dialing in idle as i do for part throttle.
Personally I do not use the WOT multiplier map or vanos fuel correction. I do everything in the main fuel table with the other two 00'd out. This is a personal preference.
So I start logging and drive around PT as I usually would. Get lots of data here. The longer the log, the better. Start easy, then get more aggressive as your logs smooth out.

Here's a random log of me part throttling around town
Attachment:
mlv_pt.png


Apologies, I have no idea what I was doing in this log or when it was from so the values may look a bit off. But anyway..I follow the same method as I do with dialing idle in. Drive around, log, apply to spreadsheet, generate new table, rinse, repeat with 1 exception. I set a filter so that it will only display values where lambda integrator is turned on.
Code:
[* Lambda Integrator  Bank 1] = 0.00


Once I'm happy with the part throttle fuel trims being +/- 3ish, I do a compare to my original file and manually fill in the areas that were unachievable. I use best judgement here. I'm sure there's a proper way to go about doing this.

Next comes WOT. And since I don't use the WOT table multiplier..you guessed it- It's similar to my above method with a few changes.

You will obviously need to have a wideband integrated into RR logger.

I leave LTFT disabled because it doesn't really matter for WOT. I disable the primary o2 sensor so that the engine is running off of pure tables and lambda integrator will always be 0. Before this, I made sure all of my values were safe. Use best judgement here.
I go out and log pulls from various TPS >= WOT mode TPS setting all the way to redline. So here we will assume I have WOT enrichment set to 50% tps. This will be when the o2 sensor are turned off in the real world.

Load that log into MLVand I apply the following filter:
Code:
([* Throttle Position] < 50.00) || ([* Lambda Integrator  Bank 1] != 0.00)


Attachment:
mlv_wot.png


I have another spreadsheet set up similar to my part throttle spreadsheet but with some changes.
I paste my current fuel table. Paste my MLV WOT table output. I create a table with my desired AFR. It then calculates a parts fuel table and a multiplier table based on reported parts fuel and my desired AFR. It then multiplies my current fuel table by the multiplier table which gives me my new fuel table. I repeat this method until I am comfortable with the wideband reported readings.
Attachment:
fuel_wot1.png

Attachment:
fuel_wot2.png


Then multiple fuel table by the above table on the right.

I then re-enable LTFT and primary o2 sensors and the car is good to go fuel-wise.

As far as the values go in my screen shots, both the fuel table and logs are all random from who knows when. I just picked archived files that showed decent data. They are displayed only to show the method I used.


I also want to add that since I'm boosted, I maxed out the final load value and I scale it to dump fuel in the event of over boosting.


hey buster do you leave the COP TABLES untouched aswell?
No I always zero them out.


Sent from my iPhone using Tapatalk


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Sat Jun 11, 2022 12:21 am 
Offline
Experienced
User avatar

Joined: Mon Jul 19, 2021 6:41 pm
Posts: 101
thanks buster i finally was able to have everything setup and logs are coming out on point. cheers to you my friend.


Top
 Profile  
 
 Post subject: Re: Fuel map tuning methods
PostPosted: Wed Mar 01, 2023 9:48 am 
Offline
RomRaider Donator

Joined: Wed Sep 14, 2022 9:06 am
Posts: 1
Can somebody post some datalogs from the process of tuning
I would like to practice the process but for the time being don't have access to my car to do datalog
anything helps


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 93 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 95 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl