While scratching around in the ROM sorting out the RomRaider CAN bus logging update I came across the fuel efficiency calculation routine. This routine calculates a uint16 value which is then sent out on the CAN bus to the Combination Meter. The Combination Meter uses this info plus Vehicle Speed from the ABS/VDC and remaining fuel from the BIU to calculate Instant fuel efficiency, Average fuel efficiency and Remaining travel distance to be displayed in the Driver Information Panel.
This definition will be important to people who have changed their fuel injectors to a non-stock size as the injector pulse width is a key component in the fuel efficiency calculation.
When the injectors are changed out for large capacity injectors the pulse width shortens for the same fuel quantity delivered. The shorter pulse width is erroneously translated into better fuel efficiency by the ECU. To use this correction definition you will most likely be increasing the value from stock. There's two approaches which can be used to determine a starting correction, which can be fine tuned later.
- You can use the change in injector size to determine a correction to apply.
First, obtain the Injector Flow Scaling for your stock ROM as displayed by RomRaider. Then obtain the Injector Flow Scaling for your modified ROM as displayed by RomRaider. Calculate the correction as follows:
Injector Flow Scaling Modified / Injector Flow Scaling Stock = correction
- An alternate method to determine the correction which may work better for people using high Ethanol fuel blends is to calculate your fuel consumption in the traditional manner. Which is to reset the trip meter, fill the tank and drive until at least half a tank of fuel is consumed, refill the tank and calculate your consumption over that distance. Then compare this to the Driver Information Panel Average Fuel Efficiency value. Calculate the correction as follows:
Fuel Efficiency Calculated / Info Panel Average Fuel Efficiency = correction
With this correction value in hand you can apply it to the 'EXPERIMENTAL Info Panel Fuel Efficiency Correction' in the 'Fueling - Injectors' category as defined by the following definition update.
To apply this update to your ROM, search for your CAL ID in the RomRaider ECU definition XML file using a text editor. If you find your CAL ID inherits from a previous CAL ID then apply this update to the inherited CAL ID. Once you locate the CAL ID, scan down the definition until you locate the table entry for name="Injector Flow Scaling". After this line insert the following code:
Code:
<table type="2D" name="EXPERIMENTAL Info Panel Fuel Consumption Correction" category="Fueling - Injectors" storagetype="float" endian="big" sizey="1" userlevel="2" storageaddress="0x#####">
<scaling units="ESTIMATED Fuel Efficiency Correction" expression="x" to_byte="x" format="0.000" fineincrement=".1" coarseincrement="1" />
<table type="Static Y Axis" name="" sizey="1">
<data>Fuel Efficiency Correction</data>
</table>
<description>This is the correction applied to the fuel efficiency calculation to account for injector size change. Adjust this value by the same percentage as used for injector scaling. NewCorrection = CurrentCorrection * (NewInjectorScale / OldInjectorScale)</description>
</table>
Once you have inserted the code change the value of the parameter storageaddress="0x#####" and replace the ##### with the address value defined for your CAL ID. Save the XML file.
Open your modified ROM and open the table 'EXPERIMENTAL Info Panel Fuel Efficiency Correction' in the 'Fueling - Injectors' category. Select the current value and enter the correction you calculated in the table modify field. Click the 'Mul' button.
Attachment:
correction_applied.png [ 7.71 KiB | Viewed 27846 times ]
Save the ROM and flash the update to the ECU.
This initial correction should get the readings closer to reality. Adjust the 'EXPERIMENTAL Info Panel Fuel Efficiency Correction' as required to obtain the best realistic result after a few tanks of fuel.
storageaddress="0x#####" by CAL ID:
A2TB001L: C17AC
A2UG000L: C17AC
A2UG001G: C1850
A2UG002T: C1850
A2UI000Y: C1854
A2UI000Z: C1854
A2WC510N: C141C
A2WC521N: C1428
A2WC521S: C1428
A2WC522N: C1428
A2WC522S: C1428
A2WD002T: 62838
A2WF200C: C1428
A2ZJD02G: 5EF84
AE5I910L: C14BC
AE5I910V: C1200
AE5IB00L: C14BC
AE5IB00V: C1200
AE5K500V: C1214
AE5K611L: C14D0
AE5K611V: C1214
AZ1E400C: C10C8
AZ1G101M: C10CC
AZ1G101N: C10CC
AZ1G201G: C0E14
AZ1G202G: C0E14
AZ1G202I: C0C54
AZ1G300F: C10EC
AZ1G400W: C10CC
AZ1G700J: C0E18
AZ1G800D: C10D0
AZ1G800F: C0ED8
AZ1G800S: C10F0
AZ1G800T: C1188
AZ1G800V: C1170
AZ1G900C: C10D0
AZ1G900O: C10D0
AZ1G900P: C10D0
AZ1J500G: C0E1C
AZ1J500J: C0EE0
AZ1J500V: C10D8
D0XJ001M: C07F8
D0XJ001T: C07F8
D2UH001M: C0808
D2UH001T: C0808
D2UJ001M: C0808
D2UJ001T: C0808
D2WD603H: 72D48