LEMON Manuals: Even more car manuals for everyone: 1960-2025
Home >> Saab >> 2004 >> 9-3 Linear, Automatic >> Repair and Diagnosis >> Electrical >> Body Electrical >> Control Module >> Fault Diagnosis, General >> On-Board Diagnostics >> Internal control module faults
April 5, 2026: LEMON Manuals is launched! Read the announcement.

Internal control module faults

Upon starting, the processor (CPU) checks that the check sum is the right one for the ROM. This value is written to the RAM and then read back again to check that the value is the same as the original one.

During operation, a check is carried out to ensure that the program executes certain routines.

See diagnostic trouble code P0601 for Trionic 8 by way of example.

  1. The ROM has to be correct as the program is stored there. An error in the program could cause the control module to activate an output in the wrong position or make entirely wrong decisions. The check sum is the sum of the program's entire code and is attached when the control module is programmed. When the control module processor is woken, the entire program will be checked again. The check sum just calculated is compared with the programmed one, and these must be the same, otherwise diagnostic trouble code P0605 is generated.
  2. All bytes in the RAM are checked in connection with startup. One byte equals 8 bits, and the process writes 4 different bit patterns and reads them back. The values written and read must be the same. 4 different bit patterns are used because we want to be sure that bits do not infect one another.

    The table below shows an example of how an error is detected in a byte in the RAM:

    ERROR CONDITION

    Written Read Error (Yes/No)
    00000000 00000000 No
    11111111 11111111 No
    01010101 01010101 No
    10101010 10101011 Yes

    The error is that the second-last bit is infecting the last one with a one. This generates diagnostic trouble code P0604.

  3. "Dog Error" is short for "Watchdog Error". A check is carried out to ensure that the program passes certain program steps which are always run.