Error Code masking


T/GLHS and T/LM

Not done yet.

T/SMEC and T/SBEC (and later)

Error code “masking” is implemented differently in the SMEC/SBEC than in the earlier code. Instead of masking bits for the individual codes, an internal code is used to mask up to 7 different code bytes. This is because there are in some cases 2 or more different diagnostic methods to set a given code. The mask bytes are used to prevent the code being set by a specific diagnostic routine.

The code bytes are as follows:

Code #CodeOffset (masking code)
61Baro sensor open or shorted31
62EMR mileage cannot be stored in EEPROM30
63Controller cannot write to EEPROM2f
44Loss of FJ208,2c
45Nothing (overboost)07
46Battery Volts High06
47Battery Volts Low05
51Lean condition04
52Rich Condition03,2d
53Prom Checksum02
54Distributor Sync01
33AC Cutout Relay10
34Speed Ctl Solenoid0f
35Radiator Fan Relay0e
36Wastegate Solenoid0d
37Barometric Read Solenoid0c
41Charging System0b
42Auto Shutdown Relay0a
43Ignition Coil Control09,28,29,2b
22Coolant Temp Sensor1e,1f
23Charge Temp Sensor1c,1d
24Throttle Position1a,1b
25AIS Motor19
26Injector Current Limit Not Achieved16,17,18
27Injector Driver interface13,14,15
31Purge Solenoid12
32Exh Gas Recirc Solenoid11,2e
11Engine Not Cranked Since Battery Disconnected28
12Memory Standby Power Lost00
13MAP Pneumatic26,27
14MAP Electrical24,25
15Vehicle Distance Sensor23
16Battery Voltage Sense22
17Engine Running Too Cool (thermostat)21
21Oxygen Sensor20

The last byte MUST be 0x00, otherwise the code will result in an error. I think the original intent was to allow the factory calibrators to mask specific internal codes to try and debug errors. Previously, only the final error code could be masked - making the cause unclear in the case where multiple internal codes set the same error code.

It should be possible to increase the size of the list by adding additional code bytes after “FLTMSK7_ErrorBitsMask7”. Just make sure that the byte after the last one in the list remains 0x00. The mask checking routine looks for this to mark the end of the list. Also, if the list is too long, it may cause lack of space for other items. So, be careful if adding to this list.