[Gmecm] BLM cell confusion

WopOnTour wopontour
Tue Nov 15 01:56:24 UTC 2005


Gary
I'm trying to determine what's different in the calibration files between 
the "distributor" versions of the '749 code (2.0L turbo, Sy/Ty) and the DIS 
version (1988 Quad 4)
Below are a few excerpts from "the archives" you probably have all this 
already but if it helps any... But one things for certain,  at least the 
offsets are different in the Quad4 as its a 256K PROM instead of 128K
WopOnTour
**************************************************
Here is the dwell computation code from the SyTy (and turbo Sunbird)
program.  All the named locations are RAM variables except for
TachInterval which comes from the hardware timing chip.  Notice that all
of the constants are hard coded, none are read from the configuration
area.  (Question:  Are the SyTy and Sunbird distributor or DIS?)
This code fragment is invoked at 80 Hz
xD035   ...
        LDX     TachInterval    ;Hardware register
        LDAA    #255            ;Dummy huge ExtraDwell
        LDAB    Flags2F
        BITB    #bigMapIncrease
        BNE     @0              ;Force ExtraDwell := (TachInterval / 8)
        LDD     OldTachInterval ;OldTachInterval - TachInterval
        PSHX
        TSX
        SUBD    (X)
        PULX
        ASLD                    ;Double difference
        SUBD    ExtraDwell      ;Extra dwell if RPM increased
        BMI     @1
        ADDD    ExtraDwell
@0      STD     ExtraDwell
@1      PSHX                    ;TachInterval to D
        PULD
        LSRD                    ;TachInterval / 8
        LSRD
        LSRD
        SUBD    ExtraDwell      ;Limit ExtraDwell to (TachInterval / 8)
        BHS     @2
        ADDD    ExtraDwell
        STD     ExtraDwell
@2      PSHX                    ;TachInterval to D
        PULD
        STD     OldTachInterval ;Set new OldTachInterval
        LSRD                    ;Compute Dwell using TachInterval
        SUBD    #229
        BHS     @3
        ADDD    #308
        BRA     @5
@3      LSRD
        SUBD    #295
        BLO     @4
        ADDD    #382
        BRA     @5
@4      ADDD    #1527
        LSRD
        LSRD
@5      STD     Dwell
        LDAA    #120            ;Increase dwell at low volts
        DIFA    SensedVolts
        LDAB    #4
        MUL
        ADDD    Dwell           ;Combine all terms
        ADDD    ExtraDwell
        STD     Dwell
        LDD     TachInterval    ;TachInterval - 39
        SUBD    #39
        SUBD    Dwell           ;Limit Dwell to (TachInterval - 39)
        BHS     @6
        ADDD    Dwell
        STD     Dwell
@6      ...
This code fragment slowly reduces ExtraDwell to zero.  It is executed
once per ignition event (up to 80 Hz).
xCE2F   ...
        LDD     ExtraDwell      ;ExtraDwell / 8
        LSRD
        LSRD
        LSRD
        COMA                    ;- (ExtraDwell / 8) - 1
        COMB
        ADDD    ExtraDwell      ;ExtraDwell - (ExtraDwell / 8) - 1
        BPL     @9
        CLRD
@9      STD     ExtraDwell      ;Decay ExtraDwell to zero
-- 
Ludis Langens                               ludis (at) cruzers (dot) com
Mac, Fiero, & engine controller goodies:  http://www.cruzers.com/~ludis/
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
$Date: Tue, 23 Feb 1999 10:04:57 -0800
$From: Ludis Langens <ludis at cruzers.com>
$Subject: Re: EST observations (kinda long)
Tedscj at aol.com wrote:
The problem is that the other edge may "move around" at different RPMs.
Here is the dwell computation code from the SyTy (and turbo Sunbird)
program.  All the named locations are RAM variables except for
TachInterval which comes from the hardware timing chip.  Notice that all
of the constants are hard coded, none are read from the configuration
area.  (Question:  Are the SyTy and Sunbird distributor or DIS?)
This code fragment is invoked at 80 Hz
xD035   ...
        LDX     TachInterval    ;Hardware register
        LDAA    #255            ;Dummy huge ExtraDwell
        LDAB    Flags2F
        BITB    #bigMapIncrease
        BNE     @0              ;Force ExtraDwell := (TachInterval / 8)
        LDD     OldTachInterval ;OldTachInterval - TachInterval
        PSHX
        TSX
        SUBD    (X)
        PULX
        ASLD                    ;Double difference
        SUBD    ExtraDwell      ;Extra dwell if RPM increased
        BMI     @1
        ADDD    ExtraDwell
@0      STD     ExtraDwell
@1      PSHX                    ;TachInterval to D
        PULD
        LSRD                    ;TachInterval / 8
        LSRD
        LSRD
        SUBD    ExtraDwell      ;Limit ExtraDwell to (TachInterval / 8)
        BHS     @2
        ADDD    ExtraDwell
        STD     ExtraDwell
@2      PSHX                    ;TachInterval to D
        PULD
        STD     OldTachInterval ;Set new OldTachInterval
        LSRD                    ;Compute Dwell using TachInterval
        SUBD    #229
        BHS     @3
        ADDD    #308
        BRA     @5
@3      LSRD
        SUBD    #295
        BLO     @4
        ADDD    #382
        BRA     @5
@4      ADDD    #1527
        LSRD
        LSRD
@5      STD     Dwell
        LDAA    #120            ;Increase dwell at low volts
        DIFA    SensedVolts
        LDAB    #4
        MUL
        ADDD    Dwell           ;Combine all terms
        ADDD    ExtraDwell
        STD     Dwell
        LDD     TachInterval    ;TachInterval - 39
        SUBD    #39
        SUBD    Dwell           ;Limit Dwell to (TachInterval - 39)
        BHS     @6
        ADDD    Dwell
        STD     Dwell
@6      ...
This code fragment slowly reduces ExtraDwell to zero.  It is executed
once per ignition event (up to 80 Hz).
xCE2F   ...
        LDD     ExtraDwell      ;ExtraDwell / 8
        LSRD
        LSRD
        LSRD
        COMA                    ;- (ExtraDwell / 8) - 1
        COMB
        ADDD    ExtraDwell      ;ExtraDwell - (ExtraDwell / 8) - 1
        BPL     @9
        CLRD
@9      STD     ExtraDwell      ;Decay ExtraDwell to zero
-- 
Ludis Langens                               ludis (at) cruzers (dot) com
Mac, Fiero, & engine controller goodies:  http://www.cruzers.com/~ludis/
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
$From: "Bruce Plecan" <nacelp at bright.net>
$Subject: Re: 749 inna 730
$Date: Wed, 31 Mar 1999 20:59:38 -0500
-----Original Message-----
From: andy quaas <realsquash at yahoo.com>
To: gmecm at esl.eng.ohio-state.edu <gmecm at esl.eng.ohio-state.edu>
Date: Wednesday, March 31, 1999 7:52 PM
Subject: Re: 749 inna 730
No, the 730 uses one injector driver, and shares two pins for the injectors.
The 749 has two injector drivers and can be set as a single saturated
injector driver
like in the syclone, or as a dual Peak+Hold like in the Sunbird Turbo (that
used the 749),
or like in the Quad 4 (that used the 749).
It can take a ton of work to work out a calibration!.
If anyone thinks the reading the archives is time consuming you won't
beleive how much time you can invest inna calibration.
Bruce
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
$From: "John T. Martin" <gmman at eskimo.com>
$Subject: Re: Turbo Sunbird GT Boost Gauge wiring?
$Date: Fri, 2 Apr 1999 20:29:37 -0800
-----Original Message-----
From: Terry/Carol Kelley <terryk at foothill.net>
To: gmecm at esl.eng.ohio-state.edu <gmecm at esl.eng.ohio-state.edu>
Date: Thursday, April 01, 1999 5:47 PM
Subject: Turbo Sunbird GT Boost Gauge wiring?
Anybody have the wiring for the Sunbird turbo boost gauge?
Terry Kelley
1986 Olds Ciera GT 3800 Supercharged
hello,
The boost gauge is in parallel with the ECM on the Sunbird. Uses the same
map signal on pin F15 of the 749. Had a wiring diagram faxed to me today.
Email me if any more info is needed.
John
gmman at eskimo.com
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
$From: Tedscj at aol.com
$Date: Mon, 12 Apr 1999 17:58:30 EDT
$Subject: Re: DIS, HEI, and PITAs
I Tried some things with the DIS today.
First, I made sure the DIS was at least responding to the original DIS .bin
(from a '91 Sunbird) and it was.
Then I just started from the beginning trying to adjust different things 
with
the SyTy .bin.  I kept notes and I will paste them right here.
 The changes I made to the .bin were NOT accumulative.  The changes made 
were
ONLY those mentioned in each line.  Except for the Main Spark Table.  1-5 
the
table was zeroed out completely  6< the table was 0 for everything below
2000rpm and 30degrees for everything above 2000rpm (so that any advance 
would
be obvious.)
1 - 5 : Main Spark Table zeroed out.
1. no changes except for above:   ran about 60 degrees advanced.
2  KREFANGL at 40:  No difference.
3. MAXRTRD2 at 50:  Timing mark right at zero.
4. MAXRTRD2 at 70:  Timing mark at 20 BTDC.
MAXRTRD2 seems to be ADVANCING the base timing.
5. Changed KCTBIAS (coolant temp bias) from 20 to 50:  No changed.
6-     Main spark advance table set as described below.
6.  Changed main spark advance to abruptly go from 0 to 30 degrees advance 
at
2000 rpm:  It DID advance abruptly at 2000 RPM.
7.  set MAXRTRD2 at 60:  timing mark at 10 BTDC but there is now NO advance
at 2000RPM
8.  7 + changed MAXADVN2 from 46 to 120:  still No advance at 2000 RPM
9.  change MAXRTRD2 to 5 (to check if a small change will still render the
main spark table inop.):  It DID advance abruptly at 2000RPM.  SO changing
the MAXRTRD2 value does not in itself render the the Main Spark Adv. inop.
10.  Change MAXRTRD2 to 20 (I'm going to sneak up on the 60 value):  Can
barely get the car started at 20, and won't reve pas 1200 or so ... will 
jump
to 40 and see what happens.
11.  MAXRTRD2 set to 40:  Timing mark at something like 10 ATDC and there is
NO advance after 2000RPM.
12.  Set MAXRTRD2 to 50 and set MAXADVN2 to 0.0 just to see what happens:
timing mark at 0 degrees and No advance.
13.  leave MAXRTRD2 at 50 and move MAXADVN2 to 60 and KREFANGL to 60 to see
what happens:  Still no advance.
14.  same as above only MAXADVN2 at 120:  still no advance.
What did I learn?
The DIS module DOES respond to the EST signal, WHEN no other parameters have
been changed too far.  The MAXRTRD2 seems to advance the base timing.  The
MAXADVN2 and KREFANGL seem to have no apparent effect.  Once you advance the
base timing too far (through the MAXRTRD2) the MAIN SPARK TABLE ceases to be
effective.  Again, adjusting the MAXADVN2 does not solve this problem and
appears to have no effect.
You can see all the different combinations I have tried above.  If you can
think of anything else, please let me know.
Thanks,
Ted
PS  What Bruce and Terry said about inverting the Reference Signal from the
DIS to the ECM would work.  It would push back the timing 60degrees 
(assuming
50% duty cylce and three pulse per revolution).  That would set the base
timing at 10degrees when the Main Spark Table says 0 degrees, which is close
enough.  And I found that if you don't mess with the KREFANGL, MAXRTRD2, or
MAXADVN2 then the DIS module WILL respond to the EST signal.  If you set the
base timing too far with the MAXRTRD2, then the DIS module will NOT respond
to the EST signal (or maybe the ECM stops pushing up the advance on the EST
signal any further).
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-
$From: ECMnut at aol.com
$Date: Fri, 12 Feb 1999 09:32:05 EST
$Subject: DIS w/ '749 .bin,  GM did it..
The same 749 box was used in just about all
of the '88 Quad-4 applications the General produced,
with (I think) DIS..  I never saw a a Q4 with a dissy...
Anyway, it sounds like the the 749 has the hardware
to do what you want, but the Sy bin has the wrong code
for the app.  Unfortunately, none of the offsets are the same
in the Q4 PROM as the Sy chip..  It's a 256 instead of the
Syphoon/Sunbird 128 chip.
Lemme know (off list) if a Q4 749 bin is required.
HTH
Mike V
In a message dated 2/11/99 5:42:14 PM Eastern Standard Time, Tedscj at aol.com
writes:
be
-<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>-


----- Original Message ----- 
From: "Gary Evans" <gary at garyandliz.com>
To: <gmecm at diy-efi.org>
Sent: Monday, November 14, 2005 2:32 PM
Subject: Re: [Gmecm] BLM cell confusion


> Not Kidding.
>
> If you have some time, check out the disassembly. There are only 3  cells 
> defined. Unlike the 16 cell code, which determines cell based  on rpm and 
> map, the $a1 and $88 define the cells based on VSS, BPW  and MAP.
>
> Here are the definitions in the code:
>
>                   HIGH HYSTERESIS VALUE, WITH  KLCBPWL
> 870F        04      4 KCELIDLL 1.3 MPH    IF SPEED EXCEEDS THIS 
> THRESHOLD, CAN'T BE IDLE
>                           LOW HYSTERESIS VALUE, WITH KCELIDLH
> 8710        06      6 KCELIDLH   2 MPH    IF SPEED EXCEEDS THIS 
> THRESHOLD, CAN'T BE IDLE
>                          HIGH HYSTERESIS VALUE, WITH KCELIDLL
> 8711        24     36 KCELMAPL 31.3 KPA    DIVIDING POINT BETWEEN  PART 
> THROTTLE CELL AND
> OVERRUN CELL LOW HYSTERESIS VALUE, WITH KCELMAPH
> 8712        37     55 KCELMAPH 37.2 KPA    HIGH MAP DETERMINES PART 
> THROTTLE CELL
>      HIGH HYSTERESIS VALUE, WITH KCELMAPL
> 8713      0080    128 KCELBPWL 1.95 MSEC   THRESH BETWEEN CELL 1 AND  CELL 
> 2
>                     LOW HYSTERESIS VALUE, WITH KCELBPWH
> 8715      0090    144 KCELBPWH 2.2 MSEC   BPW > THRESH DETERMINES CELL 1
>                     HIGH HYSTERESIS VALUE, WITH KCELBPWL
>
> There are only 3 cells: Idle, part throttle, and overrun.
>
> My scan tool is a laptop reading the raw ALDL stream for the ECM. The  ECM 
> *never* reports any other cell than 0, 1 or 2. Is it possible the  Tech 1 
> is faking 16 cells based on the RPM / MAP values?
>
> As for the 6+1 crank trigger, there have been lengthy threads in the  past 
> on the differences between the DIS and distributor code. Despite  the 
> similarities in wiring and theory of operation, the distributor  and DIS 
> codes expect slightly different things to be happening on the  signal 
> lines. There is a difference in the timing and dwell  calculations that no 
> one ever seemed to figure out (or if they did, I  missed it). Of 
> particular interest is this line:
>
> 801B        AA    170 KREFANGL 59.8 DEG SPARK REFERENCE ANGLE
>
> I read about the trials of another GMECM member trying to get DIS to  run 
> on distributor code, decided it wasn't worth blowing up my  engine, and 
> went with the $a1 code instead.
>
> This google search will lead you to some of the old threads on the 
> subject:
>
> http://www.google.com/search?q=gmecm+dis+distributor+base+reference +angle
>
> -Gary
>
>
> On Nov 13, 2005, at 1:16 PM, WopOnTour wrote:
>
>> Gary
>> Nah, you're kidding right? I realize the $88 and $1A calibration  details 
>> concern itself with cells 0 and 1 a lot for as these are  idle cells, but 
>> I've had a TECH1 scan tool on hundreds of those V6s  and the BLM cell PID 
>> varies between cell 3 and cell 15 at road  loads. What scan tool do you 
>> use??
>>
>> Also, what difference does the style crank triggering make to the  ECM? 
>> That's all resolved by the DIS module itself AFAIK (well  except on the 
>> newer OBDII models where the CKP is hardwired  directly to the ECM) On 
>> the 122730/727 the ECMs onlly connection to  the ignition system is the 
>> EST and BYPASS and the ECM doesnt care  what triggering methods 
>> (distributor or DIS) are being employed, as  the CKP is connected to the 
>> DIS module not the ECM.
>> Please explain
>> WopOnTour
>>
>> ----- Original Message ----- From: "Gary Evans" <gary at garyandliz.com>
>> To: <gmecm at diy-efi.org>
>> Sent: Sunday, November 13, 2005 1:13 AM
>> Subject: Re: [Gmecm] BLM cell confusion
>>
>>
>>> No really, they exist. The $a1 and $88 masks for the 2.8 / 3.1 V6 
>>> engines use only 3 cells. There are probably others, used  primarily  on 
>>> "low budget" applications. The customary masks to  work with ($8d  for 
>>> example) are performance oriented, so the 16  cell calibrations  are 
>>> better known in the GMECM community but 16  cells are by no means 
>>> standard across all applications.
>>>
>>> If I was going to start from scratch on my project again, I would 
>>> definitely try to use one of the other masks that offer the usual  16 
>>> BLM cells. IMHO, the $a1 and $88 code bases are sloppily  written and 
>>> not very easy to tune. I am no assembly expert, but  from the work I 
>>> have done on the $a1 hac, the code appears to be  a mess. Example: the 
>>> injector constant is part of one of the EGR  tables. yeah.....
>>>
>>> However, I need the 6+1 crank trigger DIS, and as far is I know  $88 
>>> $8F and $A1 are the only masks that support it out of the box  on the 
>>> V6. If there is another mask that supports 6+1 crank  trigger, DIS, 
>>> *and* 16 BLM cells, I would love to hear about it  because I am  getting 
>>> the itch to do more tuning on my car, and I  might be inclined  to try 
>>> something new if it offered better  tunability and cleaner (or  maybe 
>>> just better documented) code.
>>>
>>> -Gary
>>>
>>>
>>> On Nov 12, 2005, at 9:05 PM, WopOnTour wrote:
>>>
>>>> Gary
>>>> This post has me a bit stumped
>>>> What about the other 13 cells?
>>>> Don't ALL of the OBDI calibrations use at least a full 16 cell  BLM 
>>>> map? (4cells by 4cells) Cells 0 thru 16 ??
>>>> I know some others like the Quad4 ECMs use 16 PLUS and additional  4 
>>>> cells (17-20) that depend on "in-gear" state and AC clutch status.
>>>> I've never heard of a GM calibration with only 3 cells...
>>>> WopOnTour
>>>
>>> _______________________________________________
>>> Gmecm mailing list
>>> Gmecm at diy-efi.org
>>> http://lists.diy-efi.org/mailman/listinfo/gmecm
>> _______________________________________________
>> Gmecm mailing list
>> Gmecm at diy-efi.org
>> http://lists.diy-efi.org/mailman/listinfo/gmecm
>
> _______________________________________________
> Gmecm mailing list
> Gmecm at diy-efi.org
> http://lists.diy-efi.org/mailman/listinfo/gmecm
> 




More information about the Gmecm mailing list