Unofficial: Quazar's Battery Load Test

This post will serve as an archive for Quazar’s Battery Load Test that was previously posted on the VEX Wiki. This was done by a member of the community (Quazar) and should not be considered official. That said, we applaud Quazar for his thorough engineering work and want to ensure that the information is retained for future users.


An accurate integrating power meter was used in conjunction with a homemade dummy-load to capture the discharge curves of these batteries under constant 4A, 8A, and 12A loads.

The batteries tested were:

Since batteries are chemical systems that yield varying results even in the most controlled setting, I used a pair of each battery type in every test. This will graphically demonstrate the variance that can be expected even from identical batteries under identical conditions.

The NiMH batteries I used were brand-new, but the NiCd batteries are several years old and have seen periods of heavy use during that time. Interestingly, the captured data clearly shows that one of the NiCd batteries is in poor condition, while the other is in fair shape.


Before each test run, the battery under test was fully charged using the new Smart Battery Charger on the “Safe” setting. The battery was then allowed to rest for at least 10 minutes to cool down to room temperature before being placed under load.

Each battery was placed under load until its output voltage depressed to below 5.1V. This cutoff voltage was chosen because that is the level at which the Power Expander’s battery LED turns red. During the period of discharge, the power meter captured Volts, Amps, Watts, mAh, and mWh four times a second.

Batteries were loaded at 4A, 8A, and 12A. These levels were chosen because they represent loads that might be generated by combinations of actual Vex hardware. The Vex v0.5 Microcontroller and Power Expander each have a 4 Amp over-current protection device, and the Cortex Microcontroller has a pair of 4A protection devices.
I then used the R analytical software to analyze and graph the results. The raw data and graphs are available as a Battery Test

Battery Pack Ratings and Internal Resistance

Battery packs are rated in mAh (milli-Ampere • hours), which roughly indicates how many milli-Amps the pack can provide for 1 hour. However, it says nothing about the voltage that will be delivered during that time; cell voltage is a function of cell chemistry (NiCd or NiMH) and the number of cells in the pack (6 in this case). These packs are rated at a “nominal” 7.2V (1.2V per cell x 6 cells = 7.2V).

These mAh capacity and nominal voltage ratings are usually provided assuming a 0.2C load, which means a discharge rate of 1/5 the pack capacity (400mA load for a 2000mAh pack). The test data shown below are taken at 4A, 8A, and 12A. These loads respectively represent a 2C, 4C, and 6C discharge for the 2000mAh packs, and 1.33C, 2.67C, and 4C discharge for the 3000mAh packs.

Battery packs have an additional characteristic called “internal resistance” which becomes important under heavy loads. Each cell behaves as if it has a series resistor inside of it, which will produce a voltage drop proportional to the current load: Vdrop = Amps x InternalResistance. For instance, a 0.1Ω internal resistance would cause a 0.4V voltage drop at 4A.

So, what does all this mean? The heavier the load, the lower the voltage the battery delivers. A small internal resistance will result in a smaller voltage drop, but all batteries depress to some extent. The voltage drop also results in the packs apparently running out of power earlier than their mAh rating suggests they should; they may still have energy in them, but because the voltage is depressed too low, you can’t effectively use the full capacity. Remember that lower battery voltage means lower motor RPM and increased chance of a microcontroller brown-out.

For all of these reasons, I prefer to use Watts to evaluate power being delivered, and Watt•Hours to evaluate energy capacity. Watts (for DC circuits) are simply calculated as Volts x Amps. This means that Watts tell the whole story, representing both the current load and delivered voltage in a single number. Likewise, Watt•Hours captures both the mAh delivered, as well as the voltage at which it was delivered. I’ve included these values in the statistics below for completeness.

Discharge at 4A

First, I ran all the batteries at 4A, which represents the maximum continuous load that a single v0.5 microcontroller, power expander, or bank of Cortex motor ports would be able to place on a battery. This is the resulting discharge graph:

You can see that the two 3000mAh NiMH batteries (red lines) performed almost identically. They also had the least amount of voltage drop of all the batteries, as a result of having the lowest internal resistance.

The two 2000mAh NiMH batteries also performed similarly, though one went a bit longer than the other but at a reduced voltage. One of the NiCds delivered less voltage and for a shorter time than the other. Regarding voltage drop, you can see that the NiCds did a bit better than the smaller NiMH batteries, which is a result of their low internal resistance.

All six batteries performed well at 4A, and produced textbook discharge curves. Also, you can see that the lower the internal resistance, the higher the voltage during discharge.

Here are the relevant statistics:

2000mAh NiCd Battery #1 at 4A*(light green line)	2000mAh NiCd Battery #2 at 4A*(dark green line)
  Runtime: 25:13.50					Runtime: 23:25.50
  Delivered: 1678.7mAh, 11.74W*hrs"			  Delivered: 1561.3mAh, 10.75W*hrs
  Internal Resistance = 0.118 ohms			Internal Resistance = 0.115 ohms
  Volts: Min = 5.090 Mean = 6.994 Max. = 7.846		  Volts: Min = 5.094 Mean = 6.887 Max = 7.898
  Amps: Min = 3.990 Mean = 3.993 Max = 4.034		  Amps: Min = 3.996 Mean = 4.000 Max = 4.224
  Watts: Min = 20.32 Mean = 27.93 Max = 31.65		  Watts: Min = 20.37 Mean = 27.55 Max = 31.95

2000mAh NiMH Battery #1 at 4A*(light blue line)		2000mAh NiMH Battery #2 at 4A*(dark blue line)
  Runtime: 26:20.00					  Runtime: 22:31.50
  Delivered: 1753.4mAh, 10.98W*hrs			  Delivered: 1499.5mAh, 9.75W*hrs
  Internal Resistance = 0.248 ohms			  Internal Resistance = 0.224 ohms
  Volts: Min = 5.099 Mean = 6.263 Max = 7.142		  Volts: Min = 5.094 Mean = 6.501 Max = 7.377
  Amps: Min = 3.992 Mean = 3.995 Max = 4.041		  Amps: Min = 3.992 Mean = 3.994 Max = 4.027
  Watts: Min = 20.37 Mean = 25.02 Max = 28.86		  Watts: Min = 20.34 Mean = 25.97 Max = 29.70

3000mAh NiMH Battery #1 at 4A*(light red line)		3000mAh NiMH Battery #2 at 4A*(dark red line)
  Runtime: 40:39.00					  Runtime: 41:22.75
  Delivered: 2704.4mAh, 19.14W*hrs			  Delivered: 2757.0mAh, 19.49W*hrs
  Internal Resistance = 0.080 ohms			  Internal Resistance = 0.078 ohms
  Volts: Min = 5.093 Mean = 7.072 Max = 7.825		  Volts: Min = 5.141 Mean = 7.067 Max = 7.930
  Amps: Min = 3.990 Mean = 3.992 Max = 4.027		  Amps: Min = 3.993 Mean = 3.998 Max = 4.043
  Watts: Min = 20.34 Mean = 28.23 Max = 31.51		  Watts: Min = 20.53 Mean = 28.25 Max = 32.06

(continued in next post)


Discharge at 8A

Next, I ran all the batteries at 8A, which represents the maximum continuous load that a fully loaded (both banks) Cortex microcontroller, or a v0.5 microcontroller and power expander would be able to place on a battery using a battery Y adapter. This is the resulting discharge graph:

You can see that the two 3000mAh NiMH batteries (red lines) performed very well and almost identically. Again, they had the least amount of voltage drop of all the batteries, as a result of having the lowest internal resistance.

The 2000mAh NiMH packs (blue lines) performed OK, but 8A is clearly near the limits of continuous load that these batteries can reasonably sustain. Voltage drop pushed the voltage very low, and nearly hit the 5.0V cutoff before recovering a bit.

The NiCd graphs (green lines) show an interesting result. The light green line shows a reasonable discharge curve for a NiCd under this load, but the dark green line clearly shows this battery is weak and unable to sustain this load. This is probably a good example of a battery that is nearing the end of its useful life.

Here are the relevant statistics:

2000mAh NiCd Battery #1 at 8A*(light green line)	2000mAh NiCd Battery #2 at 8A*(dark green line)
  Runtime: 10:59.75					  Runtime: 08:30.00
  "Delivered: 1461.8mAh, 9.44W*hrs"			  "Delivered: 1129.8mAh, 6.89W*hrs"
  Internal Resistance = 0.110 ohms			  Internal Resistance = 0.107 ohms
  Volts: Min = 5.097 Mean = 6.456 Max = 7.322		  Volts: Min = 5.098 Mean = 6.098 Max = 7.265
  Amps: Min = 7.963 Mean = 7.977 Max = 8.085		  Amps: Min = 7.966 Mean = 7.976 Max = 8.042
  Watts: Min = 40.60 Mean = 51.50 Max = 59.19		  Watts: Min = 40.63 Mean = 48.65 Max = 58.42

2000mAh NiMH Battery #1 at 8A*(light blue line)		2000mAh NiMH Battery #2 at 8A*(dark blue line)
  Runtime: 11:22.25					  Runtime: 10:03.50
  "Delivered: 1512.8mAh, 8.10W*hrs"			  "Delivered: 1337.6mAh, 7.38W*hrs"
  Internal Resistance = 0.286 ohms			  Internal Resistance = 0.263 ohms
  Volts: Min = 5.098 Mean = 5.353 Max = 5.812		  Volts: Min = 5.097 Mean = 5.516 Max = 5.895
  Amps: Min = 7.969 Mean = 7.983 Max = 8.207		  Amps: Min = 7.969 Mean = 7.979 Max = 8.050
  Watts: Min = 40.63 Mean = 42.73 Max = 46.64		  Watts: Min = 40.63 Mean = 44.02 Max = 47.46
3000mAh NiMH Battery #1 at 8A*(light red line)		3000mAh NiMH Battery #2 at 8A*(dark red line)
  Runtime: 20:29.50					  Runtime: 20:36.00
  "Delivered: 2721.5mAh, 18.35W*hrs"			  Delivered: 2735.0mAh, 18.47W*hrs"
  Internal Resistance = 0.083 ohms			  Internal Resistance = 0.082 ohms
  Volts: Min = 5.091 Mean = 6.742 Max = 7.441		  Volts: Min = 5.099 Mean = 6.752 Max = 7.443
  Amps: Min = 7.961 Mean = 7.969 Max = 8.076		  Amps: Min = 7.961 Mean = 7.967 Max = 8.041
  Watts: Min = 40.55 Mean = 53.73 Max = 60.09		  Watts: Min = 40.61 Mean = 53.79 Max = 59.85

Discharge at 12A

Next, I ran all the batteries at 12A, which represents the maximum continuous load that a fully-loaded Cortex microcontroller and one power expander would be able to place on a battery using a Y adapter. This 12A continuous load is a very high and is not really realistic for a Vex robot, though a Vex robot may experience brief spikes in the range of 12A. Here is the resulting discharge graph:

Again, you can see that the 3000mAh NiMH batteries held up well under the heavy load, and nearly ran for the full theoretical 15 minutes. They also continued to show a classical discharge curve. At this heavy load, the slight difference in these two packs is more apparent than at lighter loads.

The 2000mAh NiMH batteries simply could not support a continuous 12A load. The higher internal resistance and the resulting voltage drop caused the output to dip below the 5.1V cutoff almost immediately (light blue line). The pack still held plenty of energy, but it simply could not be used at this discharge rate. For the 2nd test run, I ran two packs wired in parallel rather than just watching the 2nd battery fail like the first one. I was hoping that the two in parallel might perform better than a single 3000mAh pack at the same weight. The result was a high capacity pack (4000mAh) but with a slightly higher internal resistance than a 3000mAh pack. It ran just as long as the 3000mAh pack, but at a lower voltage.

The NiCds did OK, though the pack that showed weak on the 8A run did much worse on the 12A run (dark green line). The stronger NiCd behaved much more as you would expect under this load (light green line).
Here are the relevant statistics:

2000mAh NiCd Battery #1 at 12A*(light green line)	2000mAh NiCd Battery #2 at 12A*(dark green line)
Runtime: 05:46.25					  Runtime: 04:23.25
Delivered: 1153.9mAh, 6.99W*hrs				  Delivered: 878.2mAh, 4.91W*hrs"
Internal Resistance = 0.101 ohms			  Internal Resistance = 0.097 ohms
Volts: Min = 5.105 Mean = 6.060 Max = 6.961		  Volts: Min = 5.099 Mean = 5.585 Max = 6.987
Amps: Min = 11.95 Mean = 12.00 Max = 12.12		  Amps: Min = 11.99 Mean = 12.02 Max = 12.14
Watts: Min = 61.27 Mean = 72.74 Max = 84.37		  Watts: Min = 61.20 Mean = 67.14 Max = 84.80

2000mAh NiMH Battery #1 at 12A*(light blue line)	Dual 2000mAh NiMH Batteries in parallel at 12A*(dark blue line)
Runtime: 00:20.25					  Runtime: 14:35.75
Delivered: 67.1mAh, 0.35W*hrs				  Delivered: 2921.3mAh, 16.91W*hrs"
Internal Resistance = 0.213 ohms			  Internal Resistance = 0.139 ohms
Volts: Min = 5.099 Mean = 5.288 Max = 5.719		  Volts: Min = 5.098 Mean = 5.787 Max = 6.675
Amps: Min = 12.06 Mean = 12.06 Max = 12.08		  Amps: Min = 12.00 Mean = 12.01 Max = 12.08
Watts: Min = 61.49 Mean = 63.80 Max = 69.10		  Watts: Min = 61.22 Mean = 69.51 Max = 80.63

3000mAh NiMH Battery #1 at 12A*(light red line)		3000mAh NiMH Battery #2 at 12A*(dark red line)
Runtime: 13:33.75					  Runtime: 14:47.25
Delivered: 2712.8mAh, 17.35W*hrs			  Delivered: 2958.6mAh, 19.24W*hrs"
Internal Resistance = 0.080 ohms			  Internal Resistance = 0.082 ohms
Volts: Min = 5.094 Mean = 6.395 Max = 7.174		  Volts: Min = 5.094 Mean = 6.502 Max = 7.482
Amps: Min = 11.97 Mean = 12.00 Max = 12.16		  Amps: Min = 11.99 Mean = 12.00 Max = 12.17
Watts: Min = 61.17 Mean = 76.77 Max = 87.22		  Watts: Min = 61.15 Mean = 78.05 Max = 91.05