I don't have the halogen projectors anymore.
Did you cut off the connectors? If it's actually reproducible with the light sensor you don't need to drive around with them. Hanging out of the side of the housing is ok (just don't let the envelope touch plastic lol).
a) Indeed, no BOW. No indication whatsoever that the lights had failed, but they were certainly off. More often than not they stop non-simultaneously. Any significance to that?
b) 2007, US spec, sort-of-facelift version (bigger side mirrors, different roof console, etc)
Since I have a 2005, I'm assuming that the CEM hardware didn't change with the facelift (according to VIDA, the main part number stays the same 31327215, but the alternate changes from 31254903 -> 31254749 & 31296881)... Usually a functional change breaking backwards compatibility will get a new primary part number. But there is obviously a software difference.
Each side is independently monitored so except for an "on" or "off" I wouldn't expect synchronization.
Been mulling over your lack of BOW. Just thinking out loud here so bear with me...
We know the system can detect both an open-circuit and low-load situation (normal burnt out bulb, relay harness triggers BOW), and the system can detect a short-circuit or overload condition (there is no fuse). There must be a voltage involved in the feedback loop, a differential shunt based system wouldn't be able to meet a spec like 13.0+0.2V.
It would be expensive and complex to have a two-error controller (current+voltage) in something like this, (not saying they didn't, but the odds are against it). So we are likely looking at a voltage-window controller sampling the output during the 'on' cycle of the PWM, essentially using the on-state resistance of the FET as the shunt. Too low an output voltage triggers the overload condition, too high an output voltage triggers the open-circuit condition.
What I'm having trouble with is the regulating 13.0V business. You need an integrating element, such as a capacitor or inductor, to get an average voltage error signal (feedback) from a PWM output suitable for a dedicated PWM regulator - once a warm, an incandescent filament is basically a fixed value resistor, and at 80Hz the parasitics are negligible. I see two possibilities: (a) there is an RC network before the ADC to integrate over several periods, or (b) there is no feedback and the PWM duty cycle is statically mapped to the absolute battery voltage (Vo = Vi * %d) which is already accurately measured by the CEM.
The more I think about it, the more sense (b) makes - lower component count, less finicky calibration, the way everything else in ECU is mapped. An integrating network would have a slow response time, potentially causing damage in a short circuit condition. It would be trivial to implement the map in a software addition after the hardware was designed/built, and I bet it's bit-banged rather than hardware PWM explaining the super low frequency. Some wise-arse Swede trying to extend everyone's bulb life. An 8-bit ADC would fit the bill perfectly, e.g. 25V / 256 = 0.1V which would allow for 13.0+0.2V regulation, and such hardware is ubiquitous in automotive control systems.
Now to correlate this theory with the observations:
-- Connecting the capacitor bank *without* a rectifying (series) diode produced a BOW and failed to ignite my ballast.
>> wild guess: voltage polled during the 'off' cycle to check for short-to-battery condition? It would be overly complex to code for this specific condition (given the map-based PWM duty cycle) but if the ADC is multiplexed between several inputs and polled at a constant rate by an ISR to update a set of "voltage registers" you'd have to account for the off cycle in case the sample was taken during it; eg. back in my embedded days I'd probably write
bulb_ok = (v < V_MAX) & ( (out_en) ^ (v < V_MIN) ); if only to confuse the new kids.
<< test using a bench supply hooked in place of the KBOWE, I'll try to do this over the weekend.
-- Connecting the capacitor bank *with* the rectifying diode allows the ballast to work perfectly with PWM (in many cases except yours).
>> If the previous guess is correct, this is consistent. 0v during the 'off' cycle, a loaded voltage during the 'on' cycle.
<< This would be tested the same as above.
-- During 'night' time, your KBOWE works perfectly, but there is consistent failure during 'day' time - based on twilight sensor reading.
>> assumption: the twilight sensor turns on/off your DRL PWM. This is how *I* would have coded it - to provide maximum brightness at night - but it's not how my car (or many of the others who have duplicated my tests) works.
<< hard to definitively confirm without a o'scope, but a DMM with frequency would be a good start
-- When your DRLs are on (assuming this is what's happening) the ballasts ignite but shortly thereafter enter shutdown mode; yet there is *no* BOW.
>> So something is triggering your ballast's protection mode, most likely under voltage. The under-volt monitoring is usually disabled for the first few seconds to account for the extra current draw during startup & warmup. On an brownout shutdown, aftermarket ballasts will typically wait for a full 'off' before retrying, so a fair guess is the voltage dips below 9V but does not drop to 0. The series diode will prevent the 'off' cycle BOW, but something must be keeping the 'on' cycle voltage < V_MAX to avoid triggering the open-circuit error condition. A possible explanation could be that the main system voltage ADC is mis-calibrated in your car. E.g. if the CEM thinks that v_in is 15V when it is actually 14.5V, then v would always be less than V_MAX; which is v_in - (rds_on * i_MIN), the second term being somewhere around 0.2-0.3V. If you get a BOW with nothing plugged in, it's possible that it's miscalbrated slightly, such that the quiescent (standby) current draw from the shutdown ballast is enough to defeat the BOW.
<< be nice to get the pre and post KBOWE voltages with this going on, but readings from a DMM would be of questionable value; it really needs a 2ch o'scope. Voltage calibration can be tested by checking the system voltage readout via a DiCE + ViDA (or BT android OBD-II thing) to see if it matches a DMM. Miscalibration can be indirectly tested by measuring the quiescent current through the ballast, then using a resistance to draw the same current directly across the CEM leads without the KBOWE in place.
Again the above is just my educated guess - gonna have to test to find out for sure. Tempt to hit a junk yard for a CEM to take apart.
1) I'll test again, but I don't recall it having any effect. (I'll PM you in a few)
2) Uhh...
3) I now need to buy my own to do any of the DMM measurements.
4) I'll test this tonight. I was bouncing the idea of the day/night transition causing problems off my passenger when I drove to Flagstaff. I was a little too nervous to test it on the open road, however.
c) I don't have any resistors on hand, but are you suggesting I put all of them in series for each input/output?
Let me know how it goes, I'm glad to mail you whatever you need. No, the resistors would be used one at a time, in separate tests.