What does it mean?
OBD II code P0650 is a generic code that is defined as “Malfunction indicator lamp (MIL) -circuit malfunction”, and is set when the PCM (Powertrain Control Module) or any other supporting controller in the CAN (Controller Area Network) bus system detects a problem in the MIL (Malfunction Indicator Lamp) itself, or in its control circuit.
Note that while “MIL” usually refers to the “CHECK ENGINE”, or “SERVICE ENGINE SOON” lamp, code P0650 can also apply to other warning lights on some applications. In practice, warning lights in vehicles serve to warn the driver that something is wrong, or something is in the process of going wrong in one or more of the hundreds, if not thousands of circuits that control virtually every aspect of a vehicle’s operation.
Connecting all of these circuits are controllers that receive data from dozens of sensors around the vehicle through still more circuits.
Moreover, all controllers (control modules), of which there can be as many as 30 or sometimes more on a high-end application, are interconnected via yet more circuits that are all in their turn interconnected through the CAN (Controller Area Network) bus system, with the PCM serving as the “clearing house”, or central processing unit that ultimately controls and/or monitors the operation of all other controllers, which include, but are not limited to the- fuel control module alternative fuel control module body control module ABS control module instrument panel control module fuel injection control module turbo control module anti-theft module cruise control module traction control module proximity alert module, and the climate control module.
We need not delve into the complexities of the CAN system here, beyond saying that all control units are connected by it, and that it allows all controllers to communicate with each other, sometimes without involving the PCM, although the PCM is involved in most communications that go through the CAN bus system. An example of a typical information exchange would be when the PCM receives a signal from say, the vehicle speed sensor.
This data is forwarded to all other controllers that use this information to perform other, but related tasks, such as the cruise control module for the purpose of monitoring/controlling the vehicles’ speed, and the ABS controller for the purposes of arming the traction, and stability control systems in conjunction with the wheel speed sensors.
The above example may be an oversimplification, but it serves to illustrate the point that effective communication between all affected controllers is crucially important for the safe operation of a vehicle. Thus, should a malfunction occur anywhere between the controllers that are involved in the above example, the fault will be detected by the controller in whose “jurisdiction” the fault occurred, but it may be detected by one or more other controllers as well.
Regardless of which controller detected the fault though, the fault data will be forwarded the PCM, which will set the relevant codes, which may or may not illuminate a warning light. However, to complicate matters, many controllers have the ability to set fault codes as well, and in a fully functional MIL system, the relevant warning lights will be illuminated when a fault occurs, depending on the fault, and the number of failure cycles required before a warning light illuminates.
If however, the dedicated MIL control circuits of either the PCM or any other controller are affected by a failure or malfunction, the PCM will be made aware of that fact, and it will set code P0650 specifically to indicate that there is a problem/failure/malfunction in the MIL circuits of a controller, as opposed to indicating a fault that affects the operation of the vehicle. The image below shows a code reader displaying code P0650.
In this image, the relevant code is circled in black for clarity, but note that even though this professional-grade scanner displays a sub code (04), it does not display