We’re just back from VEX World Championships in Louisville, and everyone is already excited about the new game, In the Zone (which we have already nicknamed “Pylon Panic”). I will digress here from the new game to write about battery performance measurements because VEX batteries are a pretty new topic for me, and I’ve learned a lot of late. Turns out there was a lot I didn’t know that I didn’t know.
And since this is my usual encyclopedic posting, here’s your handy-dandy table of contents:
- Label your batteries if you haven’t already
- What you can expect from a VEX battery
- Batteries are a variable that can affect robot performance
- Measuring voltage is important
- Over the long term, knowing voltage may not be enough
- Keep a log book
Label Your Batteries If You Haven’t Already
For coaches who are new to VEX and may not have spent much time dealing with batteries, it’s vital to label your batteries. Without labels, not only are you not able to keep track of any battery performance information over time, but your team can quite easily be using the same batteries repeatedly, and not doing a systematic rotation through all of the batteries your team owns.
We had our batteries labeled numerically until recently; we owned 10 batteries and bought them all within a few months of each other, so didn’t need to keep track of each battery’s age, since they were all exactly the same. However, now that our team has been around for a few years, we are starting to replace batteries. Just numbering batteries sequentially doesn’t tell you which “batch” a given battery is from or how long it’s been around.
One suggestion from Team 3547: Virus (via the VEX World Coaches Association group on Facebook, which you should join if you’re an adult mentor reading this post!) is to give each battery a serial number of the form YYMMM##, which would show the year (YY) and month (MM) purchased, and then within that lot, give each battery a sequential number. So if you bought a batch of 2 batteries in March of this year, you could label them something like 2017Mar-1 and 2017Mar-2. I recommend choosing a naming system that (a) is easy to remember and (b) is obvious to understand when you’re holding a battery in your hand.
Rotate Batteries Systematically
It’s really easy to inadvertently use the same batteries over and over in the lab, and have a bunch of batteries with very light use. I’d volunteer to say that that is not a good plan, unless you’re deliberately saving some batteries for competition use only. (But then it wouldn’t be inadvertent…)
In our lab, we have a battery charging station made from a Husky toolbox “tote” we bought at Home Depot. It has 4 pockets on each side that fit a VEX battery just perfectly; the chargers are in the main compartment. We made a little laminated tag that’s zip-tied to one end of the box that says “FRONT” and another laminated tag with instructions on how to rotate batteries, lest anyone forget. In our lab, we take 2 batteries off the FRONT end for the robot, and then move all remaining batteries forward to fill the now-empty spots. The batteries that just came off the robot go in the rear-most pockets and get attached to the chargers. With a clearly-defined system like this, that all team members can see and read for themselves, we can be sure that all batteries make it up to the front of the rotation with the same frequency.
What You Can Expect from a VEX Battery
The old VEX Wiki had some informative data from a VEX Forum user named Quazar, who ran many tests of VEX batteries, and the voltage they deliver over time with different loads. The VEX Wiki is gone, but I recently found the same information on the VEX Forum. The most succinct summary of his results can be found in the graph below, showing the voltage available when a standard VEX 3000mAh battery is discharged at 4amps, 8amps, and 12amps (Quazar ran these tests on 2 separate batteries each time, hence the 2 green lines, 2 red lines, and 2 blue lines).
As you can see from the graph, in all usage scenarios, the voltage drops rather significantly right at the start of use, but then stays steady for most of its usable time, followed by a precipitous drop in voltage when it runs out of steam (Quazar’s tests were ceased when the voltage got to 5V or so, as that’s when the power expander light turns red). This graph is actually pretty good news; as you can see from the green 4amp line, the battery delivers pretty consistent power for most of its operating time, showing only a gradual decline from its rated 7.2V to 6.5V between 5 minutes and 40 minutes of use—much more desirable than, say, a battery that has a linear decrease in power from 8V at 0 minutes to 5V at 40 minutes.
Batteries are a Variable that Can Affect Robot Performance
Our Nothing But Net robot was a double-flywheel that was unfortunately highly sensitive to the squishiness and weight differences among the game balls. Due to various factors, we were not able to control our flywheel’s RPMs with a PID algorithm, so we had to adjust battery power to the motors to achieve different flywheel speeds. What we found in that process was that the power output from VEX batteries is highly variable, even for batteries that are of the same age and have a similar amount of use.
In Nothing But Net, teams had driver-load balls, to be shot from the corner of the field farthest from the net. We found out (the hard way, of course), that our 10 batteries had effective power output that were materially different from one another. With some batteries, we needed, say, 48 power to get balls to the net; others required a battery power of 56 for the same functionality. The variability in our batteries made the difference between balls not even reaching the net, or being sent to Jupiter, depending on which battery was randomly attached to the power expander (which was driving the flywheel). So we would devote an entire meeting before each tournament to testing all 10 of our batteries by shooting our basket of driver loads, and figuring out what power it took to score in the net. We’d then pick the 5 batteries that had the most similar profiles, and label them as being for the flywheel, and paired them up with the remaining 5 that were used on the chassis & intake.
Even with all of this testing and organizing, we had to do this procedure before every tournament because the profiles of the batteries would change enough over the course of a month to throw off the whole system. After testing, we’d of course have to also update the code to reflect our new power level.
The important lessons that we learned from this annoying process are that (a) batteries of the same vintage and general use can have material differences in performance; and (b) individual battery characteristics are a variable that need to be understood, particularly when programming autonomous movements, especially ones that rely on time (milliseconds).
I hope that this post will allow some coaches out there to learn these things NOT the hard way.
Measuring Voltage Is Important
Checking the voltage of batteries when you are done charging them is important to make sure that they are charging up fully and to make sure that your smart charger is doing its job.
Make Your Own Beautiful, Clear Voltmeter ~$15
Buried at the bottom of my post on Recommended Tools are instructions on making a voltmeter for ~$15. Anyone who has tried to test VEX batteries with a standard multimeter (left) knows that making the connection with the multimeter’s leads is a sketchy endeavor, particularly for high school-aged kids, and doesn’t produce the rock-solid output information you are probably looking for.
Making your own voltmeter requires a teeny bit of electrical work, but it’s well worth it. First, you’ll need to purchase the Panel Volt Meter from the Adafruit website ($7.95, plus shipping). As you can see in the photo at right, it’s a giant, digital display showing voltage to 2 decimal points.
However, this item comes with exposed red & black wires on the end, which is not helpful (or particularly safe) to connect to a VEX battery. So, you need to acquire a white plug-end that the same as the one on the VEX smart charger. Luckily, this is a regular component for sale, the Tamiya Connector, Female ($2.25 plus shipping). We had a dead battery charger hanging around, so we took the white plug off of that one to build our device, so all we needed to purchase was the panel display.
Here’s where you need an electrically-handy person to connect the Panel Volt Meter wires to the Tamiya Connector, Female. (a) Make sure the person looks at a battery that’s plugged into a battery charger to see what parts of the plug the red & black wires are connected to. (b) Be sure that there is a good wire-to-plug connection, or the whole thing will be a little finicky (ask me how I know this); we applied a little dab of hot glue to where the wires connect to the plug to keep it well-connected. That’s it, you’re done building your voltage readout. Plug in a battery, look at the giant read-out. (Note: when a 7.2V battery is freshly charged, it will give you a voltage reading somewhere north of 8V. This is normal; see green line in graph above.)
Having an easy-to-use voltage readout answers many questions just on its own without purchasing a more expensive piece of equipment (see below, Battery Beak). If you haven’t already encountered them, you will someday face problems like: “We’ve been driving for only one minute and the battery light is red, but we just took the battery off the charger.” Now you can test the battery lickety-split. You’ll know if you have a battery problem, maybe a battery-charger problem, or a cortex or wiring problem instead.
Monitor Voltage Via the LCD Screen
Another way to see what your voltage is doing while you’re operating the robot is to have the voltage displayed continuously on an LCD screen attached to your robot (place the code at the bottom of the main while-loop). Both EasyC and RobotC have built-in functions that allow you to do this without much fuss. (You do, however, need to own an LCD screen: ~$60, including the Serial-Y cable that is required-but-not-included with the LCD.) Having the battery level showing on the LCD can answer some of those questions above on-the-fly: “We’ve only been driving for a minute, but the battery light is red.” If you have the voltage on the screen, you can know right away whether it’s a battery problem or something else.
You can also get the power expander voltage to display on the screen. As described on page 2 of the Power Expander Info Sheet, first put an extension wire from the epxander’s “status” port to one of your analog input ports. Next, read the analog input information to a variable, and then divide that sensor value by 70 to get the voltage and display that answer to the LCD screen. (Ex.: If the analog value is 455, then 455/70 = 6.5volts.) However, there seems to be some confusion as to what this divisor should be; if you find you’re getting very large numbers that don’t make sense, divide your results by 280 instead of 70 (see p. 2 of the power expander info sheet if you’re still getting nonsensical values).
[Update Jan. 28, 2018] A very nice person on the VEX Forum, kypyro, has posted a detailed block of RobotC code to display both main battery and power expander battery voltage on the LCD screen. It’s the fourth response in this thread.
Wait 10-15 Minutes Between Charging and Testing
Another one of those Whaaaa? topics that I seem to come across on a regular basis is the concept of surface charge. During the charging process, it takes time for the charge to “move” (via chemical reaction) from the electrode into the interior of the battery cell. Measuring voltage right after charging doesn’t give the battery time to “distribute” that charge from the electrode into the rest of the material that comprises the inside of the battery, and may give readings that are higher than reality. This seems to be more of an issue with lead-acid batteries than the NiMH ones we use in VEX, but even sources dedicated to NiMH batteries indicate that surface charge is a real thing to be aware of. So the solution is to wait 10+ minutes between taking the battery off the charger and doing your testing.
Charge on “Safe” for Best Results
VEX Smart Chargers, as anyone who’s looked at them can see, have 2 settings: “Fast” and “Safe” (a labeling system I find rather amusing, though telling). Documentation indicates that the Safe setting results in longer battery life, and that the Fast setting should only be used at competitions. If you’ve ever held a battery that just came off of the Fast setting, you’ll know that they’re piping hot! However, I cannot locate any specific data that indicates how, exactly, the settings differ in their functionality and how much “longer life” one gets from Safe charging.
Using your new handy-dandy panel voltmeter, you can do your own test on Fast and Safe modes and see the difference. We have found that on Fast, the green-light “I’m done” signal on the charger produces a lower fully-charged voltage than when it’s on Safe mode.
Tip: Our team is (read: I am) a big fan of checklists, and when we’re packing for tournaments, our packing checklist has one column to check things off when we’re heading out from the lab, and another column that to check off each item when we are packing to come home to make sure that we haven’t lost anything. One item on the “Heading Home” checklist is to return all chargers to Safe mode. It’s easy to forget and leave them on Fast for who-knows-how-long.
Over the Long Term, Knowing Voltage May Not Be Enough
With any of the options described above (standard multimeter, Adafruit panel voltmeter, or LCD screen) it’s not too hard to measure a battery’s voltage, but that one piece of information only tells you whether a battery is charged or can be charged to full power. It doesn’t readily reveal anything about the health of the battery, how long it will be useful when your robot is in operation, whether it can hold a charge, etc.
Once you’ve been using your batteries for a while, you’ll want answers to these other questions. Enter the Battery Beak, from Cross the Road Electronics. I’ll start off by saying that this device is not cheap: $80 + $10 for the required plug adapter that will attach from the device to a VEX battery + tax + shipping. So I’d recommend this product for teams with a variety of battery vintages, or if you feel like your batteries are giving you performance problems and just need to know more. Since VEX batteries are $30 each, the Battery Beak is the price of about 3+ new batteries, to put it in perspective.
What the Battery Beak Does
The Battery Beak is a pretty nifty item. Once you tell it what type of battery you’re testing, it runs 3 separate tests and displays the output in teeny tiny font on the display screen:
In the top section, it tells you whether your battery is charged, and to what level (Charge %). This can be helpful when your team is in a rush at a competition, and just needs to get the best battery you have in short order. The user manual says that for NiMH-type, a charge of 90% or higher is good for competition usage.
At the very top of the screen, it gives an overall rating to the battery: Good, Fair, or Bad. More on this rating in the section below.
The 3 tests (labeled V0, V1, and V2) that get run on VEX batteries are as follows:
- Voltage with no load; this is the same value you’d get off of a voltmeter.
- Voltage with 1 Amp load
- Voltage with 5 Amp load (not 18 Amps as in the screenshot above, which would be ridiculous for VEX batteries that are generally controlled by 4amp circuit breakers)
These ratings are then used to calculate the “Internal Resistance” (Rint) of the battery using the V1 and V2 readings as follows:
Rint = Change in Voltage = ΔV
Change in Current ΔI
In the screenshot above,
ΔV = 7.963 – 6.087 = 1.876
ΔI = 18amps – 1amp = 17
Do the math, and you get the Rint value shown on the screen = .110 ohms.
So What Is Rint Anyway?
As stated above, Rint is an abbreviation of “Internal Resistance.” Since batteries are real-life items, working via chemical reactions, the internal resistance of a battery is never 0, even fresh-out-of-the-box, without a load placed on it. The internal resistance of a battery acts like a resistor placed in series with the battery, so the higher the internal resistance, the lower the output voltage. Rint can be thought of as an unwanted parasite, sucking off some of your battery’s voltage before you can make use of it; obviously, we’d like this number to be as small as possible!
My post last year on VEX Motors explains how DC motors work: higher motor output is achieved via applying higher voltage, and that higher voltage is accomplished via the motor controller’s cycling on-and-off to deliver the desired amount. So, if one wants the maximum possible output from a motor, one needs the maximum possible voltage delivered from the battery; higher Rint values result in lower voltage available.
Ohm’s law is V = I*R, or voltage = current * resistance. With an internal resistance of, say, 0.08 ohms and a current of 4amps, the voltage across that resistor is 4 * .08 = 0.32volts, meaning that the battery’s internal resistance alone is siphoning off about 1/3 of a volt; higher Rint means even greater voltage loss.
Look at Rint, Not Just the “Rating Word”
When we first got our device, we were alarmed that almost all of our brand-new batteries were reading as “Fair” instead of “Good”. However, after testing a lot of batteries, we’ve put together the following table of Rint values for VEX batteries and the Battery Beak rating assessment (this information is not available anywhere in the Battery Beak documentation, FYI).
|Battery Rating||Rint Values|
|Fair||.07 – .089|
What we found out after testing our batteries was that all of our brand-new “Fair” batteries were right about .072, while our few “Good” batteries were all right around .069, so even though some were Fair and some Good, they were really extremely similar in their capabilities.
That’s when we decided to ignore the “rating word” and focus only on the Rint values.
Keep a Log Book
Getting useful data from the Battery Beak is great in the immediate-term: Is this battery still usable? Is it still usable under competition conditions? What can we expect from this battery? Even when using a standard multimeter or panel voltmeter as described above answers questions: Can this battery be fully charged? How much did voltage drop during the time we just used it on the robot?
However, what you really want to know is whether your batteries are holding up over time, or if they are degrading at a rate that is troubling, and also if some batteries are holding up while others are not. Enter the Battery Log Book! Any team that shells out $100 for a Battery Beak should really also go to the small additional hassle of writing down the data in a list or journal when you take a reading.
I recommend having a small 3-ring binder in your lab, with one page for each battery, which includes at the top the battery’s “serial number” as described above under Labeling System. If you use the method described above, the serial number will tell you when the battery was purchased; if you use another labeling system, be sure to include the date purchased at the top of the battery’s page in your binder.
Take readings when your batteries are brand-new, and then take readings every-so-often (very scientific, I know, but it really does depend on how often you use them during the year, as you’ll be using them less when you’re brainstorming than when you’re leading up to a tournament). With the Battery Beak, put the date of the test and the Rint and V0 values in the book. There is no need to write down the V1, and V2 individual numbers that are shown on the readout, since their values are what comprise the Rint. If you’re using a multimeter or panel voltmeter, record the date and the voltage measured. Also, add a “Comments” column to your log page where you can write down other pertinent information, such as indicating whether the test was taken when fully charged vs. after robot use, whether you are experiencing battery problems that prompted this test, whether the charger was on Fast or Safe mode, etc.
Without a log book, you will really not be able to make any informed decisions about whether a battery is competition-ready, whether it can hold a charge over time, and whether it needs replacing.
♦ ♦ ♦
There you have it, another tome of information from the Coach’s Corner. I hope that this page helps more coaches and mentors out there understand how VEX batteries work, ways to manage your batteries, and why it’s worthwhile to take measurements on a regular basis. If I’ve got something wrong in the information presented above, please email us; my goal is to provide useful, accurate information and am more than happy to make corrections here.