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.
This author's Team 1666 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 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 2017, you could label them something like 2017Mar-1 and 2017Mar-2. Choose a naming system that (a) is easy to remember and (b) is obvious to understand when holding a battery in your hand.
It's easy to inadvertently use the same batteries over and over in the lab, and have a bunch of batteries with very light use (and not know which is which, to boot).
Team 1666 uses have a battery charging station made from a Husky toolbox tote purchased at Home Depot. It has 4 pockets on each side that fit a VEX battery perfectly; the chargers are in the main compartment. Team 1666 then attached a little laminated tag that's zip-tied to one end of the box that says “FRONT” and another laminated tag on the same zip tie with instructions on how to rotate batteries. Team 1666 takes 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—one can be sure that all batteries make it up to the front of the rotation with the same frequency.
A VEX Forum user named Quazar ran many tests of VEX batteries, including the voltage they deliver over time with different loads. This information was posted on the old VEX Wiki as well as 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).1)
As shown in 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; looking at 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.
Team 1666's Nothing But Net double-flywheel ball-launcher was unfortunately highly sensitive to the squishiness and weight differences among the game balls. Due to various factors, the team was not able to control the flywheel's RPMs with a PID algorithm, so they had to adjust battery power to the motors to achieve different flywheel speeds. What they 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. Team 1666 discovered that their 10 batteries had effective power outputs that were materially different from one another. With some batteries, it needed, say, 48 power to get balls to the net; others required a battery power of 56 for the same functionality. The variability in the batteries alone made the difference between balls not even reaching the net, going in the net, or being sent to Jupiter, depending on which battery was randomly attached to the power expander (which was driving the flywheel). The team would devote an entire meeting before each tournament to testing all 10 batteries by shooting our basket of driver loads, and figuring out what power it took to score in the net. They then chose the 5 batteries that had the most similar profiles, and labeled 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, the team found they 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.
The important lessons that we learned from this annoying process were that (a) batteries of the same vintage and general use can still 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).
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.
Anyone who has tried to test VEX batteries with a standard multimeter (left)2) 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 shown in the photo at right,3) 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). Or if your team has a dead battery charger hanging around, you could take the white plug off of that one to build the device, so all one needs to purchase is 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 your team hasn'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.
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 the Cortex analog input ports. Next, read the analog input information to a variable in your program, 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 the power expander info sheet linked above if you're still getting nonsensical values).
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.
VEX Smart Chargers, as anyone who's looked at them can see, have 2 settings: “Fast” and “Safe” (a labeling system this author finds 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. [Please edit this article if you can add this information.]
Using your new handy-dandy panel voltmeter, you can do your own test on Fast and Safe modes and see the difference. Generally, green-light “I'm done” signal on the charger produces a lower fully-charged voltage on Fast than when it's on Safe mode.
Tip: Team 1666 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. 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.
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.4) 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.
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 screen5):
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:
These ratings are then used to calculate the “Internal Resistance” (Rint) of the battery using the V1 and V2 readings as follows:
In the screenshot above,
ΔV = 7.963v – 6.087v = 1.876 ΔI = 18amps – 1amp = 17
Do the math (1.876 / 17), and you get the Rint value shown on the screen = .110 ohms.
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, one would like this number to be as small as possible!
In DC motors (like those used in VEX) 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.
When Team 1666 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 close to .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.
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 each reading is taken.
Keep 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 Label Your Batteries. 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 (the timing really depends on how often you use them during the year, as they will be used 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.