Error Codes, States and Conditions
#1
Race Director
Thread Starter
Error Codes, States and Conditions
I have put together a web page with various states and the conditions necessary to attain them.
There is also a list of the various error codes (for my '86 -- probably applies to all 1227165 ECM cars, 1986 - 1989) and the parameters required to set them. I found many conflicts between the FSM and the firmware in the EPROM (mostly how long a condition is required to exist). The firmware always wins.
Some error codes have two entirely different functions but use the same number, so I have broken them down into "A" and "B" versions. This idea came from the originally posted disassembly.
The firmware converts the TPS output to percentage and then uses that everywhere. I haven't looked at the code for a while so I don't remember exactly how TPS voltage relates to TPS %, so those parameters are kinda vague and probably incorrect. Obviously the TPS voltage is much more useful for troubleshooting purposes.
The biggest mystery for me is LIMP mode. I have never seen a definitive list of exactly what conditions will cause the ECM to go into LIMP mode. The LIMP signal only connects to the microcontroller and the FMD (Fuel Modeling Device). There is no code in the firmware to handle LIMP mode, so my guess is that the FMD commands LIMP and disables the microcontroller so it can take over running the engine using the MEMCAL resistor networks. The FMD has 52 pins, so it has lots of inputs and outputs that could put it in LIMP mode. The pin numbers and names are here:
http://home.earthlink.net/~cliff_har...D_Pinouts.html
I haven't finished this yet, so there are lots of unknown parameters...
Input welcome.
http://home.earthlink.net/~cliff_har...onditions.html
[EDIT] I forgot that the \LIMP signal also goes to the voltage regulator/supervisor chip. Bob Rauscher speculated that a battery voltage lower than 10 volts would put the ECM into Limp mode, so maybe the signal originates in this chip. [/EDIT]
There is also a list of the various error codes (for my '86 -- probably applies to all 1227165 ECM cars, 1986 - 1989) and the parameters required to set them. I found many conflicts between the FSM and the firmware in the EPROM (mostly how long a condition is required to exist). The firmware always wins.
Some error codes have two entirely different functions but use the same number, so I have broken them down into "A" and "B" versions. This idea came from the originally posted disassembly.
The firmware converts the TPS output to percentage and then uses that everywhere. I haven't looked at the code for a while so I don't remember exactly how TPS voltage relates to TPS %, so those parameters are kinda vague and probably incorrect. Obviously the TPS voltage is much more useful for troubleshooting purposes.
The biggest mystery for me is LIMP mode. I have never seen a definitive list of exactly what conditions will cause the ECM to go into LIMP mode. The LIMP signal only connects to the microcontroller and the FMD (Fuel Modeling Device). There is no code in the firmware to handle LIMP mode, so my guess is that the FMD commands LIMP and disables the microcontroller so it can take over running the engine using the MEMCAL resistor networks. The FMD has 52 pins, so it has lots of inputs and outputs that could put it in LIMP mode. The pin numbers and names are here:
http://home.earthlink.net/~cliff_har...D_Pinouts.html
I haven't finished this yet, so there are lots of unknown parameters...
Input welcome.
http://home.earthlink.net/~cliff_har...onditions.html
[EDIT] I forgot that the \LIMP signal also goes to the voltage regulator/supervisor chip. Bob Rauscher speculated that a battery voltage lower than 10 volts would put the ECM into Limp mode, so maybe the signal originates in this chip. [/EDIT]
Last edited by Cliff Harris; 07-18-2013 at 01:05 AM. Reason: Added Bob Rauscher's theory.
#4
Race Director
Thread Starter
I collected info from multiple places over the years. The original source was a series of what were called hacs (for the .hac file extension). They were disassemblies of the binary files extracted from the EPROMs. The original author's name is lost in the mists of time -- he didn't put his name in the hacs. I believe he hosted the files on his web site so probably didn't see the need to put his name in there. I believe it was Ward Spoonemore ("ECMGUY") who did the original work with help from Bruce "Grumpy" Plecan, but both of them are gone so we can't ask them. Most of the web sites from those days (mid 1990s) are either gone or have a lot of dead links.
The original hac was copied multiple times and used as a guide to comment other hacs of other ECM firmware. The problem with this is that the errors were replicated and spread far and wide. For example, the code that checks the frequency of the signal from the VATS module was backwards and had the wrong frequencies listed.
I spent about 6 months of intense study on the hac for the BUA firmware in my 1986. There are still areas I want to look at but I got burned out and stopped about 1-1/2 years ago. I'm just now starting to get back into this (retired, so I have a lot more time available).
I posted the results of my investigations here (lots of highly geeky info):
http://home.earthlink.net/~cliff_har...5/BUA/BUA.html
The original hac was copied multiple times and used as a guide to comment other hacs of other ECM firmware. The problem with this is that the errors were replicated and spread far and wide. For example, the code that checks the frequency of the signal from the VATS module was backwards and had the wrong frequencies listed.
I spent about 6 months of intense study on the hac for the BUA firmware in my 1986. There are still areas I want to look at but I got burned out and stopped about 1-1/2 years ago. I'm just now starting to get back into this (retired, so I have a lot more time available).
I posted the results of my investigations here (lots of highly geeky info):
http://home.earthlink.net/~cliff_har...5/BUA/BUA.html
Last edited by Cliff Harris; 07-16-2013 at 08:57 PM.