Fueling & Injection Fuel Pumps | Injectors | Rails | Regulators | Tanks

Short pulse adder and Hard coded limits of the ECU

Thread Tools
 
Search this Thread
 
Old 06-15-2016, 12:33 PM
  #1  
10 Second Club
Thread Starter
iTrader: (19)
 
WS6HUMMER's Avatar
 
Join Date: Feb 2004
Location: Alexandria La.
Posts: 2,542
Likes: 0
Received 2 Likes on 2 Posts

Default Short pulse adder and Hard coded limits of the ECU

Tuning a car I swapped to FI114961 SD/continental 60# injectors to and ran into an issue trying to input the Banish data in the short pulse adder table, the problem is the values changing. So I asked HPT why this happens and the answer is what I got below. Now I know plenty of other people have ran these with no issues so I was just curious what everyone else did. I entered the correct values and let the program round to closest allowed value.

Many PCM's use what is generally called binary coded decimal (BCD) format for data storage. Basically this means that it stores a number as a binary (hex) number which is just a number say between 0 and 65535 (which is hex 0x0 to 0xFFFF, a typical 16bit number).

This is just fine if it wants to store whole numbers, but if it wants to store a number at a less than 1 resolution such as 3.5 it needs to apply a scaling factor to the number so it can work out that the raw number it is storing means something else. The scaling factor is typically (but not always) a factor of 2 - this is the scaling factor we enter into our definition files so that a stored hex number like 0x4C00 (19456) actually displays as 3800rpm for an LS1 as an example.

So you can see that the scaling factor determines the precision (minimum
resolution) of the numbers allowed to be stored.

Eg. Scaling factor = 2
Raw hex = raw decimal = scaled decimal
0x0 = 0 = 0
0x1 = 1 = 0.5
0x2 = 2 = 1.0
0x3 = 3 = 1.5 etc.

In this example you see the resolution here is 0.5. So if you enter in a number like 4.6877 into the editor it will be rounded to the nearest legal value. ie. 4.5

If the scaling factor is 1024, the resolution is 1/1024 = 0.0009765625 giving valid numbers like:
0x0 = 0 = 0
0x1 = 1 = 0.0009765625
0x2 = 2 = 0.001953125
0xFFFF = 65535 = 63.9990234375

Again, any number entered in between these numbers will be rounded to the nearest legal value the PCM can store.

The scaling factors are decided by the programmer who wrote the PCM code, they decide how much resolution they need and what the range of values is to work out if the stored value needs to be 8bit, 16bit 32bit or floating point. This is one of the key things we work out to provide real units on our editor instead of just raw hex values. It's the same deal with the scanner, a classic example is the SAE Vehicle Speed PID resolution of 1 kph, it's a BCD value with scaling factor 1. Same with the SAE MAP PID, you won't see anyvalues like 0.5 or 45.6, because the minimum resolution is also 1.

This is also the reason why on the E38 as an example you can't get higher than a vertain limit on say the IFR table. The scaling factor used means the maximum hex value 0xFFFF = 63.xx lb/hr. it's not easy to change the scaling factor once it has been coded, unless we go changing the code itself.

Now, if the PCM is newer say Power PC which supports native floating point values, generally the resolution issue doesn't exist (there is one but it is rarely noticable). However in GM's case they don't often use floating point but still use BCD for a lot of stuff this is more of a legacy code thing than any other good reason, although in some cases it saves a lot of cal space to use BCD because very fine resolution is not usually required (a 16bit number is 2 bytes, a floating point number is
4 bytes).
Old 06-17-2016, 02:08 PM
  #2  
7 Second Club
iTrader: (7)
 
NicD's Avatar
 
Join Date: Nov 2001
Location: Chandler, AZ
Posts: 2,722
Received 283 Likes on 187 Posts

Default

Originally Posted by WS6HUMMER
Tuning a car I swapped to FI114961 SD/continental 60# injectors to and ran into an issue trying to input the Banish data in the short pulse adder table, the problem is the values changing. So I asked HPT why this happens and the answer is what I got below. Now I know plenty of other people have ran these with no issues so I was just curious what everyone else did. I entered the correct values and let the program round to closest allowed value.
Umm that's how it works the difference is virtually nothing. His data isn't that accurate anyways so no need to split hairs.
Old 06-17-2016, 03:44 PM
  #3  
10 Second Club
Thread Starter
iTrader: (19)
 
WS6HUMMER's Avatar
 
Join Date: Feb 2004
Location: Alexandria La.
Posts: 2,542
Likes: 0
Received 2 Likes on 2 Posts

Default

Originally Posted by NicD
Umm that's how it works the difference is virtually nothing. His data isn't that accurate anyways so no need to split hairs.
It was zeroing values out and rounding up and down a decent bit. When you're trying to get a good size cam with a 111 LSA to idle good I would think it would matter.
Old 06-17-2016, 03:54 PM
  #4  
7 Second Club
iTrader: (7)
 
NicD's Avatar
 
Join Date: Nov 2001
Location: Chandler, AZ
Posts: 2,722
Received 283 Likes on 187 Posts

Default

Originally Posted by WS6HUMMER
It was zeroing values out and rounding up and down a decent bit. When you're trying to get a good size cam with a 111 LSA to idle good I would think it would matter.
It doesn't, it's such a minuscule amount that it changes by it's irrelevant.
Old 06-17-2016, 03:58 PM
  #5  
10 Second Club
Thread Starter
iTrader: (19)
 
WS6HUMMER's Avatar
 
Join Date: Feb 2004
Location: Alexandria La.
Posts: 2,542
Likes: 0
Received 2 Likes on 2 Posts

Default

Originally Posted by NicD
It doesn't, it's such a minuscule amount that it changes by it's irrelevant.
I hope your right lol.
Old 06-21-2016, 12:35 PM
  #6  
7 Second Club
iTrader: (7)
 
NicD's Avatar
 
Join Date: Nov 2001
Location: Chandler, AZ
Posts: 2,722
Received 283 Likes on 187 Posts

Default

Originally Posted by WS6HUMMER
I hope your right lol.
Don't believe me, do a simple test for yourself... scale up the injector offset data by 5% and see if you see even a 1% change in your fuel trims. That's double compared to how the PCM has to adjust the data to store and fit and I guarantee you won't see a difference.
Old 06-21-2016, 03:39 PM
  #7  
10 Second Club
Thread Starter
iTrader: (19)
 
WS6HUMMER's Avatar
 
Join Date: Feb 2004
Location: Alexandria La.
Posts: 2,542
Likes: 0
Received 2 Likes on 2 Posts

Default

Originally Posted by NicD
Don't believe me, do a simple test for yourself... scale up the injector offset data by 5% and see if you see even a 1% change in your fuel trims. That's double compared to how the PCM has to adjust the data to store and fit and I guarantee you won't see a difference.
Thanks for the input, I've already tuned the VE and it acted right for the most part, the only area's that seemed to not want to clean up were in the 30-35 KPA columns, which I'm sure you know are the area's you'd only hit right after letting off the throttle where DFCO would normally take care of the rich condition I saw.
Old 07-09-2016, 03:51 PM
  #8  
Launching!
 
turbolx's Avatar
 
Join Date: Jan 2002
Location: Detroit, Murder City
Posts: 294
Received 38 Likes on 21 Posts

Default

Originally Posted by WS6HUMMER
It was zeroing values out and rounding up and down a decent bit.
Yes, if you watch the actual DVD, you'll see where I explained this exact concept in it. As mentioned by others here, the numbers we are dealing with here are so small that any rounding error has no real effect on fuel delivery. Those 60's are so close to linear that the short pulse adjust doesn't need that much precision to get it right anyway.
Old 07-09-2016, 05:12 PM
  #9  
10 Second Club
Thread Starter
iTrader: (19)
 
WS6HUMMER's Avatar
 
Join Date: Feb 2004
Location: Alexandria La.
Posts: 2,542
Likes: 0
Received 2 Likes on 2 Posts

Default

Originally Posted by turbolx
Yes, if you watch the actual DVD, you'll see where I explained this exact concept in it. As mentioned by others here, the numbers we are dealing with here are so small that any rounding error has no real effect on fuel delivery. Those 60's are so close to linear that the short pulse adjust doesn't need that much precision to get it right anyway.
Ok, thanks very much for explaining Greg.



Quick Reply: Short pulse adder and Hard coded limits of the ECU



All times are GMT -5. The time now is 04:13 AM.