RoadTest: B&K Precision Battery Analyzer, BA6010 Series
Author: shabaz
Creation date:
Evaluation Type: Test Equipment
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: There are battery analyzer products from Hioki, although some products only measure to a low voltage. The BA6010 is suitable for up to 60V battery systems.
What were the biggest problems encountered?: No showstopper or major issues encountered. A few minor mistakes (easily identified) in the user manual, and the user interface isn't perfect, but it's not bad. Very usable.
Detailed Review:
This RoadTest covers the topic of battery analysis primarily through impedance measurements. The information that can be interpreted from impedance measurements is useful for determining if a cell or battery is functioning correctly (note: in this blog post, the words battery and cell are used interchangeably).
The BA6010BA6010 is intended for rechargeable cells or batteries up to 60V. Another model, the BA6011BA6011, covers a higher range. The voltage range (actually the BA6010 has two internal ranges, 0-6V and 0-60V) covers batteries for typical consumer electronics, car batteries and many backup batteries. The BA6010 has specific features which are also handy for testing hundreds of batteries automatically in a production line too.
Why would you want this? The product actually suits several different use-cases:
For the design engineer, it will allow one to very precisely characterise batteries. The BA6010 can be used to capture measurements during charge and discharge, and this allows for checking different samples of batteries for consistency. You’ll be able to test charging circuits and prove to yourself that the circuit is not damaging the cells prematurely through over-charge for instance. If you’re designing a battery charger, or designing a battery into a circuit, then the BA6010 will be useful.
When purchasing and receiving shipments of batteries for production, the BA6010 can be used to confirm that the vendor is supplying consistent batteries and that a batch hasn’t arrived from a different factory and with different performance. There could be legal repercussions if faulty batteries make it through to production, so it is in everyone’s interest to check shipments more thoroughly.
During production, the BA6010 is useful to batch test dozens or hundreds of batteries, to check that they are all behaving the same. A damaged battery (physically crushed for instance, or an over-discharged battery) will be easy to spot through automated measurements with the BA6010.
When handling repairs and returns, it is possible to use the BA6010 to check the health of a battery to a deep level and be able to offer advice to the customer about when it will require replacement.
There are also certain scenarios where it will not make sense to use the BA6010. If you’re interested in knowing if a battery is fully charged or not, then it is overkill, and would not do as good a job as a bench meter and a load for instance. The battery analyzer in general is not a tool for measuring charge state, although it can indicate if a healthy battery requires recharging.
Sometimes more than one test tool is needed to fully characterise circuits or (in this case) batteries, and so the BA6010 makes a lot of sense to use in conjunction with an electronic load too, or a power supply. With these additional tools, one can discharge or charge the battery and measure its characteristics at different discharge/charge states.
The BA6010 is the third test instrument I’ve encountered from BK Precision. I was happy to apply to the RoadTest because I’ve found their products so far to offer decent functionality. The documentation is usually quite good, and I’ve consequently been able to do a lot with their products.
The BK Precision product range is fairly diverse, and their website lists recommended prices against every product so you can quickly narrow down based on features and cost.
(Image source: BK Precision website)
By coincidence the BK Precision products I have actually come together nicely, for developing and testing battery systems and chargers.
More than some products, battery related test tools really do need automation to get the most out of them, and so it’s good that the BA6010 has programmability features, and can be controlled from a PC. It allows one to combine different test tools and build a more complex test solution.
The BA6010 primary interface is to the battery under test, and it consists of four BNC sockets on the front panel which can be connected to a couple of kelvin clips. From the buttons and display, the user can perform measurements much like a multimeter, only in this case they are specifically geared toward battery analysis.
Other useful features include real-time logging to observe changing values, and a statistic mode that is useful for production where hundreds or thousands of batteries are being analysed.
Like many modern pieces of test equipment it is possible to connect the BA6010 to a computer to control and monitor, and there is a front panel USB socket too for transferring files, or screenshots of the display.
The rear side has a 36-pin interface to connect to machinery, and it uses a Centronics connector. This isn’t such a popular connector these days, so I’ve purchased one in case they become rare in coming years.
The unit is fairly lightweight and easily fits on a desktop. The overall look of the instrument is very much like other current BK Precision equipment. I like the style and build quality; it is adequate for the job. It could be improved (the soft blue surround only offers very slight protection, many other manufacturer test products have this issue too. Also, the TFT screen is just as delicate as on typical oscilloscopes; there is no protective transparent cover over the TFT module).
Provided some care is taken, there doesn’t appear to be any other physical issue that would cause me to worry about damage. Many test instruments have rubber buttons and TFT screens fitted in this manner, and the BA6010 is no different in that respect, although unusually it only has a soft rubber power button keeping it in standby – there is no hard mains switch. I believe this is because the unit is expected to be installed on production lines.
The supplied cable with Kelvin clips comes with a metal box at the end that connects to the BA6010, with four BNC connectors and plastic levers to make the task of securing them more easier. As a result of the space that the levers take up, the majority of the buttons need to be quite small, but I didn’t experience any usability issues.
In order to measure the impedance, the BA6010 works in principle very similar to a multimeter in resistance mode, in that it applies a current source across the device under test, and then measures the voltage across the device. Since the current is known and the voltage has been measured, then the resistance is simply R=V/I.
But, since the BA6010 however performs an AC measurement and not a DC measurement, the current source is in fact an AC current source. Also, since the device under test may have some reactance and may not be a pure resistance, then for an accurate measurement the phase shift needs to be measured too. The simplest way of doing that is to also measure the voltage across a known resistance in series with the battery, and then compare phases.
The diagram above shows a high level concept of the desired functionality; it is not a block diagram of the actual implementation. In principle it looks easy, but in practice the design is a bit more complicated. I took it apart to explore a little more, and was impressed how neatly laid out everything was. Many high quality parts are used. Perhaps 90% of the integrated circuits inside are manufactured by either Analog Devices or Texas Instruments.
At the mains input, there is a large discrete filter network, followed by what looks like a very high quality mains transformer. It has an electrostatic shield around the primary winding, to reduce noise from the mains side getting into the circuitry. There are separate windings for the digital and analog electronics.
The photo below shows how neatly the design is separated into different sections on the main PCB. This is the top view; the left side faces the rear of the unit and it accepts the mains input, and the right side connects to the front panel.
There is a small daughter board that contains a Handler Interface; a series of outputs that can be used to control machinery. The main CPU is on the main PCB, under the Handler Interface board.
It is clear that some clever system is implemented that I believe removes the battery DC offset (i.e. 0 to 60V) from the measurement (by generating a near-equal negative voltage) while still allowing the AC current to pass. An 8-bit DAC is used to approximately generate the nulling voltage (it doesn’t need to be more granular, because any residual value can be subtracted later digitally from the measurement). LM317 and LM337 devices are used to generate the large nulling voltage.
There are five different current settings (decades from 100mA down to 10uA) and they are achieved by a bank of reference resistors that are switched out. There are two voltage ranges (0-6V and 0-60V), and there is a precision resistor network for that too. These references are shown in the photo below.
There is a lot of analog circuitry for the two amplifiers! I couldn’t see an ADC, so I believe this is implemented using a comparator as a 1-bit ADC, and signals from an Altera CPLD that are integrated to generate a voltage level for the comparator to compare with.
Overall the layout is really very clean, I thought it was great.
I’m not sure where the phase difference is calculated, it could be inside the CPLD or the microcontroller. Anyway, once this information is available, the microcontroller can compute and present the results in different ways. There is a backup coin cell and RAM inside the BA6010, so settings can be stored and recalled.
As described above, the BA6010 really performs one core function which is to measure impedance. It can also control machinery because there is a set of digital outputs called a Handler Interface. Signals are output there such as an indication when the BA6010 is performing a measurement (this indication could be used to halt a mechanism) and outputs to indicate within what range the result falls in, so that machinery can automatically place the battery in the appropriate bin, so that similar cells are used together if they will be assembled into a pack.
For design engineers or for those testing assembled products, there is also the possibility of performing measurements while the battery is in-circuit and operational. This is known as an ‘online’ measurement as opposed to an offline measurement where the battery is isolated by disconnecting terminals. The online and offline measurements won’t necessarily be the same, but there could be situations where the battery cannot be disconnected and brought offline. The BA6010 can be used with the battery being online or offline – it will produce a result in either case.
Another thing the BA6010 can be used for is to measure the impedance of anything – it doesn’t care if the device-under-test is a battery or not. This however has limited appeal, since the measurement is at one spot frequency (1kHz). Note that it is possible (within certain limitations) to use the BA6010 to measure capacitor equivalent series resistance (ESR). This is discussed further below, in the Accuracy section.
The 1kHz test frequency is defined in standards, and it means that results can be easily compared with datasheet values, without worrying that the battery manufacturer used a different frequency. The reason a DC measurement is not ideal is because it is very intrusive for a battery. If DC current is flowing through a battery while a measurement is being done, then chemistry effects will change the measured impedance over time. For instance, insulators can exhibit dielectric relaxation and it is modelled by a resistance in series with a capacitance. In a similar vein batteries can have phenomenon that too would look like extra resistances and reactances that would not be there if a DC current was not flowing for a long time. So, to eliminate this, an AC test is preferred.
The BA6010 has six resistance measurement ranges (it can autorange), and it is pretty accurate. Note: just to be clear, throughout this review, any real impedance measurement is referred to as resistance, but it needs to be kept in mind that this is a measurement at 1kHz, not DC, and is the real part of the impedance).
To explore the accuracy of the BA6010 while measuring resistance, I drew the chart shown below. The BA6010 can perform measurements at a slow, medium and a fast rate of 50 times a second. The charts here are valid for up to medium rate (10Hz) settings. This first chart (lets call it chart A) is easy to use – once a resistance has been measured, it is looked up on the horizontal axis, and then the maximum error can be observed by following that point up on the vertical axis (note – the chart is logarithmic on both axes). It can be seen that for resistances up to several hundred milliohms, the error is less than +-1 milliohm. This chart applies for situations where the impedance is real.
The voltage measurement error is shown in the chart below. It can be seen that for single cells (with a voltage less than 6V), the maximum error will be +-3mV.
Note that if there is some reactance then the accuracy changes. Also, inductance and capacitance measurements are calculated from the measured voltage and phase, and the accuracies vary depending on the real component too; formulas are available in the user manual to get an approximation of the error range to expect.
The chart below is a guideline that I drew based on the formulas in the user manual, and it can hopefully be used to see what kind of error one might see in practice when measuring an impedance with a real component and reactive component. I’ve taken the use-case to be a battery with capacitance, or a capacitor, if the user wishes to measure the equivalent series resistance (ESR). The way to read it, is to see the measured capacitance on the horizontal axis, and then follow up until you meet the straight line. That represents the minimum resistance for the measurement error to be less than the earlier chart. If that minimum resistance cannot be met (e.g. a very low ESR capacitor) then one of the curved lines must be consulted. The right side axis will then indicate by what factor the maximum error from the earlier chart (chart A) must be multiplied by.
As an example, when measuring a 100uF capacitor, the ESR needs to be greater than about 15 ohms for the multiplier to be 1 (so that the earlier resistance error chart can be used directly), otherwise if the ESR is less, and close to 10 ohms then there could be a worst case error of about 6 times the error mentioned in chart A. If the ESR is close to 1 ohms then the error is about 1.2 times the error found from chart A.
I tested the theory with a real capacitor – I used a 22uF tantalum capacitor with a datasheet ESR value of 200 milliohms. I achieved a similar ballpark when I measured with the BA6010, although my measurement was not accurate because of poor connections. A 4-wire component fixture needs to be created for this measurement to be accurate. One other key point is that the BA6010 could impose up to 3V AC on the device under test, and that would not be a good idea with a polarized capacitor, especially a tantalum capacitor. The only solution I came up with was to place a small battery in series, and subtract its resistance. This does work, but it’s not as convenient as using a dedicated ESR measurement tool. Still, it saves some costs and it is nice to know the BA6010 does function quite well in this use-case at a pinch.
The menu system is a little odd, but usable. There are four main views – measurements, bins, trace and statistics. The first is like a multimeter, and will display the measured resistance and voltage, or capacitance or inductance and so on, dynamically. I think it is the most useful display for a lab.
Soft-buttons under the display are used to control the system, and there is a highlighted cursor which when moved will cause the soft-button functions to change.
It’s not complicated to use, it is really lovely having the detailed display and plenty of buttons, but a few things could be improved – in particular I didn’t like that sometimes the soft-buttons do not display the function that will be activated if you press it, but instead display the current enabled/disabled status of a function, i.e. pressing it has the opposite effect! I thought that was unintuitive, but it only occurs in a few locations and one could get used to it I guess!
(Note - another extremely minor thing is that the screenshot feature provides green images as shown above, however the visible display on the BA6010 is blue. I color-corrected all screenshots below, so that you see what I see on the display on the instrument).
The bin display can be quickly used to see what range the measurement sits in. This is perfect if you want to match up batteries for (say) constructing battery packs. The most similar measurement batteries will be those in the same bin. The bin ranges (up to nine) are set up by the user in a configuration setup screen and then when a battery is connected, you will immediately see which bin the result falls in, and see a pass/fail indicator light up. Also, the Handler interface at the back has 9 open collector connections and one of them will become active (pulled low). So, a machine could be used to automatically place the battery in the correct bin. Beeps can alert in case of error, if the measurement is totally out of range of all bins. It is useful in a factory, but for lab use I disabled that from the menu.
The trace view shows the results in a chart. It is quite basic but usable, and the user can adjust the axis even after a trace has been captured. If this feature is really needed, then I feel it is better to use test equipment automation to capture and graph results on a PC instead.
The statistics view helpfully collects up statistics based on some settings. This could be highly important in a manufacturing environment to see if processes are impacting battery characteristics. For such scenarios, a trigger is used each time a battery is tested; that trigger can be external if desired, via the 36-pin Handler interface on the back of the BA6010. For lab testing of individual or a small amount of batteries, the statistics view is not as important.
In summary, apart from a few quirks, the user interface is easy to use due to the large display and many buttons and softkeys. The display is really bright and sharp, and viewable from all angles (some slight fading if the instrument is placed above you and not angled down).
As mentioned, the battery gets connected via the BNC connectors on the front panel. A thing to be aware of is that one end is grounded. It won’t be an issue during production testing of batteries, but it should be considered before making connections to an online battery in the field, or when combining the BA6010 with other test equipment such as oscilloscopes.
There could be a desire to make your own test connections (especially in a production environment) and normal 50 ohm BNC connectors or cables can be used, they are spaced 22mm apart if you want to 3D print a holder for them.
The supplied cable is quite flexible, it is likely made of PVC plastic and all four connections are shielded all the way up to the Kelvin clips.
The BA6010 has four BNC connections which are used to supply the AC current stimulus, and perform the measurements. I wished to use the instrument with cylinder cells (such as AA and 18650 cells Nickel Metal Hydride and Lithium Ion cells). Since these often do not have solderable connections, and connectors can introduce tens or hundreds of milliohms of error that cannot easily be nulled out (because it varies depending on connector pressure), it is important to use a 4-wire battery holder.
These are quite rare and expensive, so I decided to construct such a holder using EAGLE CAD software and designed it so that it could be used for many of the popular cylinder cell sizes. Springy metal contacts (Wurth 331211503040) were used. The design is adjustable using screws, and there are markings on the base plate so that it can be set to the same position easily.
I purchased the wrong sized contacts by accident, but nevertheless they just-about fitted the solder pads.
I will probably refine the design at a later stage, but the CAD files for the current revision 1 are attached below, and I tested it with AA and 18650 sized cells for this review. The design is mainly a large sheet that is broken up into the various parts, and some sanding is needed too. Some shim pieces for adjustment are also part of the design, but I measured badly : ( Still, they were unnecessary, because the base plate has markings on it anyway, as mentioned earlier.
I was very happy with the results. I was able to get consistent measurements. The contacts can cope with a couple of amps, which is fine for measurements, but care would need to be taken if the holder is also to be used for charging or discharging the battery.
For lab use, it would be useful to record battery impedance behaviour over a period of time. The BA6010 can do this directly and log to a USB memory stick. However, it would also be useful to perform the logging during battery discharge, or even during charging. There are a couple of ways to do this. The ‘on-line’ method would do this while the battery is still in its operational state, i.e. while it is being charged or discharged, or otherwise ready and connected to a circuit. Although the on-line method works and provides measurements that includes influence from the connected circuit, it could also be desirable to take ‘off-line’ measurements at regular intervals while the battery is charging or discharging. Such a thing would need the battery to be temporarily removed from the connected circuit to do the battery analysis measurements. It is unfeasible to do this manually at a high level of granularity, so it needs some automation.
I decided to use the BK Precision 8600 Electronic LoadBK Precision 8600 Electronic Load to perform the discharge. For brief periods the load would be programmatically disabled for the BA6010 to perform its measurements, and then the load would be re-enabled. It was then extended further to use relays to switch in/out the load. For that bit of functionality I used an Advantech USB-5830 Digital Input/Output moduleAdvantech USB-5830 Digital Input/Output module.
The BA6010 has several interfaces for connecting to a computer. I used the USB connection.
Some Python code was written that can, with little modification, be used with many test instruments. The code will search for instruments attached to the USB sockets on the PC, and will then allow the user to issue instructions (either direct typed, or from a script or other program) in a format called SCPI (it is a standard supported by many test instruments). The code will automatically pass this on to the instrument and then display any response. I called this program instrument_talk.py
I also wrote another program called server.py. It creates a lightweight web server interface which means any web browser on any device on the network can connect. Fancy control schemes and graphs are therefore possible, coded in HTML and JavaScript files.
Other options include LabVIEW and MATLAB. SCPI is a standard and there are many tools that can be used.
I’m still a beginner in Python, so my code may not be optimal. The screenshots below show an example view from the software during operation. It captures the measured voltage and resistance, but it could be modified to capture any parameter. Two charts are graphed in real-time, so that any short-term fluctuations and long-term trends are simultaneously visible.
It is intended that this software be used as a continuous dashboard during the tests, and so I needed some way of seeing what the testbed was doing, other than just hearing relays click! To achieve that, the web page shows a simple schematic of the test configuration, and a yellow triangle moves in real-time to point to what the test is currently doing. It cycles between load online, battery offline and measure events.
The test configuration allows the time for the online and offline periods to be configurable. As a result, I can (say) perform a battery discharge for 55 seconds, and then bring the battery offline (i.e. disconnect it from the electronic load) and perform the measurement within 5 seconds and then loop until the battery is fully discharged. These are example values that I used, but standards can dictate other settings. The software will then automatically control the BA6010, the electronic load, and the relay switching unit (USB-5830) to execute the test. The log file is captured in CSV format.
To explore the BA6010, I decided to run some tests on cylindrical cells. These do not have reliable connections for accurate impedance measurement, and so the custom battery test set described earlier was used, with the software setup described above. The photo below shows the BA6010 along with the BK8600 electronic load. The battery test set is on the left. The Advantech USB-5830 is on the right, and it is wired up to a relay shown in the center of the photo. That relay is used to automatically connect the electronic load to the battery test set when required during the tests.
A closeup of the battery test set - the red and black wires go to the electronic load, via the relay controlled by the USB-5830:
The procedure used was to discharge the battery (at a constant current of 1A or 2A) for 55 seconds, disconnect and wait a few seconds, then do the measurement with the BA6010, and then reapply the constant current load again for another 55 seconds, and repeat until the battery was almost fully discharged. It was decided to also perform a voltage measurement within the 55 seconds (towards the end of the period) so that the volt drop under load could also be observed.
The following six batteries, designated A-F, were tested in this manner:
Battery | Brand and Name | Size | Type | Tech Specs |
---|---|---|---|---|
A, B | GP ReCyko+ Pro | AA | NiMH | 2000mAh, 1500 cycles, 70% charge retention after 5 years |
C, D | Ansmann Digital 2850Ansmann Digital 2850 | AA | NiMH | 2850mAh max 2650mAh typical, 500 cycles, 60% charge retention after 30 days |
E | Ansmann 2600mAhAnsmann 2600mAh | 18650 | Li-Ion | LG INR B4 cell, 300 cycles, 5% discharge per month at 30 degrees C |
F | UltraFire BRC 3000mAh | 18650 | Li-Ion | 3000mAh nominal is claimed, 500 cycles |
All batteries were new, and I ran tests a couple of times with each battery. This review is not about the batteries nor the charger, and these batteries may well perform differently if they are used several more times (Battery F, the UltraFire cell, it is claimed must be used 10 times to reach full capacity), or at different temperatures or at different charge or discharge rates. The temperature was uncontrolled (these tests were run at different times over several days), and at approximately room temperature. For real tests in a factory or in a test lab, these things would need to be recorded for consistency, and to allow comparisons to be made between different batteries in a batch.
The BA6010 produced very clean results. I did not need to do any filtering beyond what the BA6010 already does internally by default. The charts here are the results captured from the BA6010 with no external smoothing/filtering applied (and the CSV files are attached below if you wish to examine any detail).
The first tests were with a couple of AA NiMH batteries of the same brand/type. The results were very consistent, both behaved very similarly. It can be seen that there was about 50mV terminal voltage difference unloaded and under load (at 1A), and about 100mV difference with a heavier 2A load. The resistance (the real part of the impedance, at 1kHz) was about 15.5 milliohms, and as the battery was discharged it rose slightly. When the battery was almost completely discharged, the resistance shot up. There is an interesting small hump part-way through the discharge curve.
Next I tried a different brand of AA NiMH battery. These batteries C and D have a higher capacity (up to 2850mAh) but can only be used for about 300 cycles whereas the first batteries A and B have a lower capacity and higher cycles capability.
These batteries had a higher resistance for most of the discharge cycle, and again shot up at the end of the discharge curve (the tests stopped earlier, I should have set a lower termination voltage). The curve is overall different compared to the A,B batteries, and this could be used as a signature if hundreds of cells were being tested and compared.
Next, I tried a larger (18650 sized) Lithium Ion cell by Ansmann. It has an in-built protection circuit (built just underneath the positive end cap as I understand), so the measurement includes that.
The resistance rose by about 5 milliohms from the start of the test to close to the end of the test, and then rapidly shot up.
I deliberately tried to purchase the (perceived) lowest-quality and cheapest cell I could easily find, and it was an UltraFire branded one from Amazon. Maybe it’s just me, but it doesn’t seem good sales sense for manufacturers to make red batteries with the word Fire on it (and a flaming logo : ) Incidentally this battery weighs 10 grams less than the Ansmann battery E, and is a bit shorter.
It didn’t last very long being discharged at 2A. Also, its resistance had measurable fluctuations – perhaps some interesting things are happening internally from a chemistry perspective – until the battery was fully discharged and again the resistance shot up.
I’ve used the BA6010 for several weeks now, and it’s been left on, running in the testbed, for many days. It behaved well, with no crashes or unexpected behaviour.
I liked that it performs its core task very well – the results are stable even with the 60cm or so length of cables that I used, and the programmability features are well documented and it was easy to get moving and develop a testbed with the BA6010.
There are some things that would be nice to see implemented a little differently, but they are minor. Firstly, in some menus, it can get confusing to occasionally see soft-keys where the option is actually the current status, and pressing it has the opposite result. Also, it would be nice to have programmability commands to control one or two of the outputs on the Handler interface for custom purposes – it could save users needing to use a separate I/O module for some testbed designs. Ethernet would have been nice to see too, but at least RS232 is available for connections in a factory, if USB is not feasible.
On its own the BA6010 is useful, but you may wish to pair it with a programmable electronic load or DC power supply, for comprehensive tests in a lab.
I hope this review was useful; thanks for reading!
Top Comments
Great road test shabaz. I liked the depth.
Hi Shabaz,
Your RoadTests go way beyond an equipment review. They are tutorials of the highest quality.
Frank
Another very informative review from you shabaz. Another example where I wouldn't have known beforehand what I could do with something that you have tested, and now I do!
Out of interest, you mention…