AUTO-410 · Lesson 12 of 12 · 22 min

Capstone: diagnosing a reduced-range EV and a hybrid warning light

The last two weeks of Kiran's term bring two jobs that use everything in the course. Dr. Singh's hatchback has lost more range this winter than last, and it now charges slowly at fast chargers. Ines Moreau's hybrid has its master warning light on and a message to check the hybrid system. Marty assigns both to Kiran as the lead technician, now qualified, with himself as the second qualified person and observer. "Write it up the way you'd write it for a customer and for the next technician," he says. "Complaint, cause, correction, and every measurement in between."

This capstone follows both diagnoses from the complaint to the verified repair, using the strategy from the diagnosis lesson and the safety procedures from the start of the course.

Job 1: the reduced-range EV

Verify the complaint and gather information

Dr. Singh's complaint is specific. Last January, with the same winter tires and the same commute, her car used about 23.8 kWh per 100 km (38.3 kWh per 100 miles), as Kiran recorded in the climate control course. This January it is using 31 kWh per 100 km (50 kWh per 100 miles). She preconditions the car every morning while it is plugged in, as Kiran advised in December, and the cabin is warm when she leaves, but the dashboard still shows limited regeneration for the first 15 km (10 miles). On a recent trip to Banff (Vail) she stopped at a DC fast charger and the car charged at barely 30 kilowatts for half an hour.

Kiran starts by putting numbers on the complaint. The vehicle's own energy history, downloaded with the scan tool, shows the consumption by day; the outside temperatures come from the weather records for the same days.

# Putting numbers on the range complaint
usable_kwh = 59.5 * 0.94                  # state of health 93 percent, usable share 94 percent
cases = [("mild weather, any year", 17.0), ("last January (normal winter)", 23.8), ("this January", 31.0)]
for name, use in cases:
    print(f"{name:30}: {use} kWh/100 km -> range about {usable_kwh / use * 100:4.0f} km")
extra = (31.0 - 23.8) / 23.8 * 100
print(f"this January uses {extra:.0f} percent more energy than last January at similar temperatures")
Output
mild weather, any year        : 17.0 kWh/100 km -> range about  329 km
last January (normal winter)  : 23.8 kWh/100 km -> range about  235 km
this January                  : 31.0 kWh/100 km -> range about  180 km
this January uses 30 percent more energy than last January at similar temperatures

A loss of range in winter is normal; a loss 30 percent beyond last winter's, with the same car, tires and routine, is not. The battery's state of health was 93 percent in the autumn and has not changed, so the battery has not suddenly aged. Something is using energy that it did not use last year, or something is stopping the battery from working at its best.

Check the basics and scan

Kiran checks the basics first. The tire pressures are 200 kPa (29 psi) cold against a placard of 250 kPa (36 psi), which would cost a few percent, and she corrects them. The brakes turn freely and none drags. The 12 volt battery is healthy. The heat pump's data match the climate control course's checks: it runs, and its pressures and temperatures are normal for the conditions. The scan shows no current codes, but the thermal management module has a stored history code for a coolant valve position, recorded several times since December and cleared each time on its own.

That code points somewhere. Dr. Singh's car uses a single multi-way coolant valve to route coolant among the battery's plates, the drive unit, the heat pump's heat exchanger and the high-voltage coolant heater. In preconditioning, the valve should send the heater's hot coolant through the battery plates. Kiran plugs the car into the shop's Level 2 station, starts preconditioning from the scan tool and records the thermal system's data for 30 minutes.

# Preconditioning recording: is the heated coolant reaching the battery?
rows = [  # minutes, valve command, valve feedback, heater kW, heater outlet C, battery inlet C, battery cells C
    (0, 70, 22, 0.0, -8.0, -8.5, -9.0), (5, 70, 22, 5.0, 31.0, -6.0, -8.8), (10, 70, 22, 5.0, 46.0, -4.5, -8.4),
    (20, 70, 22, 5.0, 52.0, -3.0, -7.6), (30, 70, 22, 5.0, 54.0, -2.0, -6.9)
]
for m, cmd, fb, kw, out, inlet, cell in rows:
    note = "  <- valve not following command" if abs(cmd - fb) > 10 else ""
    print(f"{m:3} min: valve cmd {cmd:3} percent, feedback {fb:3} percent, heater {kw:.1f} kW, outlet {out:5.1f}, battery inlet {inlet:5.1f}, cells {cell:5.1f}{note}")
Output
  0 min: valve cmd  70 percent, feedback  22 percent, heater 0.0 kW, outlet  -8.0, battery inlet  -8.5, cells  -9.0  <- valve not following command
  5 min: valve cmd  70 percent, feedback  22 percent, heater 5.0 kW, outlet  31.0, battery inlet  -6.0, cells  -8.8  <- valve not following command
 10 min: valve cmd  70 percent, feedback  22 percent, heater 5.0 kW, outlet  46.0, battery inlet  -4.5, cells  -8.4  <- valve not following command
 20 min: valve cmd  70 percent, feedback  22 percent, heater 5.0 kW, outlet  52.0, battery inlet  -3.0, cells  -7.6  <- valve not following command
 30 min: valve cmd  70 percent, feedback  22 percent, heater 5.0 kW, outlet  54.0, battery inlet  -2.0, cells  -6.9  <- valve not following command

The data tell the story. The heater makes its full 5 kilowatts and its outlet gets hot, but the coolant arriving at the battery barely warms, and in half an hour the cells rise only about 2 °C (4 °F). The valve's commanded position is 70 percent toward the battery loop; its feedback stays at 22 percent, the position it would take to send the heat mainly to the cabin. The valve is stuck.

Form a theory and test it

Kiran's theory: the coolant valve or its actuator has seized near the cabin-heating position. That explains every symptom. Every morning, the heater has been warming the cabin and the drive unit loop instead of the battery, so the battery starts each trip at the outside temperature. A cold battery has higher internal resistance, which wastes energy as heat inside the cells, and limits regeneration, so less braking energy comes back. The energy used to keep heating a cabin that was already warm adds to the consumption. And a cold battery accepts only a small charging current, which is why the fast charger stayed near 30 kilowatts.

The test must be able to prove the theory wrong. Kiran commands the valve through its full range with the scan tool's output test. The feedback does not move. She then checks the actuator's 12 volt circuit at its connector, a low-voltage job that does not require de-energizing: power, ground and the command signal are all present and change as she commands the valve, and the feedback circuit reads correctly through the wiring. With the actuator unplugged and removed from the valve, its motor turns freely when powered; the valve's own shaft, turned by hand with the specified adapter, is stiff and stops at about a quarter of its travel. The actuator is fine. The valve body is seized.

# What a stuck valve costs: energy to warm the battery, and charging power with a cold versus warm battery
pack_mass = 380.0                  # kg
cp_pack = 0.95                     # kJ per kg per degree, approximate for a pack
warm_up = 15.0                     # degrees of warming the preconditioning should achieve
energy_kwh = pack_mass * cp_pack * warm_up / 3600
heater_kw = 5.0
print(f"warming the pack by {warm_up:.0f} C needs about {energy_kwh:.1f} kWh: about {energy_kwh / heater_kw * 60:.0f} min of heater at full power")
for label, cell_c, accept_kw in [("cold pack, as found", -7, 30), ("warmed pack", 15, 110)]:
    minutes = 0.6 * 59.5 * 0.94 / accept_kw * 60
    print(f"{label:20}: accepts about {accept_kw} kW at a fast charger -> 20 to 80 percent in about {minutes:.0f} min")
Output
warming the pack by 15 C needs about 1.5 kWh: about 18 min of heater at full power
cold pack, as found : accepts about 30 kW at a fast charger -> 20 to 80 percent in about 67 min
warmed pack         : accepts about 110 kW at a fast charger -> 20 to 80 percent in about 18 min

Repair

The valve is on the battery and drive unit coolant loops, not on any high-voltage component, so the maker's procedure for replacing it does not require the high-voltage system to be de-energized. It does require the vehicle to be switched off, the key removed and the loops drained. Kiran follows it: she drains the coolant into a clean container, replaces the valve body with the maker's part, refits the actuator, refills with the specified coolant and runs the scan tool's bleeding routine, which cycles the valve and the pumps until the air is out of every loop. She then runs the valve's position learn, which teaches the module the new valve's end stops. The old valve, cut open, shows a crust of deposits on its rotor seal.

She also checks the coolant's condition and freeze protection, because deposits in a valve can come from contaminated or mixed coolant. The coolant tests correctly and its record shows only the factory fill; the maker's bulletin, which Kiran finds while ordering the part, lists the valve's seal as a known wear item on this model.

Verify the repair

The verification repeats the test that found the fault. With the car plugged in, the scan tool starts preconditioning. The valve's feedback now follows its command within a percent or two, the battery inlet coolant warms within five minutes, and the cells rise from −8 °C (18 °F) to +6 °C (43 °F) in about 40 minutes. The next morning, Dr. Singh drives to work with full regeneration from the first block. A week later, her energy history shows about 24.5 kWh per 100 km (39.4 kWh per 100 miles), within a few percent of last January. Kiran also takes the car to the nearby DC fast charger after a preconditioned drive: it charges at over 100 kilowatts from 20 percent.

Job 1 record.
ComplaintCauseCorrection
Range about 30 percent lower than last winter; slow DC fast charging; limited regeneration on cold morningsMulti-way coolant valve seized near the cabin-heating position, so preconditioning heated the cabin loop instead of the battery; tires also under-inflatedReplaced the valve body, refilled and bled the loops, ran the position learn; set tire pressures; verified battery warming, regeneration, consumption and charging power

Job 2: the hybrid warning light

Verify, gather and scan

Ines's hybrid comes in with its master warning light on and the message to check the hybrid system. It still drives, but the engine runs more than usual. The scan shows a current code for hybrid battery voltage system isolation fault, P0AA6, with freeze frame data showing the isolation resistance falling to a few hundred kilohms, while the battery management system's threshold for setting the code is higher. The code first set in October and has returned every few days since. Kiran asks Ines the question that solved the van's fault: has anything been done to the car recently? Ines remembers that last summer, before her trip to the lake, a quick-service shop recharged her air conditioning because it was blowing warm.

That detail matters. Ines's hybrid has an electric air conditioning compressor, driven by a high-voltage motor inside the compressor housing, as Kiran learned in the climate control course. The refrigerant and oil circulate through that motor, so the oil must be an electrically insulating type specified by the maker, usually a POE oil, never the PAG oil used in belt-driven compressors. Ordinary PAG oil conducts far more than POE oil, and even a small amount added to the system can lower the compressor motor's insulation resistance to the body.

Test and isolate

Kiran and Marty set up the bay, de-energize the hybrid by its maker's procedure, lock out the service plug, wait the specified ten minutes and verify zero voltage at the inverter test points, live-dead-live. The service information lists the components that may be insulation-tested and at what voltage, and the method: disconnect each component's high-voltage connector at the inverter or junction box, test the component and its cable to the body at 500 volts, and compare with the minimum.

# Hybrid isolation fault: insulation test of each disconnected component at 500 V
minimum_mohm = 3.0
results = {"motor-generator 1 and cable": 860.0, "motor-generator 2 and cable": 1150.0, "battery to inverter cables": 2400.0,
           "DC-DC converter": 320.0, "electric A/C compressor and cable": 0.42}
for part, mohm in results.items():
    verdict = "pass" if mohm >= minimum_mohm else "FAIL: below the maker's minimum"
    print(f"{part:34} {mohm:8.2f} Mohm  {verdict}")
worst = min(results, key=results.get)
print(f"leak located: {worst}")
Output
motor-generator 1 and cable          860.00 Mohm  pass
motor-generator 2 and cable         1150.00 Mohm  pass
battery to inverter cables          2400.00 Mohm  pass
DC-DC converter                      320.00 Mohm  pass
electric A/C compressor and cable      0.42 Mohm  FAIL: below the maker's minimum
leak located: electric A/C compressor and cable

Every component passes easily except the compressor, which reads less than half a megohm against a minimum of 3. To separate the compressor from its cable, Kiran tests the cable alone with the compressor end disconnected: it reads over 1,000 megohms. The leak is inside the compressor.

A refrigerant oil sample, taken from the system through the service port after the refrigerant is recovered, confirms the cause. Ridgeline's refrigerant identifier, used before recovery as the climate control course required, shows the refrigerant itself is pure. The oil sample is cloudy and its label test kit shows PAG oil mixed into the POE. The quick-service shop added oil of the wrong type during last summer's recharge.

Repair and verify

The maker's procedure for contaminated oil in an electric compressor system is a replacement compressor with its specified POE oil charge, a flush of the lines and heat exchangers with the approved flushing equipment, a new receiver-drier, and a full evacuation and recharge to the specified refrigerant weight, all done by a certified technician with recovery equipment and records, as the climate control course and the refrigerant rules require. The high-voltage connector is reconnected with the system still de-energized, its locks and interlock confirmed. Before re-energizing, Kiran insulation-tests the new compressor with its cable at 500 volts: over 900 megohms.

With the system re-energized, the warning light stays off, the battery management system reports isolation resistance in the megohms, and the air conditioning runs with normal pressures and outlet temperatures. Kiran drives the car for 40 minutes, runs the compressor continuously, and checks the isolation reading again, then once more after two days of Ines's rideshare shifts. It holds.

Job 2 record.
ComplaintCauseCorrection
Master warning light, check hybrid system message, engine running more than usualIsolation fault: electric A/C compressor's motor insulation degraded by PAG oil added during an outside rechargeReplaced the compressor with the specified POE oil, flushed the system, new receiver-drier, evacuated and recharged; insulation test passed; isolation verified over two days

Kiran's report for Ines explains the cause in plain words and recommends that any future air conditioning service be done by a shop that knows the car has an electric compressor. She also writes a note for the shop's own procedures: before any refrigerant service on a hybrid or electric vehicle, check the oil type on the under-hood label and use only the specified oil, with dedicated equipment that has not been used with PAG oil.

Writing it up

Both jobs end with the same kind of record, the one the diagnosis lesson described. Each lists the complaint as the customer described it and as measured; the information gathered, including the energy history and the outside repair; the checks of the basics; the codes and data; the theory and the test that could have proven it wrong; every high-voltage step with its times, people and measurements; the parts replaced and their part numbers; and the verification, done the same way the fault was found. Marty reads both, adds his signature under hers as the second qualified person and hands them back. "That's how you hand a car back," he says. "Anyone who opens this file next year will know exactly what we found and why."

Worked problem

Separating a component from its cable

An electric compressor and its cable together read 0.4 megohms to the body, against a minimum of 3 megohms. How can the technician tell whether the compressor or the cable is at fault?

Show solution
  1. With the system de-energized, disconnect the cable at the compressor.
  2. Insulation-test the cable alone: a reading above the minimum clears the cable.
  3. If the cable passes, the leak is inside the compressor.

Answer: Test the cable alone with the compressor disconnected; if the cable passes, the compressor is faulty.

Common mistakes

  • MistakeAccepting a large winter range loss as normal without comparing years.

    InsteadCompare with the same car's consumption at similar temperatures.

  • MistakeReplacing an actuator without checking the valve it drives.

    InsteadTest the actuator off the valve and turn the valve by hand.

  • MistakeRecharging an electric compressor system with PAG oil.

    InsteadUse only the maker's specified insulating oil and dedicated equipment.

  • MistakeRe-energizing without insulation-testing a replaced component.

    InsteadTest it before the system is switched back on.

  • MistakeVerifying a repair differently from how the fault was found.

    InsteadRepeat the test that showed the fault.

Summary and key terms

  • Put numbers on a range complaint: compare consumption with the same car's history at similar temperatures.
  • A battery that does not warm during preconditioning wastes energy, limits regeneration and charges slowly.
  • Thermal system data, valve command and feedback, and coolant temperatures locate a stuck valve.
  • An isolation fault is found by insulation-testing each disconnected component on a de-energized system.
  • Wrong oil in an electric compressor can cause an isolation fault.
  • Every high-voltage job is documented: complaint, cause, correction, measurements, people and times.
  • Verification repeats the test that found the fault.
Multi-way coolant valve
A valve that routes coolant among the battery, drive unit, heat pump and heater loops.
Position learn
A scan tool procedure that teaches a module a new actuator's end stops.
POE oil
Polyolester oil, an electrically insulating refrigerant oil used with electric compressors.
PAG oil
Polyalkylene glycol oil, used in belt-driven compressors; it must not be used in electric compressors unless specified.
Isolation fault
Leakage between the high-voltage system and the vehicle body below the allowed limit.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Why did Dr. Singh's car charge slowly at the fast charger?

    Show answer

    Its battery stayed cold because the coolant valve was not routing heat to it.

  2. What showed the valve was stuck?

    Show answer

    Its feedback stayed at 22 percent while the command was 70 percent.

  3. How did Kiran prove the compressor, not its cable, was leaking?

    Show answer

    She tested the cable alone and it passed.

  4. What caused the compressor's insulation to degrade?

    Show answer

    PAG oil added during an outside air conditioning recharge.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz