Lots of questions about Saturn PCMs

Gary A. Allen, Jr. gallen8 at attglobal.net
Sun Jan 28 06:17:52 GMT 2001


This is my first post to this discussion group.  Since I'm a newbie,
I'll
do a a self introduction and then ask my newbie questions.  I became
aware of this discussion group from a digest of postings from DIY-EFI
that started on 7 Feb 1999 and ended on 1 Jan 2000.  I am unaware of
what
has been posted here since 1 Jan 2000 (apologies in advance if my
questions
were recently answered or now considered off-topic).

My area of interest is OBD-II PCMs for the Saturn.  I own a 1996 Saturn
SL-I with a 5 speed transmission and a benchtop PCM that I pulled from a

junked 1999 Saturn station wagon that had an automatic transmission.
I communicate to the PCMs through my PC's RS-232 serial port using a
Multiplex Engineering J1850-VPW adapter that came with the GMTOOL
software purchased from CarComp Inc.  I also own a complete set of
GM factory service manuals for the 1996 Saturn.  I soon learned that
the engine parameters reported by GMTOOL were only a small subset of
what was listed in the GM service manuals.  I then began writing my
own scan tool software in the C programming language under DOS
(yesterday for the first time I got some of my software to work
[badly] under Linux).  I wrote my software based upon what I could
extract from GMTOOL (its binary database is encrypted), learn on the
Internet (downloadable codes for other scantool adapters) and from
the SAE HS-3000 handbook.  The HS-3000 handbook was the most useful
information source.  However I discovered that GM stuck to the SAE
standard
only when it was a "legislated" standard, i.e. SAE J1979.  Where ever
the SAE standard says "the manufacturer may optionally...", GM always
optioned to follow a proprietary standard.

I've since been able to write programs that call almost all of the PIDs
called
by GMTOOL.  My codes can convert the raw data for most of the legislated

PID responses to something understandable, i.e. degrees of advance,
volts,
Pascals, etc.  I have also written "battering ram" codes that call
long lists of GM proprietary PIDs which produce responses that I mostly
don't understand.  I only run these battering ram codes on my benchtop
PCM
(NEVER on my '96 Saturn).  My benchtop PCM has the following label:

-----------------------------
  21008768                            21023810
  AUTOMATIC             SERVICE NO.
  POWERTRAIN CONTROL MODULE
                       [bar code]
              *868768M172558G7J*
-----------------------------

I also pulled the main wiring harness from the same '99 Saturn wreck
that
I got the PCM from.  I power the PCM with an old PC/AT power supply and
have multiple switches and variable resistors attached to the wiring
harness to fool the PCM into thinking it is still attached to a working
Saturn (I also use these to trigger DTCs).  What I have learned about
the
Saturn PCM is almost insignificant compared to what I do NOT know.  For
example I am not sure what the part number is for my benchtop PCM.
I know if I send the PCM a Mode 0x3C PID 0x09 then it will come back
with
0x21008768 which also appears on the PCM's label as shown above.  Is
0x21008768 the part number or the specific PCM's unique serial number?
I have not found a PID that will generate 0x21023810 which also appears
on the label.  However I can get other numbers that are in the same
format:

Mode 0x3C PID 0x08 ---> 0x21008760
Mode 0x3C PID 0x09 ---> 0x21008768 [appears on PCM label shown above]
Mode 0x3C PID 0x0A ---> 0x21008758
Mode 0x3C PID 0x0B ---> 0x21008772
Mode 0x3C PID 0x14 ---> 0x21024625

The Mode 0x3C PIDs are interesting.  For example I have found that
PIDs 0x01 - 0x04 will give me the VIN number.  PID 0x62 seems to
be the number of kilometers/miles since the PCM was last cleared,
I have not yet figured out the conversion from the raw hex to miles
or kilometers.  Does anyone know how to do that?  PID 0x63 and 0x70
produce these interesting bit patterns that change everytime the car
is run.  However I am clueless as to what they mean.

Other things that baffle me are conversion factors.  For example GMTOOL
says that Mode 0x22 [2 byte PID] 0x11 0x9D is barometric pressure in
"inches of mercury".  What conversion formula do I use to convert the
raw hex from the PCM to "inches of mercury"?

Ultimately I would like to access my benchtop PCM's flash memory,
download its executable code, disassemble it, modify it and then reflash

the PCM's memory with the modified code.  Needless to say, I have no
clue how to do this.  Does anyone out there have a clue?  I tried
playing with Mode 0x27 "Security Access Mode" as described in "Enhanced
E/E diagnostic test modes - SAE J2190".  My PCM should have gone into a
10 second time delay when I gave it two bad password attempts but it
didn't.  It only behaved approximately as described in J2190.  I suspect

the security access provided by Mode 0x27 is actually a decoy with
actual access provided by some undocumented mode.  A disturbing Mode
command that I found with my battering ram code was one that crashed(?)
my PCM:  Modes 0xA1 and 0xE1 [Do NOT run either of these Modes on a car
that you are actually driving!!]  If I invoked either of those commands,

my benchtop PCM became immediately unresponsive and remained silent
until
I cycled its power.  Anyone know what those Modes are supposed to be
doing (other than act as booby traps)?

Finally does anyone know what the processor is for my PCM?  Somewhere I
read that it is the Motorola MC68332.  However after I opened the PCM
up, I found none of the chips had the correct pinout for a MC68332.

Thanks in advance for whatever help you can provide!

Gary Allen





----------------------------------------------------------------------------
To unsubscribe from gmecm, send "unsubscribe gmecm" (without the quotes)
in the body of a message (not the subject) to majordomo at lists.diy-efi.org




More information about the Gmecm mailing list