Bringing TBI and Multi Port Fuel Injection to a New Level.     EFI Conversions and Tuning! Seattle to Portland! E-mail Tuning Consultant!
Page 3 of 4 FirstFirst 1234 LastLast
Results 31 to 45 of 53

Thread: $EE / LT1 Injector Swap Running Rich

  1. #31
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    I'm not sure I've gotten the start tables perfect but I did at least determine without a doubt what had me chasing my tail on this one.

    The "Prime Pulse Width vs. Coolant Temp" table, along with most of the others in this category are stored as 8 bit cells which are then scaled by the mask by multiplying with a floating point constant to come up with pulsewidth. For this particular table that value is 1.5625. This leaves a fairly limited range of low pulwidth values for tuning to large injectors (minimum of 1.56, and multiples thereof - 3.13, 4.69, etc). What I was doing wrong was blindly scaling the table in TunerPro, saving the table and then saving the bin and flashing. My dumb *$$ finally caught on when I was working on hot starts last night and had added 10% to the rows between 68 and 128 ect, and eehack couldn't find any differences to write. The changed cells were getting pumped back through the conversion formula and resolution was being lost. <planting forehead firmly in palm> I suppose this begs the question - is there a way to view / edit the raw hex data in TunerPro?

    So assuming I won't be able to get warm starts (around 60c) perfect, I'm weeding through the disassembly to see if I can change the floating point scalar constant used in the conversion formula. Cutting it in half should give me ample resolution to fine-tune this one table.

  2. #32
    Fuel Injected!
    Join Date
    Jan 2012
    Location
    Poland
    Posts
    118
    You can view raw data in TunerPro, just right click on the table and select "Show raw hex".

  3. #33
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    Duh, can't believe I missed that. Need a bigger screen or bifocals.

    I'm trying to find where the lookup value from this table is scaled by 1.5625, but don't speak much motorola. I think this is the call loading the table but it looks like it's multiplying (something) by 018f, which unless I'm using the wrong endianness doesn't equate to 1.5625. Edit: or is L018F identifying a memory location?

    Code:
    3758    B6 01 93            ldaA    l_0193_CoolTmp_fltrd_$f0_max_$e0
    375B    CE 26 82            ldX    #$2682
    375E    BD 78 12            call    l_7812_lkup2d_nooff_16spc
    3761    F6 01 8F            ldaB    L018F
    3764    3D                  mul    
    3765    05                  lslD    
    3766    24 02               bcc    @32
    3768    86 FF               ldaA    #$FF
    376A    CE 26 80        @32    ldX    #$2680
    376D    BD 77 81            call    l_7781_A*X->D_8x16_Mult_sub
    3770    1A 83 7D F0         cmpD    #$7DF0
    3774    23 03               bls    @33
    3776    CC 7D F0            ldD    #$7DF0
    3779    FD 01 A1        @33    stD    L01A1
    377C    B6 01 90            ldaA    l_0190_NTPSLDT_a
    377F    B1 26 D9            cmpA    L26D9
    3782    23 05               bls    @34
    3784    CC 00 00            ldD    #$0000
    3787    20 18               jr    @36

  4. #34
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    456
    That is barometric correction.

    18f is result from baro table lookup correction.

  5. #35
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    Any chance you could steer a machine code impaired hot rodder in the right direction? It's been around 10 years since I last changed a jmp to a nop, and a lot of brain cells have died since then.

    I'm afraid "perfection" may require adjusting the scalar on this one unless there's something else I'm missing because I've tried all three possibilities in the 56c row.

    0x02 (3.13ms) too lean
    0x03 (4.69ms) starts with a bit of a stumble, think slightly lean
    0x04 (6.25ms) floods when the valves have cooled
    0x05 (factory calibration for 24lb injectors) floods always

    Edit: After scaling the "Crank AFR vs Low Res Pulse vs Coolant Temp" table properly to the nearest hex value, it may be close enough to pass as "perfect". Will report back in the next day or so.

  6. #36
    Fuel Injected!
    Join Date
    Jan 2012
    Location
    Poland
    Posts
    118
    I think the parameter you are looking for is "12680 BASE BPW FOR STARTUP ,used to calc prime pulse width used with 2682" available in EEXtra.xdf

    The looked up values from prime pulse tables are mutiplied first by BARO multiplier, then by this base PW to get final priming PW. I think the XDF definition for prime pulse tables should be modified to take that base pw into calculations. I'll try to update the EEX.xdf and get back to you.

  7. #37
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    Thanks! I spotted that in the disassembly and thought it might be what I was looking for, then had to get started grilling dinner so tuning went out the window.

    Don't go out of your way unless you really want to - I can probably figure this one out from here. I've been working on this table raw so I can calc the pulsewidth by hand when I change it initially. I'm pretty sure the only row I'll need to tweak will be 58c and I'll do that in hex.

  8. #38
    Fuel Injected!
    Join Date
    Jan 2012
    Location
    Poland
    Posts
    118
    Actually, there is a mistake in the EEXtra.xdf. The 0x2680 is used as an immediate value, not an address. So there are actually 4 places that have this value hardcoded ( E side lines: 0x376A, 0x379B, 0x4E18, 0x54F7). In order to change the base PW you need to adjust all of those constants. I'll send you the updated xdf when I get back to my PC at home.
    Last edited by dzidaV8; 08-07-2017 at 07:37 AM.

  9. #39
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    I think it's a pointer - look at the multiplier function at 7781. The disassembly calls this l_7781_A*X->D_8x16_Mult_sub

    Code:
    ;;* CALL WITH:
    ;;* A Reg = 8 BIT Multiplier
    ;;* X Reg = Address og(f) 16 bit Muliplicand
    All those calls appear to be referencing the 1st, 2nd or adder prime pulse width tables, so my intention is to scale the BPW multiplier at 2680 by 60% and restore the factory calibration data to the prime pulse width table(s). If I don't have enough resolution to fine-tune with that I can always scale it further and then increase the tables accordingly. The largest values there are 0x56.

    What I'm still trying to wrap my head around is how 1.5625 factors in - is it based on cpu clock frequency maybe?

  10. #40
    Fuel Injected!
    Join Date
    Jan 2012
    Location
    Poland
    Posts
    118
    OK, you're right, it's a pointer.

    So the program goes like this:
    Code:
    3789    B6 01 93        @34 ldaA    l_0193_CoolTmp_fltrd_$f0_max_$e0   ; Load Coolant Temp to A
    378C    CE 26 91            ldX    #$2691                              ; Load pointer to 1st prime pulse table to X
    378F    BD 78 12            call   l_7812_lkup2d_nooff_16spc           ; Look up 1st prime pulse value from the table
    3792    F6 01 8F            ldaB   L018F                               ; Load calculated Baro correction (128 - no correction)
    3795    3D                  mul                                        ; multiply
    3796    05                  lslD                                       ; shift D left and use A (divide by 128) 
    3797    24 02               bcc    @35                                 ; branch if no overflow
    3799    86 FF               ldaA   #$FF                                ; if overflowed, load max prime pulse value (256)
    379B    CE 26 80        @35 ldX    #$2680                              ; load pointer to Base Prime PW
    379E    BD 77 81            call   l_7781_A*X->D_8x16_Mult_sub         ; Multiply 1st prime pulse and Base Prime PW
    37A1    1A 83 7D F0     @36 cmpD   #$7DF0                              ; compare to 0x7DF0 (32240)
    37A5    23 03               bls    @37                                 ; branch if lower
    37A7    CC 7D F0            ldD    #$7DF0                              ; if higher, limit the calculated 1st prime pulse to 0x7DF0 (32240)
    37AA    FD 01 A5        @37 stD    L01A5                               ; store the calculated 1st Prime Pulse
    The same routine is used for 2nd and additional pulses.

    The thing is that the Base Prime PW from 0x2680 is 0x6666 in most bins, and is limited in code to 0x7DF0. So when pulse multiplier from the table is >1, it will be already limited?? Something is off here.
    I haven't been able to find how to convert the raw values to milliseconds yet.

    It's also strange that the Baro correction is applied BEFORE multiplying the base PW, it makes little sense to scale as small values as those ( 2, 3, 4 etc...).
    Last edited by dzidaV8; 08-07-2017 at 11:54 AM.

  11. #41
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    Search me...

    I generally don't like putzing around with things I don't (believe) I fully EDIT: (change fully to vaguely) understand but I'm going to make an exception here as I can't imagine it can hurt anything. Notice the qualifier "believe"? If it would have been left up to me to conquer the disassembly and mapping of $EE we'd all be stuck using carburetors.

    I have two bins ready to test when I get home. In one I scaled the BPW by 60% and have loaded the factory prime pulse table values. In the other I scaled it to give as much resolution as I believe is possible given the range of pulsewidths I've determined I should need. I'll be astonished if the second one starts at all, and not surprised if the first doesn't either.

    EDIT2: One thing that really has me intrigued is what clocking the processors run at. The 1.5625 scalar has me confounded and I'd love to know how it was determined.

  12. #42
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    Well I ripped the big band-aid off first - flashed the most radical change first with BPW of 8600 / 0x2198. Cold start was great. Warm restart on par with I had yesterday after scaling the table raw by hand. I'll report back in a few days when / if I have a chance to tweak further.

  13. #43
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    456
    I have some insight how to get good feedback of injector pulswidth.
    When you reached operating temperature remove injectors fuse and log with eehack during cranking. You will get very good reading of injector pulswidth and see if changes you made have any effect.

  14. #44
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    Thanks for the suggestion - I may give it a try if all else fails resolving the 60C restart issue. Other than the scenario where the engine has been hot and left to cool 3+ hours, it's starting perfectly. I think it's close to being too lean to start at all now.

    If I can't find "perfection" through trial and error I might resort to wiring the ECT sensor line to a potentiometer along with your suggestion to help find the "magic" pulsewidth.

  15. #45
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Posts
    253
    I don't think I'm going to tick this one off as a victory, but it's certainly better now than I was able to get to before changing the Base Prime Pulsewidth at 0x2680 and rescaling the whole Prime Pulsewidth table.

    It's very odd, I can't reproduce the sluggish start unless:

    1) I get the car to temp by running (hard or for a long drive) 160F thermostat mind you
    2) I let it cool without touching it for around 2 hours 40 minutes (at ~85F ambient)

    For whatever reason, this gets things into the opposite of a "goldilocks zone" between 135F and 144F where it wants to "meow" to life. It's starting reliabily here now with one crank so I'm going to move on to bigger and better things, but oddly if you start it at this temp and then shut it off within 1-2 seconds it will restart eagerly (presumably because the valves have been warmed). At ECT above 144 or below 135 it seems to roar to life as it did with stock injectors. Even warmer and cooler ECTs (above 146F or below 133F) are much more forgiving of AFR at startup. You have to take a ton of fuel out to get any reaction in these ranges.

    So I guess what I've learned is that for a standard displacement 5.7, stick with the smallest injectors possible. Also, don't waste your time or money with chinese knock-offs.

    Moving on to finishing the performance computer for tuning WOT power now. Thanks to everyone who contributed! I'm sure there will be more setbacks along the way such as the /other/ exhaust tip cracking, "quacking" and setting off the knock sensors. Thankfully I had enough argon to weld this one up too, regardless I'm going to be sending a strongly worded email to Stainless Works. :-\

Similar Threads

  1. Replies: 6
    Last Post: 06-04-2017, 08:18 PM
  2. 95 procharged lt1 running rich
    By Bonemaroz28 in forum GM EFI Systems
    Replies: 7
    Last Post: 05-24-2017, 02:57 PM
  3. 350 Vortec wi th 454 TBI running pig rich
    By rsicard in forum GM EFI Systems
    Replies: 80
    Last Post: 08-07-2015, 05:55 PM
  4. 1227747 Chevy 350 Datalog running rich
    By jeepaddicted in forum GM EFI Systems
    Replies: 1
    Last Post: 12-06-2014, 09:37 PM
  5. Running rich in open loop
    By JeepsAndGuns in forum GM EFI Systems
    Replies: 18
    Last Post: 09-16-2012, 08:09 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •