CEM Bulb Failure Threshold Testing

I thought it might be useful to determine when exactly the Volvo P1 CEM decides that a bulb has failed, and what the behavior is at that threshold. As it turns out, the threshold is 2.0A, or about 25W, meaning a 5.0Ω resistor for an error-free relay harness.

CEM at 25W load and no error
Loaded to 25W, and no error.

To work this out, I  needed a way to try many different wattage bulbs, or better yet, a change variable wattage – also known as a dummy load. I had an 15o ohm 50W Soviet-surplus rheostat and some 3.9 ohm 75W wire wound resistors (full parts list below), so it didn’t take too much to throw a quick and dirty build together.

Build Details

The Dummy Load is housed in a compact enclosure1 that is set up to provide air flow through the rheostat and power resistor – both which intake from the front and exhaust through the 40mm (1.5″) fan on the back.

headlight variable dummy load
Assembled variable dummy load for headlight circuitry testing

The shunt it mounted to the top of the enclosure. It is a ground-side shunt so one of the terminals is in direct contact with the case (grounded), the other is isolated from it by a teflon strip, a teflon pass-through spacer, and a teflon washer (all cut from the same PTFE sheet) and connects to the resistance stack. There is a switch to disconnect the load entirely, but leave the meter powered up.

headlight testing dummy load internals
Inside the dummy load, showing the power terminals, 100A shunt, power switch, 1.5″ fan, 150 ohm rheostat, and bourns 3.9 ohm wire-wound resistor.

The fan is annoyingly loud at full bore (13000RPM) so I connected it across the 3.9 ohm resistor to act sort of as a fan controller – the higher the voltage drop across that resistor, the faster the fan goes. When drawing less than 15 watts or so, the fan is off completely. It ramps up from there to maximum speed when the rheostat bottoms out near 50W.

dummy load system diagram
System diagram of the dummy load.

If I were to build it again, I would probably have used a binary fixed resistance array2 or a large bipolar transistor and a log pot instead – I was going one winding at a time near the relevant wattages which made it very difficult to hit the target load.3.

Parts List

Testing Procedure

Testing was pretty straight forward, I crimped a 9005 onto 6′ of 18AWG (should have used bigger in hindsight) and ran it from the driver side HID power output connector to the dummy load.

dummy load connection
Connecting the dummy load to the headlight.

Tested with the engine off (PWM duty cycle = 100%), the engine on, and high beams on (which slightly reduces the voltage at the CEM, increasing the PWM duty cycle).

I found that the CEM reliably reports bulb failure when the current draw is less than 1.85A (about 23W).

2005 S40 bulb failure low beam at 1.85 amps draw
2005 S40 shows a “bulb failure low beam” message at 1.85 amps draw

What is fascinating was what happens between 1.85 – 2.0A (23-25W) – the bulb failure message blinks on and off randomly, probably as the electrical load at the CEM changes. Revving the engine slightly would usually turn the message off, while the AC compressor would kick it on. There is about a 1 second lag between the wattage change and the error message, so moving the knob back and forth slightly I was able to average 20W but keep the light off.

Fortunately, the PWM duty cycle is not modified when the CEM decides a bulb is out. Also, the current draw is not monitored when the DRL program is active!


  1. The enclosure was too small which made it much harder to construct. I should have ordered a bigger one.
  2. A binary resistor array would have 8 switches each with a resistor, all in parallel. Each switch represents a bit, e.g. +0.25W, +0.5W, +1W, +2W, +4W, +8W, +16W, and +32W; the problem with this is it is difficult to find such resistor values, which at 12V would be 576Ω, 288Ω, 144Ω, 72Ω, 36Ω, 18Ω, 9Ω, and 4.5Ω, respectively. They would likely need to be special ordered at significant cost. The advantage is that such an array could provide a linear wattage increment from 0-64W.
  3. By the end, I soldered in about 100 ohms worth of extra power resistors across the pot to reduce the range slightly near the bottom