The Newage Subaru Impreza WRX ECU has a table of all DTCs (fault codes) by their numeric value. If you replace one of these with a different numeric value, the code is effectively turned off. This article assumes you are familiar with reading and reflashing ECUs and have already downloaded your ECU image.
Perhaps you are looking to defeat the annoying CEL codes after installing an Up-Pipe or Downpipe. If so these are the typical CEL codes you'll be interested in disabling:
- P0037 - Rear O2 Sensor Heater Control Circuit Low
- P0038 - Rear O2 Sensor Heater Control Circuit High
- P0137 - Rear O2 Sensor Low Voltage
- P0138 - Rear O2 Sensor High Voltage
- P0139 - Rear O2 Sensor Circuit Slow Response
- P0420 - Catalyst System Efficiency Below Threshold
- P0545 - Exhaust Gas Temperature Sensor Circuit Low
- P0546 - Exhaust Gas Temperature Sensor Circuit High
- P1301 - Misfire Detected (High Temperature Exhaust Gas)
- P1312 - Exhaust Gas Temperature Sensor Malfunction
- P1544 - Exhaust Gas Temperature Too High
The recommended way to disable your CEL codes is to use the OpenSource tool called RomRaider. This is described below. Additionally, if your ECU is not yet supported by RomRaider (if not please let them know!) there are also notes on how to do this manually using the HEX Editor function within the Shareware program called EcuEdit
CEL Fix using RomRaider
This artical assumes you have already downloaded your ROM from your ECU and have installed RomRaider.
Disabling CEL codes in RomRaider is easy. Open your ROM in RomRaider. With reference to the illustration below, select Diagnostic Trouble Codes from the tree view on left. Within that you'll find a (large) list of CEL codes.
To disable a CEL code, simply click on a CEL code from the tree e.g. P0420 - Catalyst System Efficiency Below Threshold and you'll be presented with an editor. The guys at RomRaider have made this real easy, so all you need to do is uncheck the box to disable it.
CEL fix made easy using RomRaider
Save your ROM from within RomRaider and now you're ready to upload your ROM back to your ECU.
CEL fix using EcuEdit
If your ECU ROM is not supported by RomRaider (described above) then the following, more advanced, procedure may be used to disable CEL codes.
This artical assumes you have already downloaded your ROM from your ECU and have installed EcuEdit.
Identifying CEL codes within ROM
Figure 1 below, illustrates a section of the fault code table from an ECU image dump of a MY03 Impreza 2.0 WRX (EURO).
Figure 1 – Fault Code Table In ECU
In the above figure we are only interested in rows with either 03, 04 or 05 in column zero. Starting from the highlighted row 24D0D, column zero indicates if this is a generic OBDII or a Subaru specific fault code (03 or 04 respectively). Column 1 and 2 is the fault code in Binary Coded Decimal (BCD) format. In this example we are looking at fault code P0420 – Catalyst System Efficiency Below Threshold. The next row 24D11 is fault code P0442 – EVAP Control System Leak Detected (Small Leak).
Disable a fault code
In the above figure you will see a number of rows with the values ’05 00 00’. This appears to be Subaru’s way of allowing fault codes to be ignored. To disable a fault code simply replace it with ’05 00 00’ e.g. for P0420 replace ’03 04 20’ with ’05 00 00’. This change has been applied in Figure 2 below. Now the ECU won't raise a CEL for that.
Figure 2 – Altered Fault Code Table In ECU
Information Source: OpenECU.org, thanks to Colby and the OpenECU community for making this possible.
Disabling other fault codes
If you want to disable other DTCs follow Steps 1-2 with one minor change. When you search in Hex Viewer, leave the max count at '4'. Put the DTC value you want to disable in the 01 and 02 spot but try two searches. One which has '03' as the value for 00, and one which has '04'.