A recent inquiry via Facebook introduced the notion of “data” being transmitted along a PWM signal wire when fault conditions occur.
As we know, PWM is used to control a variety of actuators across numerous control systems; a summary of PWM control can be found here https://www.picoauto.com/library/traini ... duty-cycle
Below we take a look at the PWM signal responsible for controlling the speed of a BMW F31 Cooling Fan.
In terms of wiring to the Cooling Fan Assembly (with integrated control unit) it could not be simpler, we have
• A power supply from a “Cut Out Relay”
• A chassis ground wire
• A PWM signal wire which travels between the Cooling Fan Assembly & the Engine ECU
The Engine ECU generates the applicable PWM signal which is interpreted by the Cooling Fan Assembly and translated into the relevant control of current for the Brushless Cooling Fan motor (BLDC Motor)
Note: as current increases to the cooling fan motor the cooling fan speed will increase in proportion, so generating additional airflow across the radiator assemblies. The following forum post will help here with BLDC Motor control viewtopic.php?p=100521#p100521
Below we have captured a “Function Test” procedure using a Scan Tool to drive the cooling fan at top speed. Here we monitor the current flow not only into the Cooling Fan Motor/Controller Assembly, but also via the PWM signal wire using a current clamp and a 0.1 Ohm resister placed in series with the PWM wiring (See channels A, D & Math Channel D/0.1)
Why monitor current through the PWM signal wire and why use a 0.1 Ohm resister?
Monitoring current will help understand how the circuit operates under normal, short circuit and open fault conditions so allowing for a clearer understanding of component functionality and fault condition.
Whilst a current clamp performs reasonably well at very low current levels (minimum 5 mA) using the 0.1 Ohm resister (volt drop method) removes the variables of drift and offset we have discussed at length here viewtopic.php?p=96541#p96541
If we move back one buffer from image 1 above, we can see the precise time the Engine ECU increased the negative PWM signal to its maximum value of 93% as a result of Scan Tool intervention
Note the change in current flow and direction in the PWM signal as the negative duty increases from 7.3% to 93%. Note also how the cooling fan motor current is progressively increased and does not display the dramatic inrush current we see with typical DC motors thanks to BLDC motor control. Such a progressive cooling fan start up sequence not only prolongs the life of the circuit & components, but also limits the loading on the alternator so improving fuel economy whilst reducing emissions. (It’s a win win)
To recap here, using data from the righthand viewport above:
Cooling fan off:
• PWM Signal 7%, Cooling fan controller standby mode
• PWM current flow + 6.5 mA, current flow from Engine ECU to Cooling fan controller
Cooling fan max speed:
• PWM Signal 93%, Cooling fan controller drives fan at maximum speed
• PWM current flow – 9.2 mA, current flow from Cooling fan controller to Engine ECU
Some additional information regarding typical PWM negative duty values for fan speed control:
• PWM Signal 11%, Cooling fan controller drives fan at minimum speed (This is 33% of fan motor rated speed)
• PWM Signal 97%, Instruction for self-diagnosis of Cooling fan controller
• PWM Signal fan speed control therefore resides between 11% & 93% negative duty
Be aware; where the cooling fan may be inoperative and a PWM signal is present, it does not indicate the fan assembly/controller is faulty. To qualify the PWM signal, use a negative duty math channel to reveal the intention and control status of the cooling fan circuit based on the acquired percentage values listed above.
For the creation of a negative duty math channel the following link will help topic10051.html for PicoScope 6 and here viewtopic.php?p=100694#p100694 for access to PicoScope 7 math channels
Moving on now to PWM wiring faults, below we have the PWM signal wire momentarily open circuit. Channel C test lead remains connected to the PWM wire (ref to ground) from the Engine ECU before the open circuit.
Note how the PWM negative duty math channel has increased to nearly 100%! This is not an instruction from the Engine ECU for self-diagnosis of Cooling Fan Controller (mentioned earlier @ 97%) as the Engine ECU continues to generate a negative duty of approx. 17% with reduced amplitude from 0 V to 3.6 V
Why has the math channel increased to almost 100%?
The math channel is looking for crossing point midway between 0 V & 14.12 V, however the voltage has momentarily remained below this mid-point and so interpreted as an increasing negative duty. If the voltage were to remain between 0 V & 3.64 V (as it does during the open circuit of the PWM wire) the math channel would begin to recalibrate the mid-point and represent the appropriate negative duty value
Over and above the anomaly with the negative duty math channel, look at the PWM signal shortly after the open circuit is rectified, note how it appears to include additional data!
On closer examination below, you would be forgiven for mistakenly thinking this waveform was a network data stream, perhaps it is between Engine ECU and Fan Controller?
Note above how the current flow appears stable in the PWM wire during the open circuit, this indicates no current flow/activity given the circuit is no longer complete between the Engine ECU and Fan Controller. The signal rulers placed at the min and max points of the math channel (D/0.1) indicate a switching current flow between 13.21 mA and -155 µA with the PWM wire closed. When open, the value returns to a fixed 13.21 mA which should be considered as 0 A (no current flow/activity through the in line 0.1 Ohm resister) allowing for an offset error of channel D.
Why should 13.21 mA be considered as 0 A?
If channel D is not reading absolute 0 V across the resister during the open circuit event of the PWM wire, the math channel will of course display a current value. In the scenario above, 13.31 mA x 0.1 Ohms = 1.3 mV. Such a low voltage (1.3 mV) is most probably the effects of ambient noise about the engine bay detected by channel D test lead across the 0.1 Ohm resister.
To restore the PWM signal to a conventional duty style signal, the fault code “24F400 Electric Fan Open Circuit” generated by the open PWM signal wire was erased.
Next we have the PWM signal wire shorted to ground; the current clamp arrow (connected to channel A) points towards ground indicating the current flow via the PWM wire from the Engine ECU to chassis ground
Once again, note below how the PWM signal carries additional data after the short cicriut (S/C) has been rectified.
Below we compare the structure of the PWM signal (using the reference waveform feature) in relation to the “short & open” fault conditions; note how they differ suggesting a form of communication over the PWM signal between the Engine ECU and Fan Controller
The PWM wire S/C to ground generated the DTC “241800 Electric Fan Short to Ground”, however, to restore the PWM to a conventional style signal did not require the fault code erasing; the signal returned to normal shortly after rectifying the S/C
So what are the benefits of the data above?
Capturing PWM signals with the scope not only allows for graphing of data using a negative duty math channel, but also reveals the structure of the PWM and so the hidden content/data within. At this stage, more research is required into the varying PWM formations, for now however, we have learned there is additional information (contained within PWM signals) we can use for diagnostic evidence or recognition of previous or pending errors.
Looking at the capture below we can see the behavior of current within the PWM wire during a short circuit to ground.
Note how current continues to flow via the PWM wire from the Engine ECU to ground during the S/C at an identical duty cycle prior to the S/C event! Measuring just the voltage of the PWM signal at this point in time would reveal no duty signal (0 V)! However, measuring voltage & current reveals the Engine ECU is indeed attempting to control the cooling fan and for current to flow there must be a voltage differential, 0 V is therefore not an open circuit in this scenario.
There is more research to be done here as ever but I hope this helps in the interim
A few years ago it was quite an eye opener when I discovered that a single wire from an MAF could signal both Intake Air Temp & Air Mass Values without using data. They simply varied both Duty for one value & Frequency for the other within the PWM signal.
Very cunning !
Years ago the ECT on Vauxhall's (maybe others) would have xV Reference Voltage when cold then as it warmed up the Reference Voltage would Increase. This sensor is documented very nicely in Pico Guided Tests.
So I guess it should be no surprise that a straight forward PWM to run a Fan can revert to a data packets once a fault is detected, A little bit of electronics wizardry in the controller and the fan module would be all that it needs.
BUT - How does it know a fault has occurred from a pure PWM output ??? My guess is Current Monitoring ??
Is this documented within the Dealer Documentation, Ista, WDS etc ? Or does it just deliver a DTC and Guided Procedure.
As mere mortals, perhaps they (BMW) think we wouldn't understand but I cant help but wonder why they didn't make the whole thing LIN or SENT ?
Anyway Steve, a great bit of work there, thank you for sharing ! I'm so sure it will save many of us sessions of hair pulling and mental health issues !!! Luck for me only one applies.