RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

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

All times are UTC




Post new topic Reply to topic  [ 253 posts ]  Go to page 1, 2, 3, 4, 5 ... 17  Next
Author Message
 Post subject: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 7:09 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
Following from this discussion: viewtopic.php?f=15&t=8290&start=15 following Cobb's discovery of these, I've dug them out in a couple of roms.

This table and thresholds provide additional pulse width compensation at very low pulse width, where the flow characteristics no longer match the linear section of the curve, as described in this Injector Dynamics article: http://www.injectordynamics.com/LowPulseTech.html - the so-called 'knee'.

This will be a tremendous help in scaling very large injectors, where you may be dipping in and out of the non-linear area at idle constantly.

For AZ1G400W, here are the definitions:

Code:
   <table name="Low Pulse Width Fuel Injector Compensation" address="c886c" type="2D" level="1" scaling="InjectorPulseWidthCompensation">
      <table name="IPW compensation %" address="c884c" type="X Axis" elements="8" scaling="BasePulseWidth(ms)"/>
   </table>
   
      <table name="Low pulse width fuel injector compensation maximum RPM" address="c7c6c" type="1D" level="1" scaling="RPM"/>

   <table name="Low pulse width fuel injector compensation maximum IPW" address="c7c70" type="1D" level="1" scaling="BasePulseWidth(ms)"/>


To find them:

The easiest way is to go to the Table_Tipin_Enrichment_Compensation_RPM location. 1 to 4 Tables up, this is a table with 8 cells that looks like this:

Code:
ROM:000861EC Table_Fuel_Injector_Trim_Small_IPW:.data.w 8 ; DATA XREF: sub_33720+1Ao
ROM:000861EC                                         ; ROM:off_3377Co
ROM:000861EE                 .data.w h'400
ROM:000861F0                 .data.l flt_C884C
ROM:000861F4                 .data.l byte_C886C      ; = 1.266
ROM:000861F8                 .float 0.0078125
ROM:000861FC                 .float 0.0


That's the comp table. If you X-ref back to the data location, you will find the other 2 parameters. You can verify that you at at the right place with the 1.5 and 0.5 float values (which are the limits to the compensations):

Code:
ROM:0003376A                 .align 4
ROM:0003376C off_3376C:      .data.l Ram_Engine_Speed ; DATA XREF: sub_33720+2r
ROM:00033770 off_33770:      .data.l unk_FFFF6F5C    ; DATA XREF: sub_33720+6r
ROM:00033774 off_33774:      .data.l Fuel_Injector_Trim_Small_IPW_max_RPM
ROM:00033774                                         ; DATA XREF: sub_33720+Ar
ROM:00033778 off_33778:      .data.l Fuel_Injector_Trim_Small_IPW_max_IPW
ROM:00033778                                         ; DATA XREF: sub_33720+12r
ROM:0003377C off_3377C:      .data.l Table_Fuel_Injector_Trim_Small_IPW
ROM:0003377C                                         ; DATA XREF: sub_33720+1Ar
ROM:00033780 off_33780:      .data.l Fun_GetMapValue2D_8B_16B_Float
ROM:00033780                                         ; DATA XREF: sub_33720+1Cr
ROM:00033784 off_33784:      .data.l unk_FFFF76B4    ; DATA XREF: sub_33720+22r
ROM:00033784                                         ; sub_33720+34r ...
ROM:00033788 off_33788:      .data.l Fun_check_high_low_thresholds
ROM:00033788                                         ; DATA XREF: sub_33720+26r
ROM:0003378C                 .float 1.5
ROM:00033790                 .float 0.5


A short cut is to look for the 1.5 and 0.5 values - 3F C0 00 00 3F 00 00 00 - it's normally the second last one found.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Last edited by td-d on Thu Oct 11, 2012 7:32 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 7:10 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
Reserved for other ROM addresses

AZ1G101N
Code:
M:000C7AA8 Fuel_Injector_Trim_Small_IPW_max_RPM:.float 4000.0 ; DATA XREF: sub_33720+Ao
ROM:000C7AA8                                         ; ROM:off_33774o
ROM:000C7AAC Fuel_Injector_Trim_Small_IPW_max_IPW:.float 600.0 ; DATA

M:0008618C Table_Fuel_Injector_Trim_Small_IPW:.data.w 8 ; DATA XREF: sub_33720+1Ao
ROM:0008618C                                         ; ROM:off_3377Co
ROM:0008618E                 .data.w h'400
ROM:00086190                 .data.l flt_C8688
ROM:00086194                 .data.l byte_C86A8      ; = 1.266
ROM:00086198                 .float 0.0078125
ROM:0008619C                 .float 0.0

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Last edited by td-d on Sat Oct 27, 2012 3:40 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 8:55 am 
Offline
Moderator

Joined: Thu Nov 23, 2006 2:23 am
Posts: 2565
This just came up in a thread at NASIOC a few days ago, too. Dominic Acia (used to post here fairly often, years ago) said it might fix the low-RPM stumble that I've got.

I don't have a "tip-in enrichment compensation (RPM)" in my A2WC522N ROM though.

Are there any other tables that might show me the way?

_________________
2005 Legacy GT w/ ATP 3076, IWG, MBC, BCS, BC 272, LC, FFS, OMG
Please don't send questions via PM. Post a thread and send me a link to it instead. Thanks!


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 8:58 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
NSFW wrote:
This just came up in a thread at NASIOC a few days ago, too. Dominic Acia (used to post here fairly often, years ago) said it might fix the low-RPM stumble that I've got.

I don't have a "tip-in enrichment compensation (RPM)" in my A2WC522N ROM though.

Are there any other tables that might show me the way?


I'm sure I have your rom disassembled - let me have a peak.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 9:04 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
NSFW wrote:
This just came up in a thread at NASIOC a few days ago, too. Dominic Acia (used to post here fairly often, years ago) said it might fix the low-RPM stumble that I've got.

I don't have a "tip-in enrichment compensation (RPM)" in my A2WC522N ROM though.

Are there any other tables that might show me the way?


Right above your tip in compensation boost error table:

Code:
ROM:00083CBC Table_Fuel_Injector_Trim_Small_IPW:.data.w 8 ; DATA XREF: ROM:00030528o
ROM:00083CBC                                         ; ROM:off_30564o
ROM:00083CBE                 .data.w h'400
ROM:00083CC0                 .data.l flt_C7830
ROM:00083CC4                 .data.l byte_C7850      ; = 1.055
ROM:00083CC8                 .float 0.0078125
ROM:00083CCC                 .float 0.0

ROM:000C7228 Fuel_Injector_Trim_Small_IPW_max_RPM:.float 4000.0 ; DATA XREF: ROM:00030514o
ROM:000C7228                                         ; ROM:off_3055Co
ROM:000C722C Fuel_Injector_Trim_Small_IPW_max_IPW:.float 1250.0 ; DATA XREF: ROM:0003051Eo
ROM:000C722C                                         ; ROM:off_30560o
ROM:000C7230 Fuel_Overrun_RPM_Delta:.float -17.0     ; DATA XREF: sub_30A76+48o
ROM:000C7230                                         ; ROM:off_30C88o
ROM:000C7234 Fuel_Overrun_initial_enrichment:.float 0.0 ; DATA XREF: sub_30A76+68o
ROM:000C7234                                         ; ROM:off_30C94o



Figured I'd throw in the overrun parameters as well ;)

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 9:15 am 
Offline
Moderator

Joined: Thu Nov 23, 2006 2:23 am
Posts: 2565
Oooh, bonus! Thanks!

_________________
2005 Legacy GT w/ ATP 3076, IWG, MBC, BCS, BC 272, LC, FFS, OMG
Please don't send questions via PM. Post a thread and send me a link to it instead. Thanks!


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 10:34 am 
Offline
Experienced
User avatar

Joined: Thu Jul 22, 2010 10:22 am
Posts: 148
Location: Australia
Sweet you've obviously got my rom open at the moment!
If you don't mind i'm about to ask you a favour over at the tau thread!

_________________
09 ADM WRX/ 3" Exforce Turbo Back, Hyperflow TMIC, AEM CAI, Perrin Turbo Inlet, TGV Delete, Ported VF-52, Walbro Pump, Hybrid boost control (Grimmspeed EBCS/MBC), SI-Drive Mode Selector (3 pos Rocker Sw)/ Self tuned @ 17 Psi, Last dyno run 206Kw.


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 10:50 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
Easty wrote:
Sweet you've obviously got my rom open at the moment!
If you don't mind i'm about to ask you a favour over at the tau thread!


Yup - I was intrigued by your cruise control find!

Sure, I'll have a look for you.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Thu Oct 11, 2012 11:10 am 
Offline
Experienced
User avatar

Joined: Thu Jul 22, 2010 10:22 am
Posts: 148
Location: Australia
Thanks very much!

_________________
09 ADM WRX/ 3" Exforce Turbo Back, Hyperflow TMIC, AEM CAI, Perrin Turbo Inlet, TGV Delete, Ported VF-52, Walbro Pump, Hybrid boost control (Grimmspeed EBCS/MBC), SI-Drive Mode Selector (3 pos Rocker Sw)/ Self tuned @ 17 Psi, Last dyno run 206Kw.


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Fri Oct 12, 2012 2:15 am 
Offline
Experienced
User avatar

Joined: Thu Jul 23, 2009 5:46 pm
Posts: 863
Awesome stuff!!

Can't wait to try this out with some ID2000's :mrgreen:

Templates and posted roms pushed to git: https://github.com/RomRaider/SubaruDefs/tree/Alpha

_________________
Please do not send me support questions via PM, use the forum instead!


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Fri Oct 12, 2012 3:38 am 
Offline
RomRaider Developer

Joined: Thu May 21, 2009 1:49 am
Posts: 7323
Location: Canada eh!
I've been looking at this a bit further and I don't think your table scalings work for my ROM which is the same as NSFW's.
The table axis, I suspect is the current semi-compensated injector pulse width in microseconds and the data value is the compensation which will be a multiplier where 1 = 100%, 1.55 = 155% etc.

Here's what it looks like to me.
Attachment:
lowIPW.png

Code:
    <table type="2D" name="Low Pulse Width Fuel Injector Compensation" category="Fueling - Injectors" storagetype="uint8" endian="big" sizey="8" storageaddress="0xC7850">
      <scaling units="%" expression="x*0.78125" to_byte="x/0.78125" format="0.0" fineincrement="0.1" coarseincrement="1" />
      <table type="Y Axis" name="Injector Pulse Width" storagetype="float" storageaddress="0xC7830">
        <scaling units="msec" expression="x/1000" to_byte="x*1000" format="0.000" fineincrement="0.001" coarseincrement="0.05" />
      </table>
      <description>If the RPM and the current injector pulse width is below the thresholds then this compesation is applied, otherwies a compensation of 1 or 100% is used.</description>
    </table>
  <table type="2D" name="Low pulse width fuel injector compensation maximum RPM" category="Fueling - Injectors" storagetype="float" endian="big" sizey="1" storageaddress="0xC7228">
   <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="5" coarseincrement="100" />
   <table type="Static Y Axis" name="Enabled Below" sizey="1">
    <data>Maximum</data>
   </table>
   <description>This is the maximum limit to use the Low Pulse Width Fuel Injector Compensation value.</description>
  </table>
  <table type="2D" name="Low pulse width fuel injector compensation maximum IPW" category="Fueling - Injectors" storagetype="float" endian="big" sizey="1" storageaddress="0xC722C">
   <scaling units="msec" expression="x/1000" to_byte="x*1000" format="0.000" fineincrement="0.05" coarseincrement="0.1" />
   <table type="Static Y Axis" name="Enabled Below" sizey="1">
    <data>Maximum</data>
   </table>
   <description>This is the maximum limit to use the Low Pulse Width Fuel Injector Compensation value.</description>
  </table>


I'm going to scale down the IPW axis and the max threshold for my DW740. Otherwise this compensation gets applied when it shouldn't be with the larger injectors.


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


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Fri Oct 12, 2012 4:53 am 
Offline
Experienced
User avatar

Joined: Thu Jul 23, 2009 5:46 pm
Posts: 863
dschultz wrote:
I've been looking at this a bit further and I don't think your table scalings work for my ROM which is the same as NSFW's.
The table axis, I suspect is the current semi-compensated injector pulse width in microseconds and the data value is the compensation which will be a multiplier where 1 = 100%, 1.55 = 155% etc.


Those scalings are the same as td-d's and those in the repo, with the exception of the percentage offset in the compensation.

In all previous ECUFlash definitions, "compensation" has been treated as such:
display: 0% <=> multiplier: 1.0
display; 55% <=> multiplier of 1.55

_________________
Please do not send me support questions via PM, use the forum instead!


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Fri Oct 12, 2012 5:42 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
Merp wrote:
dschultz wrote:
I've been looking at this a bit further and I don't think your table scalings work for my ROM which is the same as NSFW's.
The table axis, I suspect is the current semi-compensated injector pulse width in microseconds and the data value is the compensation which will be a multiplier where 1 = 100%, 1.55 = 155% etc.


Those scalings are the same as td-d's and those in the repo, with the exception of the percentage offset in the compensation.

In all previous ECUFlash definitions, "compensation" has been treated as such:
display: 0% <=> multiplier: 1.0
display; 55% <=> multiplier of 1.55


Yup - that's exactly how I set it up - 26% in the table is effectively a 1.26 multiplier to the base pulsewidth.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Fri Oct 12, 2012 5:43 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
Merp wrote:
Awesome stuff!!

Can't wait to try this out with some ID2000's :mrgreen:

Templates and posted roms pushed to git: https://github.com/RomRaider/SubaruDefs/tree/Alpha


If I had my car :( I would too - had so many issues with my 1200's (granted, cr@ppy make...).

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
 Post subject: Re: Injector Scaling at low pulse width / non linear scale
PostPosted: Fri Oct 12, 2012 5:50 am 
Offline
Moderator

Joined: Thu May 20, 2010 8:01 am
Posts: 3117
Location: Johannesburg, South Africa
Looking at Dale and NSFW's rom - same scaling - the table scaling, as Merp said is just with an offset (i.e. 26% = 1.26X).

Interesting to see the difference between the two - much smaller pulse width on the WRX and much bigger compensation.

Might be worthwhile to chat to some of the injector manufacturers (like ID) that publish the low pulse width calibration how to incorporate their published rates into this table.

_________________
He who dies with the most gadgets wins.

Please do not PM me - use the email option.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 253 posts ]  Go to page 1, 2, 3, 4, 5 ... 17  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 67 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