DIY PROM Do It Yourself PROM chip burning help. No PROM begging. No PROMs for sale. No commercial exchange. Not a referral service.

SA and BPW info for WinALDL on the 7747...

Thread Tools
 
Search this Thread
 
Old 08-26-2002, 08:12 PM
  #1  
Supreme Member
Thread Starter
iTrader: (1)
 
V8Astro Captain's Avatar
 
Join Date: Jun 2001
Location: 600 yds out
Posts: 1,520
Likes: 0
Received 0 Likes on 0 Posts
Car: Bee-Bowdy
Engine: blowd tree-fity
Transmission: sebin hunnerd
Axle/Gears: fo-tins
SA and BPW info for WinALDL on the 7747...

I got this from one of Robert Rauschers papers:

I use locations that the scanner does no math on, the displayed value will then be as it is in the ecm. Then for SA values, just multiply the displayed scanner value by 0.35 (90/256 = 0.3515625). The result will be degrees of advance. Any initial timing will also need to be added to this advance (see 0x009).

So, if the aldl INT value is 91:

91 * 0.35 = 31.8 Degrees.

With the initial advance set to 6 degrees:

31.8 + 6 = 37.8 degrees at the crank.

I do have a caution on the use of the aldl on the '747 ecm,
it is Slow. Hence, the entire data output during one frame, may
not be relevant to that frame. IE: If your capturing a frame,
while accellerating, things are changing, and the data is not a
'snapshot' of one point in time. The data output is gotten
from memory as it is being output.


Ok, locations I use: BLM, INT, IAC, (0x509, 0x4f7, 0x4eb).

I output RAM locations:

0x0067 (total spark advance)
0x006E (PE/WOT spark advance)
0x0077 (Retard spark amount, only half this
value is sub'd from the total SA)

The value of location 0x0067 will include the SA of the
PE/WOT and Retard spark also. This is nearly the final
value used to program the spark control counters. Only
a spark latency correction is made after this.
One thing that confuses me is why RR says to use this calculation "Then for SA values, just multiply the displayed scanner value by 0.35 (90/256 = 0.3515625).".....????? Would this have to be something addressed by the scanner program (ie WinALDL)?

I was thinking of using the O2 cross counts (0x50B) and hopefully if someone can provide me with some help I'd like to get the BPW on there in the PROM ID (0x4E7).

Code:
LD4E7   FDB $D002   ; 1.  EPROM ID LSB
I'm new to source code so I'll post it and see what I get. Using the PROM ID as an example, I assume that the $D002 is the ram variable that the code is loading. Assuming I'm correct I guess I need to know which variable the ECM loads with the last calculated injector PW. More simply, what do I replace $D002 with if I want the injector pulse width there?

thanks
Old 08-27-2002, 08:34 AM
  #2  
Senior Member

 
JPrevost's Avatar
 
Join Date: Oct 1999
Posts: 6,621
Likes: 0
Received 1 Like on 1 Post
Car: 91 Red Sled
Axle/Gears: 10bolt Richmond 3.73 Torsen
This isn't really source code. This is more like code modification.
Right now I've got a TunerCat tdf file that I modified so I can change the outputs of some important values inplace of stupid ones like battery volts and eprom id. I have things that are similar lined up with those that are read in winaldl. Take for example the knock counts. In winaldl, the 8746 has PA3 (knock counter) but no o2 x-counts. So I've got it setup so that I can just flip the 8 in 1 eprom (thanks again Craig) and have the o2 x-counts output in place of the knock counts. I've also got different AFR inplace of battery volts because both bvolts and AFR's are all a value /10. The hardest part was figuring out the stuff like desired idle speed. Since my normal engine speed is divided by 25 and there was only desired idle speed and desired idle speed /12.5, I had to just half the outputed value (12.5/25). You'll need to do this OR have the windows calculator out and use it to convert from Hex to Dec....I take it back, I forgot that winaldl also has every value converted from hex to dec in it's "raw source data."
Here is an example;
Code:
LD420:   FDB $001B              ;  7. rpm/25   (rpm = n *25)
I replaced location D421, which is the 1B of the "$001B" (note, 00 is location D420), with CF. So now the line looks like;
Code:
LD420:   FDB $00CF              ;  7. rpm/25   (rpm = n *25)
The hack for 8746 says location $00CF is in the ecm's RAM and is the desired idle speed value /12.5 (I have a feeling right now that this is going to either become sticky OR combined with an already sticky post).
Inplace of battery volts I have the fuel pump volts, desired AFR, and AFR vs coolant (open loop). Inplace of knock counts I've got o2 x-counts. Inplace of engine RPM I've got desired idle speed (just need to remember to divide the value by 2 when I read it through winaldl. IAC steps (a/c and park position) and IAC steps added for low BatV can replace the "actual" IAC steps. I've even got a more accurate (16bit instead of 8bit) vehicle speed inplace of the eprom id. Usually I just leave the eprom ID outputing final SA, sync bpw, or async bpw. I'm also working with stuff like TPS% from idle (TPS% = value *.39 because to get a % from the range 0-255 you need to multiply the value by 100/255), Injector constant, and VE% for bpw calc all replacing the stupid integrator. A word to the wise or maybe just fellow holley injectors guys....don't even bother looking at the integrator! With TBI it's hard enough to nail down the BLM let alone the integrator.
Old 08-27-2002, 02:26 PM
  #3  
Supreme Member
Thread Starter
iTrader: (1)
 
V8Astro Captain's Avatar
 
Join Date: Jun 2001
Location: 600 yds out
Posts: 1,520
Likes: 0
Received 0 Likes on 0 Posts
Car: Bee-Bowdy
Engine: blowd tree-fity
Transmission: sebin hunnerd
Axle/Gears: fo-tins
mmmkay...

So once I get ram variable 0x0067 into data location 0x50B does WinALDL have to mulitply by .35, or do I do that in the code? Or is this code do that "; 7. rpm/25 (rpm = n *25)" for the calc (in your case)? I thought that the semicolon was for commenting. Maybe I'm confused...

Also, I'm not that good at reading code so if anyone knows the ram variable location for the last calculated injector PW I'd love to know.
Old 08-28-2002, 07:58 PM
  #4  
Supreme Member
Thread Starter
iTrader: (1)
 
V8Astro Captain's Avatar
 
Join Date: Jun 2001
Location: 600 yds out
Posts: 1,520
Likes: 0
Received 0 Likes on 0 Posts
Car: Bee-Bowdy
Engine: blowd tree-fity
Transmission: sebin hunnerd
Axle/Gears: fo-tins
Ok. So can I just use the Pocket Programmer editor to edit the neccessary byte?

I asked around and I found that WinALDL is what does the conversion.

0x50B is $00 in my bin. So I'll change 0x50C to 67. Giving me $0067...correct?
Old 08-29-2002, 06:00 PM
  #5  
Senior Member

 
JPrevost's Avatar
 
Join Date: Oct 1999
Posts: 6,621
Likes: 0
Received 1 Like on 1 Post
Car: 91 Red Sled
Axle/Gears: 10bolt Richmond 3.73 Torsen
Originally posted by V8Astro Captain
mmmkay...

So once I get ram variable 0x0067 into data location 0x50B does WinALDL have to mulitply by .35, or do I do that in the code? Or is this code do that "; 7. rpm/25 (rpm = n *25)" for the calc (in your case)? I thought that the semicolon was for commenting. Maybe I'm confused...

Also, I'm not that good at reading code so if anyone knows the ram variable location for the last calculated injector PW I'd love to know.
Okay, I'll give you an example with your 7747... can't believe you're making me look at a hack for an ecm I don't own.
To understand this ALDL stuff is simple. The ECM sends out the hex values, then winaldl converts the values into dec. Example; ECM sends out anything from 00 to FF, in dec it's 0 to 255. The ecm doesn't do any of the conversions, that's why the hack file is commented to tell us how to convert the dec value into something useful. Let's say the battery voltage is given from the ecm as 8A, that's 138 in dec. Now the hack tells us to divide by 10 to get volts, hence the 13.8 volts displayed in winaldl.
I'm going to go eat dinner and then replace my rear diff gasket (stupid thing leaks with just RTV) so expect me to reply late tonight!
Old 08-29-2002, 07:35 PM
  #6  
Supreme Member
Thread Starter
iTrader: (1)
 
V8Astro Captain's Avatar
 
Join Date: Jun 2001
Location: 600 yds out
Posts: 1,520
Likes: 0
Received 0 Likes on 0 Posts
Car: Bee-Bowdy
Engine: blowd tree-fity
Transmission: sebin hunnerd
Axle/Gears: fo-tins
Originally posted by JPrevost

Okay, I'll give you an example with your 7747... can't believe you're making me look at a hack for an ecm I don't own.
Uhh yeah. Thanks for the help, I learned a few things from it...but I didn't MAKE you do anything. It seems that EVERYONE here who knows source code (except one) was born with the knowledge which, of course, inherently makes me an idiot.

Last edited by V8Astro Captain; 08-29-2002 at 07:38 PM.
Old 08-30-2002, 02:21 AM
  #7  
Senior Member

 
JPrevost's Avatar
 
Join Date: Oct 1999
Posts: 6,621
Likes: 0
Received 1 Like on 1 Post
Car: 91 Red Sled
Axle/Gears: 10bolt Richmond 3.73 Torsen
You're right, nobody is making me do anything and I wasn't born with source code knowledge nore was it given to me on a silver plate. I got the run around for about a year and it took a lot of questions, a class in programming, and some dedication/disapline to read related topics.
You're not an idiot, nore am I trying to be the "tell all of everything." It's only time and desire that seperates each of us from the other. I'm a couple months ahead of you but light years behind RBob and Grumpy. Take your time and ask the right people the right questions, don't waste time posting rehashed questions or you'll be left with the "read the old stuff" .
Okay, now back to buisness.
I should have corrected you before but in your original post you said, "I assume that the $D002 is the ram variable that the code is loading". $D002 isn't ram, it's actually part of the eprom and not the ecm. Stuff like $00FD, or anything else that starts off with $0___ is from the RAM, anything starting with $D___ is most likely in the eprom.
In the 7747 the ALDL datastream starts at location LD4E7. Since eprom ID is 16-bit (a high msb and low lsb) you can replace it with 2 8-bits.
To output Final SA and BPW into the eprom ID you'd have to replace
Code:
LD4E7 FDB $D002 ; 1. EPROM ID LSB
LD4E9 FDB $D003 ; 2. EPROM ID MSB
with
Code:
LD4E7 FDB $0052 ; 1. BPW LSB
LD4E9 FDB $0053 ; 2. BPW MSB
The way I found $0052 and $0053 was the BPW was not too simple. I don't know why but the hack for the 7747 that's out in the public doesn't have the listed RAM values at the top. Instead it just goes right into the eprom with LD___ and then the source code. My 8746 hack has the RAM locations listed before the eprom code, go figure . Anyways, all I did was go down to the source code that's stored in the rom and since it's just about all commented I looked for the subroutines that calculated the BPW.
Code:
Example; Line D79F: LD79F ADDA L0052 ; BPW,LSB
A couple lines down is D7A3: ADDA L0053 ; BPW, MSB
Took me a few minutes to find it and verify but I'm pretty sure that's what you wanted. Now winaldl will display this but you'll have to convert it to BPW. I wish I knew the conversion but I don't. I think it's just convert from Hex to Dec and then multiply by 15.26 to get the BPW in usec. Don't take my word on it but that's how the 8746 does it so I wouldn't be suprised if that's what happens with the 7747.
Now you can see how easy it is to find what you want in the RAM and spit it out in winaldl.
Old 08-30-2002, 12:14 PM
  #8  
Supreme Member
Thread Starter
iTrader: (1)
 
V8Astro Captain's Avatar
 
Join Date: Jun 2001
Location: 600 yds out
Posts: 1,520
Likes: 0
Received 0 Likes on 0 Posts
Car: Bee-Bowdy
Engine: blowd tree-fity
Transmission: sebin hunnerd
Axle/Gears: fo-tins
Thanks J.

Another question for you...Because the original code was
Code:
LD4E7 FDB $D002 ; 1. EPROM ID LSB
LD4E9 FDB $D003 ; 2. EPROM ID MSB
What does LSB and MSB do. I have a huge list of assembly commands and those aren't on the list.

Does that mean I HAVE to replace LD4E7 with another variable with something that has LSB attached to it.

Using the code you posted for me...
Code:
LD4E7 FDB $0052 ; 1. BPW LSB
LD4E9 FDB $0053 ; 2. BPW MSB
I see that you replaced LD4E7 with ($0052) BPW LSB. Does it always have to work like this?

Or could I replace LD4E7 with someting like the SA, $0066?


Also, I keep seeing this as I'm perusing the ARJU hack...
Code:
D8B9:            LDD     L0096		; BPW,  ASYN

and

D9F8:            STD     LBC0E		; SYNC BPW PWM <-------
So what's the difference between these and the BPW you posted? Does that make sense?

Thanks...

Last edited by V8Astro Captain; 08-30-2002 at 12:51 PM.
Old 08-30-2002, 01:01 PM
  #9  
Senior Member

 
JPrevost's Avatar
 
Join Date: Oct 1999
Posts: 6,621
Likes: 0
Received 1 Like on 1 Post
Car: 91 Red Sled
Axle/Gears: 10bolt Richmond 3.73 Torsen
MSB and LSB is the way to split up a 16 bit (more accurate) value. MSB is the first "major" part like the whole number and LSB is the "minor" part. From what I've been told an example would be if MSB was say 4D and LSB was 1A. imagine 4D.1A = 77.26
Obviously with our slow ALDL data rate the LSB has very little significance and so I usually don't bother using it.
This brings me into the next question, no, you don't have to have MSB replaced with another MSB, it can be anything you want. ALDL has no function on the operation of the fuel and spark control so you can output o2 volts at EVERY part and you'll just end up with a much more accurate datalogging of the o2 volts .
Put SA and anything else that you want, datalog, convert with excel and you've got what you were looking for.
Old 08-30-2002, 01:03 PM
  #10  
Supreme Member
Thread Starter
iTrader: (1)
 
V8Astro Captain's Avatar
 
Join Date: Jun 2001
Location: 600 yds out
Posts: 1,520
Likes: 0
Received 0 Likes on 0 Posts
Car: Bee-Bowdy
Engine: blowd tree-fity
Transmission: sebin hunnerd
Axle/Gears: fo-tins
I see. Thanks again.

What did you use for the BPW conversion? I have two choices. I know they are really the same thing but what is PW usually measured in?

I have conversion factors of 15.27 and .01527. 15.27 will give me uSec and .01527 will give me mSec.

Last edited by V8Astro Captain; 08-30-2002 at 04:10 PM.
Old 08-30-2002, 01:24 PM
  #11  
Supreme Member
Thread Starter
iTrader: (1)
 
V8Astro Captain's Avatar
 
Join Date: Jun 2001
Location: 600 yds out
Posts: 1,520
Likes: 0
Received 0 Likes on 0 Posts
Car: Bee-Bowdy
Engine: blowd tree-fity
Transmission: sebin hunnerd
Axle/Gears: fo-tins
Hey Jon, I think this is what you were hoping me to find...
Code:
 L0000     EQU     $0000		; STATUS WD
       L0001     EQU     $0001		; STATUS WD
       L0002     EQU     $0002		; STATUS WD
       L0003     EQU     $0003		; STATUS WD 
       								;	b4 = FUEL DECEL C/O
									;
       L0004     EQU     $0004		; STATUS WD
       L0005     EQU     $0005		; STATUS WD
       L0006     EQU     $0006		; STATUS WD
       L0007     EQU     $0007		; STATUS WD
       L0008     EQU     $0008		; STATUS WD
       L0009     EQU     $0009		; STATUS WD
       L000B     EQU     $000B		; STATUS WD
       L000D     EQU     $000D		; STATUS WD

       L000E     EQU     $000E  	; MAWF1 (DISPLAY)

       L000F     EQU     $000F		; STATUS WD

       L0010     EQU     $0010		; TMR
       L0012     EQU     $0012		; AFR STATUS WD
       L001C     EQU     $001C  	; RPM/25
       L001F     EQU     $001F		; RPM/12.5

       L0020     EQU     $0020		; RPM/12.5
       L0021     EQU     $0021		; COOLANT
       L0025     EQU     $0025  	; COOLANT, VDC
	   
       L0026     EQU     $0026		; S/D MAP 
       L002B     EQU     $002B		; TRANSIENT MAP TMR 
       L002E     EQU     $002E		; MAP
       L002F     EQU     $002F		; FILT MAP

       L0031     EQU     $0031		; VACUUM
       L0032     EQU     $0032		; DIFF MAP	
       L0034     EQU     $0034  	; MPH/1
       L0036     EQU     $0036		; MPH VAL
	   
       L003E     EQU     $003E  	; o2 VDC, (A/D)
	   L003F     EQU     $003F		; FILT o2 VAL
	   
       L0043     EQU     $0043		; ASYNC INJ VAL	

       L0048     EQU     $0048  	; TPS, VDC
       L0049     EQU     $0049		; TPS
       L004A     EQU     $004A
       L004B     EQU     $004B		; ACCEL ENRICH  FILTERED TPS
       L004C     EQU     $004C
       L004D     EQU     $004D		; FILTERED TPS
       L004F     EQU     $004F		; MIN TPS VAL
       L0050     EQU     $0050		; TPS ERR TMR
       L0051     EQU     $0051
	   
       L0052     EQU     $0052		; BPW, MSB
       L0053     EQU     $0053		; BPW, LSB
	   
       L0054     EQU     $0054		; COLD OP'S o2
       L0055     EQU     $0055		; o2 SENSOR VOLTAGE BIAS
       L0056     EQU     $0056		; Slow o2 ERROR
       L0057     EQU     $0057		; ASYNC INJ MULT
       L0058     EQU     $0058		; PORP DURATION, SEC'S
       L0070     EQU     $0070		; STATUS WD
       L007F     EQU     $007F		; AIR FLOW FOR EGR

       L0096     EQU     $0096		; BPW,  ASYN
       L0098     EQU     $0098
       L0099     EQU     $0099		; PUMP SHOT LK UP
       L009A     EQU     $009A
       L009B     EQU     $009B		; TRANS FUEL CALC INTERVEL TMR
       L009C     EQU     $009C		;
       L009D     EQU     $009D
       L009E     EQU     $009E		; DECEL FUEL MULT
       L009F     EQU     $009F		; BETWEEN DECEL FUEL C/0 TIMER
       L00A0     EQU     $00A0		; POST DECEL C/O TMR
       L00A1     EQU     $00A1		; DECEL FUEL C/O TMR
       L00A2     EQU     $00A2		; BLM
       L00A3     EQU     $00A3  	; BLM, BIN
       L00A4     EQU     $00A4  	; INTIGRATOR, BIN
       L00A5     EQU     $00A5		; OPN LP AFR
       L00A6     EQU     $00A6
       L00A7     EQU     $00A7		; EGR CORRECTION
       L00A9     EQU     $00A9		; VE LK UP RESULT
	   
       L00AA     EQU     $00AA
	   
       L00AB     EQU     $00AB		; TEMP BPW, (SYNC)
       L00AD     EQU     $00AD		; TEMP BPW,  (ASYNC)
	   
       L00AF     EQU     $00AF		; INTEGRATOR DELAY TMR
       L00B0     EQU     $00B0		; INTEGRATOR DELAY
       L00B1     EQU     $00B1
       L00B2     EQU     $00B2
       L00B4     EQU     $00B4		; IDLE AFR TMR
       L00B5     EQU     $00B5		; AFR
       L00B6     EQU     $00B6		; AFR
       L00B8     EQU     $00B8		; BLK LEARN TMR
       L00B9     EQU     $00B9		; INTEGRATOR DELAY TMR 
       L00BA     EQU     $00BA  	; ALDL CTR
       L00BB     EQU     $00BB		; PE ON DELAY TMR
       L00BC     EQU     $00BC		; PORP  FACTORED AIR FLOW
       L00BD     EQU     $00BD		; OLD  FILT o2 VAL
       L00BE     EQU     $00BE		; AIR FLOW, (gms/sec)
       L00BF     EQU     $00BF		; PORP DURATION TMR	
       L00DE     EQU     $00DE		; STATUS WD
       L00DF     EQU     $00DF
       L00E3     EQU     $00E3		; START UP COOL
       L00E5     EQU     $00E5		; AFR


       L0457     EQU     $0457		; FOR HEADS UP USE
       L0458     EQU     $0458		; FOR HEADS UP USE
	   

       L5800     EQU     $5800		; HEADS UP


       LBC00     EQU     $BC00		; DRP COUNT

       LBC0E     EQU     $BC0E		; SYNC  BPW	PWM
       LBC14     EQU     $BC14		; ASYNC BPW PWM

       LBC3C     EQU     $BC3C		; PWM



       LE008     EQU     $E008		; CPU HOOK
       LE531     EQU     $E531
 
       LFA59     EQU     $FA59		; FIRMWARE
       LFB12     EQU     $FB12		; LAG FILTER ROUTINE
       LFB36     EQU     $FB36		; 2d LK UP
       LFB40     EQU     $FB40		; 2D LK UP W/LINE CNT IN HDR
       LFB45     EQU     $FB45		; 2d LK UP
       LFB49     EQU     $FB49		; 2d look up routine
       LFB67     EQU     $FB67		; 3D LU ?
       LFB92     EQU     $FB92
       LFBB9     EQU     $FBB9
       LFBCE     EQU     $FBCE
       LFBDB     EQU     $FBDB		; READ A/D
       LFCD8     EQU     $FCD8
       LFD18     EQU     $FD18

       LFD39     EQU     $FD39

       LFDBD     EQU     $FDBD
       LFDCB     EQU     $FDCB
       LFDDA     EQU     $FDDA
       LFF66     EQU     $FF66
       LFF80     EQU     $FF80
       LFFFF     EQU     $FFFF
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
Fanatic1074
Tech / General Engine
45
10-03-2022 05:57 AM
3rdgenparts
Engine/Drivetrain/Suspension Parts for Sale
6
05-21-2016 11:50 PM
oil pan 4
Fabrication
2
10-06-2015 11:56 AM
bjpotter
History / Originality
17
10-04-2015 07:48 PM
Linson
Auto Detailing and Appearance
12
10-01-2015 09:50 PM



Quick Reply: SA and BPW info for WinALDL on the 7747...



All times are GMT -5. The time now is 03:00 AM.