Regular readers of my RoadTests will understand that I very much dislike posting partial or incomplete reviews, as my view about a product could change during a more considered evaluation, but also as it might "tire" out some readers who visit expecting an update but never find one, or otherwise may have visited expecting a full review only to get a partly-finished review. I know it's really a matter of style and preference - some people like to rally up interest about a product and get the view counts going, but I digress.


In unusual style, I've decided to publish this addendum to carry on the updates to the RoadTest in a more systematic way compared to "spamming" the comment section. The reason for this is primarily because of additional information that has come to light since my review posting.


[2/10/2018] The Problem of Calibration

Readers will note that there was an incorrect calibration certificate supplied with my BA6010 which was due to a mix-up on B&K's behalf when dispatching the review units. After some asking, shabaz kindly provided photographs of the certificate for my unit which was shipped in his unit. As a result, I have the calibration data for my unit available.

BA6010 Calibration Data Overlay 1BA6010 Calibration Data Overlay 2

In my rush to see whether this matches my experimentally derived calibration assessment using my Keithley Model 2110, I overlaid the calibration data in purple diamonds over the measured data with the associated margin of error. In the case of the low 0-6V range, the data concurred quite well with the diamonds very much inside the margin of error and mostly close to the "raw" difference data, suggesting that both the B&K Precision BA6010 and my Keithley Model 2110 were performing as expected (despite my Keithley not being calibrated since it was shipped).


Unfortunately, in the high range, significant differences began to show. The calibration certificate showed that the calibration performance when it left the factory was better than the tested performance quite significantly in the 6-30V region. From 30-60V, there are only the end-points provided and the 60V diamond is within the margin of error, so it seems that is not too bad.


But why is there this big discrepancy? This would only likely come about if:

  • My Keithley Model 2110 is really much out of calibration - this would have to affect the upper part of the 10V range and the lower part of the 100V range without affecting the lower part of the 10V range and all of the 1V range. I considered this possibility somewhat unlikely.
  • There was a one-off instrument error - I have experienced a once-off consistent under-read by 0.3V which was cleared after a reboot of the instrument. Might this have affected the test on that particular run?
  • There is some sort of bug with running in the R-V mode for reading just voltages, or a problem with the auto-ranging - this perhaps deserves some investigation.
  • There may have been actual drift since calibration as it is nearing one year or component damage due to shipment - this is possible, but I was hoping this not to be the case.


After seeing this data, I slept poorly. I decided that I must (in good conscience) try to find out whether this was my fault or the BA6010's fault. As a result, I decided that I should re-run this experiment but with some additional care:

  • I would use the V-only mode. This would improve speed but also may disable 1kHz AC injection (I did not check this) which could result in more stable voltages throughout.
  • Fixed range of 60V would be used so that if auto-ranging is an issue, it is excluded, and the whole 60V range can be tested and compared to the calibration data.
  • I would maintain the same test set-up using fine 1mV steps throughout the range despite the slow speeds as this would very clearly spot all fine details and trends As I have no other power supplies the  E36103AE36103A 2 x HCS3102 combination will be reused
  • I would maintain the room at 20C 2 degrees as verified by an Si7021 I2C temperature/humidity sensor to ensure all test equipment are within their accuracy parameters as possible(given my circumstances and the fact that my equipment seem to prefer slightly different temperatures 20C 5C for BA6010 23C 5C for K2110  E36103AE36103A and  BK8600BK8600
  • I would maintain the use of the Keithley Model 2110 as my most accurate source, but will back this with my next-most-accurate B&K Precision Model 8600 DC Electronic Load as to provide additional assurance. The Model 8600 is slightly less accurate than the BA6010 being tested, which will result in limited information being provided. Despite not being tested against the K2110 (2013), it is believed that the Model 8600 (2016) is also of good accuracy as it was a more recent review item although still out of calibration (officially). It has already been established that the K2110 and the Keysight E36103A (2016) power supply's internal read-out are in good agreement.
  • Code improvements in the next section were integrated to overcome any communication issues and automatically retry readings.
  • All instruments were left to warm-up overnight over 10 hours to reduce any drift as much as possible - we are hoping our instruments are even more accurate than the datasheet ratings to be able to discern the calibration state of the BA6010.


Repeating the experiment comparing against the Keithley Model 2110 yielded the same results - which means that it does not seem to be a transient event or bug. It seems to be consistent.


BA6010 vs K2110 High Range Volts
Seeing the result, it seems that it is very much identical to what was achieved before, with the low-limit just touching and exceeding the BA6010's lower specification limits. With great likelihood, the BA6010 still meets the specification as the actual value can lie anywhere between the green and gold lines representing the margin of error in the K2110's readings. The 60V and 30V data points from the calibration are within the margin of error, but the remainder are outside - it seems the readings below 30V have mysteriously shifted downward.


Despite knowing the K2110 and  E36103AE36103A show good agreement I felt it was important to provide further evidence that the K2110's calibration is not likely to be at fault by getting a second opinion from the  BK8600BK8600
BA6010 vs BK8600 High Volts
As the specification for the  BK8600BK8600 is only 0.05 reading 0.05 range with an 18V and 120V range the margin of error from the  BK8600BK8600 is much wider than that of the BA6010 especially above 18V as the "range" term dominates Despite this in the lower part of the range it seems that the diamonds are now on the high limit borderline of the margin of error A slight shift is seen at 18V due to the BK8600's range change but the same "jump" at 30V persists While this might suggest to some readers that the calibration of the BA6010 is still "as per certificate", it's important to note the width of the error margins and the altered scale.


Comparing just the raw differences between the instruments which assumes the K2110 and  BK8600BK8600 are providing"exact readings of the voltage the BA6010's difference is remarkably consistent.
BA6010 vs K2110 and BK8600 Raw High Volts Difference
With the BA6010's "datasheet limits" as the top and bottom of the graph we see that the BA6010 and  BK8600BK8600 both agree to within 4mV throughout, whereas the discrepancy between calibration value and the closest reading is closer to 7mV. Shown in this way, it seems that the calibration values are displaced towards the zero line by about 8mV but the "dip" in the read-out between 5V to 30V seems to be "real" and inherent to my particular unit and its components. Likewise, the nearly "step change" correction around 30V is also "real" and probably deserves mention as it may be a little misleading to see a sudden 1.5mV drop in values. While this is only a cross-reference between two references, it still shows a very likely drift in calibration in the unit throughout its first year as it is unlikely that two instruments of different design that I own would fall-out of calibration in the same way despite being of different ages (although I'm not saying it is impossible).


At least it does help me validate my testing procedures - this should help immensely for my upcoming RoadTest where this is an issue I intend to explore.


[2/10/2018] SCPI Issues?

During my RoadTest, I did note problems with "input protocol violations" being reported when the BA6010 was being queried and I thought this was an interaction with the Keithley Model 2110. However, during my extended new round of testing, I found that this also happens if my B&K Precision Model 8600 DC Electronic Load is attached as well without the Keithley. It could be a matter of timing that I'm not fulfilling or something else (borderline hardware, AMD USB controller peculiarity) but I've managed to work around this.


I noted that pyvisa throws an IOException, so instead of just issuing the command and hoping for the best, for the above testing, I changed the query lines to form an "infinite retry" with 1-second delay between attempts.



  while read != 1 :

    try :

      mmvolts = ins_k2110.query_ascii_values('FETC?',separator='\r')

      bavolts = ins_ba6010.query_ascii_values('FETC?',separator=',')

    except :

      print('Retrying ...')



    else :




pyvisa Exception Handling

Surprisingly, once this was implemented, a number of retries have been noted "sporadically" but the data is collected correctly nonetheless without needing to power cycle any instrument. I guess this is better than nothing.


It was also determined in the testing done for the previous part checking calibration that there is an error with the programming manual which states that FUNC:VDC:RANG 0 is 6V and 1 is 60V. In fact, it's entirely the opposite - setting the value to 0 results in the BA6010 selecting the 60V range. This kept me scratching my head for a bit ...


[3/10/2018] Curve Fitting the Calibration Data?

While I did mention that the hypothesis is that some drift may have occurred in my BA6010, how much drift was judged "visually" by eye. I then realised that this was a bad technique, so I went back to the data in order to try and fit the calibration data as best as possible to the most reliable source I have - the K2110 values. I computed the RMS difference at each calibration point according to my data recorded, and using a single offset common to all, set solver to reduce the total RMS error of all calibration points. The result was an offset of -11.586mV which when applied to the calibration data results in the diamonds being closer to being within the margin of error and minimising the distance between the points and line. Because this appears to be a "global" offset rather than an individual jump, this would probably allude to component value drift. It also means that I could sort of apply this offset to the read values to try and improve the accuracy, but this won't help that "jump" in the middle of the range.

BA6010 Calibration Data Offset Error Minimisation

Despite this, it's worth me saying again that the unit is still within its stated error limits and is still technically in calibration, just that the calibration data did not match my testing and I had reason to suspect the unit had drifted.


[3/10/2018] Comparing Calibration Certificates

Because of the unusual mix-up with calibration certificates for this RoadTest resulting in a three-way-swap between myself, shabaz and dougw, the data from the three calibration certificates is in the open and thus we can compare a little to see how consistent the units were when they left the factory.

BA6010 Calibration Resistance Error

Errors are reported as the % reading error (absolute value). Between our three units, the trends are broadly similar although it seems that at 30mOhm, all units exhibited the greatest offset. At a number of individual readings (10Ohm, 316Ohm), my unit showed a higher level of error whereas at 10mOhm and 3.16Ohm, the other two units showed higher errors.

BA6010 Calibration Voltage Low Error

In all cases of voltage, I found the calibration certificate data for negative voltage to exhibit exactly the same error as the positive voltage, thus the graphs are always symmetrical. It seems that shabaz's unit has the greater error at all points in the low voltage range, with the exception of the 2V measurement, with the other two units being roughly similar.

BA6010 Calibration Voltage High Error

In the high range voltage, the tables are turned with my unit showing the equal or highest error at all points except at 60V. Note that this is the data from the calibration certificate - my computed drift from above does not factor into it. The other two units seem to be rather balanced for error.

BA6010 Calibration Data Overall

So, out of the three of us, who has the luckiest unit out of the factory? Well, on average resistance reading error, dougw's unit is first, followed by mine and then shabaz's unit. On average voltage, interestingly, the same order is maintained. But splitting the voltage range, it's clear that my unit wins on the low-range, whereas it loses badly on the high-range. While it's not unusual to see some level of error being shown in calibration certificates, with a pass awarded if it is in the stated range, the variation from unit to unit seems to be somewhat significant - my high-range voltage error is over twice as much as the best unit (for example). While all units pass, you can get lucky with instrument purchases - but the best case would be quality control that minimises the variances post-calibration.


[20/10/2018] Improvising a Proper Battery Contact Jig

Not being as skilled as shabaz in building a PCB battery contact rig, I decided that I (too) needed something more reliable to obtain more accurate internal resistance results. As it happens, I was doing some shopping and picked up a few items:


It took a while for them to arrive due to international back-order, but at long last, I managed to get them and commence my "ghetto" battery holder/contact system. As usual, I bought a few extra items just in case I needed them - after all, what's the use of having a test rig if I don't have a second one to charge the batteries with?

Duratool PCB Holder Molex Battery Contacts

So I started with a scrap of vero-like strip-board (fibreglass type, very annoying to split). Using a track cutter tool, I isolated two tracks to allow me to mount four Pogo pins for four separate contacts at each terminal. They were very finnicky to solder with a fine iron and a set of tweezers, and some of them were ruined due to solder-splash. Luckily a bag of 100 of these cost next to nothing.

Vero Track CutPogo Pins Mounted 1Pogo Pins Mounted 2

From there I chose the top pair to be used for the BA6010 for Drive and Sense with the bottom pair used for the  BK8600BK8600 for Load and Sense This way all instruments have a sense contact to the battery terminal that is completely load free to avoid any resistance-reading contributions from variations in current flow as much as possible. After some copious amounts of heatshrinking, I was able to produce some "terminals". I tried to mount them onto the jaws initially with some superglue but as the jaws on the Duratool stand are aluminium, that failed miserably. The stiffness of the wire also places strain on the terminal PCBs as the RG59 is solid-core, which is non ideal. After some tinkering, I managed to break the circlips that held the jaws onto the stand - so instead, copious amounts of electrical tape came to the rescue.

Fenix TestingVarta Testing

I shorted the terminals for shorting compensation and mounted some batteries for testing. I tested a Fenix protected 26650 Li-Ion battery from a flashlight and a Varta Longlife AA Alkaline cell. Due to some play in the plastic holders, I provided some additional contact force with an elastic band - not very scientific but it would do for now.

Fenix Test Result

The test results were very impressive as the resistance is now measured much more accurately portraying even the very low resistance of a 26650 lithium ion cell Furthermore the voltage readings between the BA6010 and  BK8600BK8600 at this"low voltage range practically coincide(as the low range on my BA6010 tested well due to the use of sense lines on both instruments The measurement shows the internal resistance to be about 22.45mohms if we look at a datasheet for a random 26650 cell, we know to expect 23+/-1mohm. The result is hence spot-on.

Varta Test Result

Testing of the Varta Longlife Alkaline AAs showed some similar behaviour to tests before, but with a much more reasonable (lower) internal resistance.


Armed with this, I now needed to charge the Fenix 26650, so I rigged up a second PCB stand, this time using the Molex contacts with all contacts shorted together (as the pitch is not the same as the vero board, which is somewhat annoying and not all battery contacts will have the same area). Using copious amounts of epoxy resin, this time I did succeed in securing the connectors to the jaws after a day of letting the resin cure - so this one worked well. The best part is that one of the jaws is spring-loaded, allowing for quicker battery removal and replacement. I might revise my testing battery holder in the future using a similar technique.

Charging HolderCharging Contact

I still haven't heard any further contact from B&K Precision, however.


Further Updates

Further updates will be posted here as they arise.



This blog is part of a series of posts for the B&K Precision BA6010 Battery Analyser RoadTest, where you will find all the links to the other parts of the review.