Any interest in a LED/Battery analyzer device?

I am building a device for analyzing batteries, LEDs, drivers, flashlights. As planned it would have:

2 × 30 amp hall effect current sensors (< 2 milliohm burden resistance)

2 x type K thermocouples (good to 1000 degrees C!)

Battery and LED voltage monitoring (up to say 50 volts)

LVC cutoff FET for the battery

Light sensor input (digital and analog sensors supported, 50K-100K lux, integrating sphere supported)

RS232 link to computer / monitoring, graphing, logging software

It should be able to measure/calculate just about anything you would want to know about your batteries, drivers, LEDs, flashlights, etc

Projected cost would be in the $100 range.

Now, how many people out there will actually buy one? Serious people only, please… tire kickers, cheapskate weenies, skid row bums, etc need not answer.

What about the software package?

$100 is reasonable. I mean, I just ordered a CBA IV :slight_smile:

Would come with it… open source.

Many computers don’t have RS232 anymore, how about usb?

Use a converter dongle…

I’m most definitely a cheapskate but I am interested at a cost close to $100.

Agreed. Throw down a CP2102 or FT232 and it’s usable on every desktop, laptop, netbook and tablet.

Oh, and I’m in for at least one.


I started playing with some code for the device and actually have most of it working. A few preliminary design decisions:

Current range is +/- 30 amps with milliamp resolution. Isolated, very low burden hall effect sensors. Measures battery current and LED current.

Voltage range is 50 volts with millivolt resolution. Only measures positive voltages (referenced to the driver negative input (i.e. battery negative)). Measures battery voltage and LED voltage (simultaneously measures the voltage at each end of the LED and subtracts the readings to get the LED Vf)

Two type K thermocouples via MAX6675 chips (usable with type T). Range is 0 to 1023.75 degrees C

Processor is an Atmel ATMEGA328 (with Aurduino bootloader for firmware upgrades)

Computer interface is RS232 (or USB with an adapter dongle). Communications format is Trimble TSIP binary compatible (used on Trimble GPS equipment) since the Windows control program is based upon something that I wrote for controlling Trimble GPS disciplined oscillators.

Connections to the LED/driver/battery are via short heavy gauge pigtails with Deans connectors.

Analog light sensor is the head off of a cheap Chinese lux meter.

Digital light sensor is a Rohm BH1750

From all the measurements it can fully characterize the battery, LED, driver efficiency, etc Should be fun…

Will it be able to put lithium primaries under load to determine capacity ?

Most definitely. The load can be any driver/led or a power resistor.

It does not have a true constant current or power load capability like a CBA 3 or 4, but it could easily be set up to do that by PWMing the load resistor. There is a high current FET switch in series with the battery input (used for LVC/HVC shutdown).

Other uses of the board could be a high power boost converter (add an inductor/diode/filter cap) or something like a controller for a composite materials curing oven. At 50V/30 amps, it can handle 1500 watts. The basic design is very flexible. I use something very similar in my 15,000 lumen/150 watt Bridgelux drivers.

Sounds really interesting - subscribed :slight_smile:


As long as I don’t need to write any code, I’m very interested.

I found some current sensor chips that go to 50 and 100 amps… they do cost twice what the 30A ones do. They also have 1/10th the burden resistance of the smaller chips (130 micro-ohms!). Using the 100A sensors, the current resolution might be 5 mA… decisions, decisions, decisions…

I slung some more code today. I am doing the work on a MegaDonkey LCD touchscreen micro controller for now. I have some current sensors and thermocouple amps on the way from Old Cathay.

I can now send TSIP messages to the board and it responds properly. I also did some hacking to the Windows control program and have it talking to the thing… there’s gonna be a bunch of crapwork involved working over the GPSDO controller user interface.

The ACS756 is a really nice part. I use it for lots of things.


That’s the big guy…

The ACS712 series is the lower current one. It is in a SO-8 package. It should be easy to lay out the board for either one.

I got in some of the MAX6675 thermocouple processor chips. They seem to work very well! The temperature readings agree with my Wahl thermocouple calibrator within 1 degree F… not too shabby.

The way that I am processing the readings, I get a resolution of around 1/8 degree C. You can easily see the temp change in the room if I open the refrigerator door to get a beer. You can also detect the body heat given off by a person entering the room (as long as the air conditioner isn’t cycling).

I’ll probably not implement the analog light sensor (using heads removed from cheap lux meters as the sensor). There are better uses for the required pins and ADC channel on the microcontroller. Plus, my testing of the photodiode amplifier circuit that those meters use is not encouraging…

I do have the code for attaching two of the digital sensors written.

Also it auto-detects the thermocouple amplifier types (MAX6674 or MAX6675).

I added a couple of 10:1 voltage dividers to the ADC inputs on my prototype so that I can measure voltages higher than 5V (i.e. 50 volts). I used 90K/10K ohm resistors and ran into a small problem. The ADC (analog to digital converter) in the micro controller works by first charging an internal sampling capacitor to store the input voltage while it makes the measurement.

They say the the chip is optimized for a 10K ohm source and I am using a 90K source. The problem is that the chip can’t charge the sampling capacitor fast enough at low input voltages. A 1.60V AA cell was measuring 1.450V and a 0.10V source was measuring as 0.035V. Signals over 10V or so were pretty much correct. The measurement error is exponential (increases dramatically at low voltages) and not linear. The simple solution was to add a calibration lookup table to compensate for the funky readings. Now all the readings are within around 0.5% accurate (with millivolt resolution).

I did some more testing with the recommended 10K source impedance and found that the readings were also at least 2% low. Without an input resistor they were spot on. So much for trusting chip maker’s data sheets… people using AVR chips to measure low/high impedance voltages need to be aware of the issue.

Not sure if you require extremely high speed acquisition or high sample rates, but our solution to the crappy AVR ADC has always been to simply slow down the ADC clock and give the cap time to charge… If we require high speed ADC, we don’t use AVR.

I suspect you’ll find look-up tables to be highly error-prone. The chips vary greatly in how far they’re off when you don’t give the sample cap time to charge.

Additionally, You’ll almost certainly have to calibrate the readings for reference voltage (unless you’re using an external ADCVref) as the ATMega328 has a terrible internal reference (1.1V nominal with a tolerance range from 1.0V to 1.2V).


Will it be able to measure/calculate the tint (Kelvin) of the LED?