I just wonder if there is any benefits using the 9v backup battery to the Cortex or PIC controller. It is said to help with maintaining wirelss connection if main battery is disconnected, but if main battery is not there it is pretty much useless to maintain wireless link. And during competition, it is not allowed to change main battery anyway.
Since it is a absolute requirement in the competition, I just don’t quite fully understand that. I think the 9V battery is an extra hassle, added cost and extra point of failure without much benefits in a VEX comeptition.
I know our teams will always use one, just to minimize bad luck. We have had events where the key is shaken or there is a problem with the event organizer and without the battery in the bots did not work. Then again we have had events were the battery was low and it kept the vexnet from connecting or stayed connected after turning the bot off, causing huge confusing during a match when our bot would not work. Its really comes down to how confident you are in vexnet and the competition manager. If you prefer to cover all of you bases, I would put it in.
My observations are during a motor stall/current over-draw, the resettable fuse (PTC) trips, the Cortext resets itself, the whole box reboots. Will 9v backup keep code running during that process? Not fully convinced.
Our team has used one, but it can produce the infamous “Lights are on but robot is switched off” problem
The problem is because the backup battery will keep your robot on for at least five seconds after power is cut – even when it is cut by the power switch.
So even though it looks like your robot is perfectly fine, it really is running off the backup battery, and when you go to start the match, none of your motors will work.
Fortunately there’s a rule this year that lets you reach in and switch on your robot :-P, so the switching issue isn’t as big of an issue, but if you do use a 9V make sure you check your power switch before each match!
I believe you answered your own question. If the 9-volt battery prevents the controller from resetting during a low-voltage event, the controller would work perfectly. If you never drew enough power to cause a low-voltage event, the controller would work perfectly. In normal usage, you would probably be unable to tell the difference.
Anyone who was active during the PIC controller days might be able to remember what happened during a low-voltage reset in the “good old days.”
(Hint: What does a PIC-controller equipped VEX competition robot do when it first powers on and sees a radio signal?)
In defense of the PIC and radio communication, I have to say that it was way less buggy than VexNET. Though as we enter our second season(third technically, but it wan’t really widespread until roundup) with VexNET hopefully many of those problems (including user unfamiliarity with the system) have been ironed out.
Some previous post summarized the 9v battery usage this way (hearsay):
1 A good backup 9v battery is better than none, as it can save you in some cases.
2 A bad backup 9v battery is much worse than none.
3 The on-off switch does not include the 9v, so the best correct hassle to follow is to unplug the 9v battery from Cortex when you turn it off, and plug it in when you turn it on.
In a utopian world we would have a schematic for the power distribution in the cortex (well actually a schematic for the whole design). We have three sources of power, 9v backup, main battery and USB. How these three interact and are connected internally and what intermediate regulation is used, which rails are current limited etc. would be a big help. I often power the cortex via USB in, then again I often use the USB out to power the joystick. The main battery need to be on to provide 5V to sensors, where the 9V backup fits in with all this is a mystery. I guess reverse engineering this will be a task for another slow Sunday afternoon.
I haven’t done any rigorous tests on this, but I can tell you about an experience that we had at worlds: We had a backup battery plugged in (I don’t know how charged it was, so as I said, it’s not a good example), and our main battery unplugged momentarily during competition. An arm on the robot set to a certain position with an encoder started to flail wildly when this happened. We realized that the encoder was getting reset to zero when the main battery was unplugged. So if the battery was charged, I guess that means that the code does not run in the background.
\ Not having looked at any documentation whatsoever, I’m guessing that the 9V is regulated to 5V. Since 5V batteries aren’t readily available, and having a combination of AAs would be tedious, I guess that the 9V is the best choice because of availability.
I did some simple preliminary tests to try and answer this question.
I connected the backup battery to a cortex connected by USB to the PC and created a simple RobotC program which I executed in standalone mode, no WiFI, there was no external 7.2V battery connected. I disconnected the USB cable, the LEDs on the cortex continued to flash. When I reconnected the USB cable the system and program time counters (visible in the system parameter window) were still running and had incremented by about the amount of time the USB was disconnected. So conclusion so far is that the program remained running.
Next I checked the current used from the 9V battery.
9v battery connected but no external 7.2V battery or USB cable, LEDs were off. 9V battery current draw was 4mA.
7.2V external battery connected and cortex on, 9V battery current draw 4mA.
USB connected, no external battery, 9V current draw varied between 20mA and 30mA.
Disconnected USB and external battery, cortex running from 9V battery the current draw was 130mA.
A typical alkaline 9V battery has a capacity of about 500 mAh so would last (in theory) up to 4 hours running the cortex and perhaps 100 hours when connected but the cortex off.
When the cortex is running from the 9V battery (or from the USB input) there is no 5V power available on the digital or analog IO ports. Any encoders or other sensors connected will not work when the software is running from the 9V battery alone which may explain the behavior you saw at worlds. 5V is available on the USB output so WiFi should stay running.
RobotC does not officially support monitoring the 9V backup battery, I have asked CMU to add this functionality (I have a work around if anyone really needs it but it requires using RobotC opcodes directly which is not recommended). Ideally software should monitor both the external battery voltage and backup battery voltage and take action as necessary. For example, before the match starts an LED could be flashed if either voltages were considered low.
All your cases seem run without Wifi key. Have you run a test with VEXNet key in and actively connected with joystick? This will be close to real situation in competition. I think it should draw a lot higher current.
These are great info to know. Wish VEXLab has these (and more) info regarding Cortex in Wiki documentation.
Good suggestion. We are using easyC which has backup battery support, for sure we will monitor all batteries via software.
Well I did these tests in about 20 minutes and didn’t have a WiFi key available. You are right, many WiFi USB adapters are rated at around 360mA in transmit which would put the total current draw up near 500mA. 9V batteries in general are not really intended to be used at this high a current, they are normally expected to be running at 50mA or much less. However, for the very short times that the 9V would be needed I’m sure it’s fine. One thing to note is that Alkaline will do better in these types of situations than the much more expensive Lithium ones. NiMH also do well but have a lower overall rating so should be kept charged, they will also start at a lower voltage, perhaps 8.4V. I don’t know what VEX has in the way of regulation on the 9V input so don’t know how low the battery can get before it’s a problem.
I will do a few more tests perhaps Thursday if I can find time.