While working on ideas for a redesign of the OpenROV Cape power supply section, I got a bit distracted by the topic of the LED Modules in use on Open ROV.
OpenROV currently uses LED modules made by Digitron. These modules come in two flavors, one regulated, and one unregulated and set up for 12V power. I believe the kits shipped with the unregulated version, while the BOM on the website shows the regulated version.
The regulated version is a bit more expensive, but what catches the eye is that the published power consumption is half that of the unregulated version. A number of people have expressed puzzlement over how this can be. I decided to tear into a regulated module and see what made it tick. If you don't want to wade through the technical details, just skip down to the conclusions at the bottom of the post.
The unregulated LED module is a Digitron LHA-06B12-N-00, sold by Jameco as part #2125763. It is rated at 87 lumens output for a 12V input at 150 mA of current.
The regulated module is a Digitron LHA-06B30-N-00, sold by Jameco as part #2113041. It can handle any input voltage from 8-30V, and draws 74 mA at 12V for a light output of 87L. This is the module that I'll talk about below.
Here's a picture of the regulated module:
Here's the schematic of the board that I traced out for reference:
On the left side of the photo there is a bridge rectifier made up of 4 Schottky rectifiers; despite the red and black input wires, the input to the module can be AC or DC. The incoming power is filtered by a tantalum capacitor on the left, and again by a large ceramic capacitor on the right of the photo.
The regulator part is a Zetex ZXLD1350 LED Driver. It uses a buck converter (Wikipedia it!) configuration to conserve power. In a nutshell, the regulator drops the input voltage down to whatever voltage is needed by the LEDs, but instead of wasting the voltage difference by dissipating power, it stores it in an inductor to be saved. You actually get more LED current than you are inputting current to the board. Magic!
Inductor L1 is at the top right of the board. The regulated parameter is actually LED current, not voltage. This current is measured by a 0.82 ohm resistor on the lower right side of the board, next to the big ceramic capacitor. Diode D7 is the free-wheeling diode used by the buck converter.
There is an unpopulated set of pads hooked to the ADJ (Adjust) pin of the regulator, labelled as C3.
The LEDs are three strings of 2 LED packages in series. Each LED package actually has 3 separate LEDs in it. The 24.9 ohm resistors are to help balance the current load between the LED strings, caused by mismatch of LED voltage.
Here's a plot of the performance of the module as a function of input voltage:
The blue trace is the input current to the board. Note how the input current decreases as input voltage increases, as the buck regulator is trying to hold LED current, and thus power consumption, relatively constant. The green line is the LED current, calculated by measuring the voltage drop across the 0.82 ohm sense resistor. The regulator does a fair job of maintaining constant LED current over a wide input operating range. Note the difference between the blue and green lines, that's the power that's being saved by using a buck regulator as opposed to a linear regulator. LED current is a rough indicator of the output light level of the module.
The pink line is the input power, voltage*current. Note how it has the same shape as the LED current- the power consumption of the board is reasonably well correlated with the LED current, and thus the light output. The orange trace at the top is a crude measure of the efficiency of the board, comparing the LED current to the board input power.
Note that as input voltage drops below 8V, the buck converter basically shuts down and becomes merely a closed pass transistor. The input current and LED current are identical below ~8V input. Below about 7.25V input voltage, the module will start dimming noticeably below normal.
This above point is important, since what I really want to do is run the module off of raw battery power (Vbat on the Cape schematic), as opposed to the Cape 12V regulated power. The 12V regulator takes up a lot of real estate on the Cape, wastes power, and is of minimal utility if you are just using it to drive one of these regulated modules. Unfortunately, if the battery voltage drops below 7.25 V, such as when running the motors hard, the LED module will dim.
One obvious patch to this is to get rid of the input bridge rectifier on the LED module, which is dropping about 500mV at typical module input currents. You would lose any protection from a reversed input voltage, but since we're in control of the voltage being provided to the board, I don't see that this is a major issue- just make sure you wire the red and black wires up appropriately.
Here's a second picture of the LED module, with two of the Schottky diodes removed and replaced with jumpers:
In the photograph you see the 30AWG fly-wires that I use for testing. The red and grey wires attached to the ceramic capacitor on the lower right allow measurement of the voltage input to the Zetex controller. The white wire on the 0.82 ohm resistor is used with the red wire to measure LED current. The white wire on the C3 pad will be used below to control module intensity.
Here's a plot of the performance of the modified module:
Performance looks very similar to the stock LED module, but note that normal LED current is maintained down to about 6.75V (as opposed to 7.25V on the stock board). Also note the relative efficiency plot- since we're not burning up any energy in the bridge rectifier, the board is slightly more power efficient, especially at lower input voltages.
In looking at the Zetex controller chip, I noted that it had an Adjust input pin, which is to be used for dimming control, either with Pulse-Width Modulation (PWM) or an analog voltage. When you PWM this module by cutting the power in and out, as is currently done on OpenROV, you are repeatedly turning the switching regulator on and off in a manner that it is not optimized for. I decided to compare the current method of PWM vs. using the ADJ pin on the Zetex controller.
Here's a chart showing the PWM behavior of the board, using the current OpenROV PWM scheme:
Several items can be noted here. At relatively high PWM settings (<230 or so), the board is essentially at full power, since the input capacitor on the board holds the voltage up long enough that the regulator never fully shuts down. There is a loss of energy involved in this process, so you actually draw less input current if you just set the PWM at 255 (full on) and leave it there.
At low PWM settings, efficiency falls way off since you're wasting energy by starting up the switching regulator and then rapidly shutting it back off.
I attached a wire to the ADJ pin of the Zetex regulator, and drove it via the open collector of a transistor hooked to a PWM output of an Arduino. This inverts the sense of the PWM value, so the PWM value that is plotted is actually in software (255 - PWM). Here's the performance of the board:
Note that the response is much more linear at high PWM values, and that the module can be dimmed all the way down to very low light levels. Also note that the relative efficiency values are higher than the previous case at all PWM values, but especially so at lower light levels.
So, what does all this mean? Here are my conclusions:
- If you got the unregulated modules with the kit, they will work just fine. In fact they may actually be a bit brighter than the regulated modules. The regulated modules run the LEDs at about 116 mA for a 12V input voltage. The unregulated modules are spec'd for 150 mA, though I don't actually have one lying around to measure and compare.
- If you want to save some power, switch your LED modules over to the regulated kind. You'll save around 0.5-1 Watt per board, 1-2 Watts total. This won't revolutionize battery life, but will help some.
- You can save a bit more power by rewiring the PWM output of the OpenROV Cape to put out battery voltage, instead of +12V, and then disabling the +12V supply. This will probably save on the order of 200mW or so with the lights running, since you won't have the loss due to the conversion efficiency of the +12V switcher (probably about 90%). The only drawback here is that when you are drawing heavy motor loads, the LEDs might dim. Of course, you should probably be shedding loads by this point in time anyway, to keep the BeagleBone from shutting down.
- You can minimize this dimming effect by removing the input bridge recifier on the LED modules, and replacing it with jumpers in the appropriate places. This lowers the input voltage requirement on the regulated modules by about 0.5 Volts, and improves their efficiency marginally.
- We should seriously consider removing the +12V power supply on the BB Cape, to make room for new circuitry like a lithium battery regulator. The PWM outputs could then be battery power or whatever. There's already an item in GitHub to address the PWM output voltage.
- If you really want to squeeze every last bit of efficiency out of the module, consider controlling the module brightness via the ADJ pin on the Zetex controller, rather than switching the input voltage. This is totally over the top for 99% of OpenROV users, but I thought I'd keep it in here for amusement sake.