Roomba Power Status
Roomba Power Status
So I finally got my roomba working with my Arduino and now I have it so it will dock and undock based on if the battery is charged or if it needs a charge. However, I am having issues figuring out how to properly detect the battery is getting really low.
I poll the roomba for power status and I get the following bytes back (as an example):
0
67
48
-1
67
38
10
-117
10
-114
I know I am getting the right values since the first byte changes based on if the unit is charging or not. My main question is how do I know when the battery is getting low? I assumed I could use the bytes 22 and 23 (high and low respectively) for the batteries charge but I charged the battery and took some readings and then let the unit run until I had a flashing red light and then took some readings. After I did the high byte/low byte math the values did not come out much different. Am I looking at the wrong place here? What is the proper way to know when the battery is getting low?
I poll the roomba for power status and I get the following bytes back (as an example):
0
67
48
-1
67
38
10
-117
10
-114
I know I am getting the right values since the first byte changes based on if the unit is charging or not. My main question is how do I know when the battery is getting low? I assumed I could use the bytes 22 and 23 (high and low respectively) for the batteries charge but I charged the battery and took some readings and then let the unit run until I had a flashing red light and then took some readings. After I did the high byte/low byte math the values did not come out much different. Am I looking at the wrong place here? What is the proper way to know when the battery is getting low?
- vic7767
- Robot Master
- Posts: 15556
- Joined: January 14th, 2006, 7:31 pm
- Location: Haughton Louisiana - USA
Re: Roomba Power Status
Which command are you sending to poll the sensors with and which packet group are you requesting ?
What I mean is that for example packet group 3 contains packets 21 thru 26, is that you are doing ?
What I mean is that for example packet group 3 contains packets 21 thru 26, is that you are doing ?
Re: Roomba Power Status
Yes, I am sending the bytes 142 3 and putting the 10 byte results into an array.
-
Gordon
- Robot Master
- Posts: 4304
- Joined: April 6th, 2005, 2:02 am
- Location: Santa Ynez, CA USA
- Contact:
Re: Roomba Power Status
I think you are.hybrid wrote:... My main question is how do I know when the battery is getting low? ... Am I looking at the wrong place here?
Sampling of battery voltage must be done while Roomba is ON-mission, with all motors running. Roomba automatically does the low battery checking for us (which I'm sure you know), and when the loaded battery voltage crosses the 12-volt level, the robot will halt and complain.What is the proper way to know when the battery is getting low?
If you don't find that stopped Roomba quickly (less than five minutes) to measure its no-load voltage, you will find it is above 12Vdc when you do get to it! And possibly ask why Roomba stopped when it still had battery voltage.
Battery voltage is not a good indicator of charge in the NiMH battery. The following post...
http://www.robotreviews.com/chat/viewto ... 622#p52622
...shows a plot that indicates how quickly a battery can recover from the 12-volt, loaded level, to a 14-volt NO-load level.
OTOH, when you do measure 12Vdc NO-load on a battery, you know you have a battery badly in need of re-charge -- and may even need replacement.
Re: Roomba Power Status
Are you doing your math right? The voltage is ((256*byte22) +byte23)/1000. In your example the data reports 17.2V. When I monitor the voltage of my create security bot it indeed drops over time because even when stationary a small amount of current is drawn. I would expect you to see a difference in voltage from fully charged to fully discharged.
Mike
Reds x 3, Dirt Dog, Disco (now a parts bot), Create, Scooba 350, and Security Dawg
Evolution Mint
Neato XV-11
Shark Ion 750
Reds x 3, Dirt Dog, Disco (now a parts bot), Create, Scooba 350, and Security Dawg
Evolution Mint
Neato XV-11
Shark Ion 750
Re: Roomba Power Status
Ok, to be clear. I was not using voltage but current.
I am doing the high byte low byte math right (same as above but I did not bother dividing by 1000) so I don't think that is an issue. I have removed the side brush and all vacuum motors from the roomba so the only ones left are the right and left wheels. So what you are saying is that I need to check the battery while the robot is in motion?
I assume I should see some sort of drop like in this chart? I would be looking at the pink line:

I am doing the high byte low byte math right (same as above but I did not bother dividing by 1000) so I don't think that is an issue. I have removed the side brush and all vacuum motors from the roomba so the only ones left are the right and left wheels. So what you are saying is that I need to check the battery while the robot is in motion?
I assume I should see some sort of drop like in this chart? I would be looking at the pink line:

- vic7767
- Robot Master
- Posts: 15556
- Joined: January 14th, 2006, 7:31 pm
- Location: Haughton Louisiana - USA
Re: Roomba Power Status
I would think that the current demand from the drive motors would remain constant but that the battery voltage will drop towards the 12 volt docking trigger voltage. Would it be better to watch the voltage ?
Re: Roomba Power Status
I have tried watching the voltage but it seems to trigger pretty early in the cycle (15 min or so on a pretty new battery and the roomba only has been driving around... no other motors other then a single little servo.) However, I have not been checking while the roomba was in motion. I assume that would be the key?
- vic7767
- Robot Master
- Posts: 15556
- Joined: January 14th, 2006, 7:31 pm
- Location: Haughton Louisiana - USA
Re: Roomba Power Status
I'm not sure either but give it a try and let us know.
I just got my Arduino Duemilanove board today, haven't even gotten the WinXP drivers installed yet.
I just got my Arduino Duemilanove board today, haven't even gotten the WinXP drivers installed yet.
-
Gordon
- Robot Master
- Posts: 4304
- Joined: April 6th, 2005, 2:02 am
- Location: Santa Ynez, CA USA
- Contact:
Re: Roomba Power Status
I can't see that operating current will tell you what you want to know about low battery. As long as battery voltage remains above the 12-volts cut-off, Roomba will draw the current it requires (assuming no module's current exceeds its assigned current limit. If that happens, Roomba will quit with error.)hybrid wrote:Ok, to be clear. I was not using voltage but current.
The way to think about that is it only makes sense to sample voltage while current is being drawn from the battery, because you want to shed the load before voltage falls low enough to reverse-voltage charge any weak cell in the pack. That is why iRobot's robots sample battery voltage on the fly -- to ensure loaded terminal voltage never falls below a nominal 12-volts (one volt per cell).... I have removed the side brush and all vacuum motors from the roomba so the only ones left are the right and left wheels. So what you are saying is that I need to check the battery while the robot is in motion?
Since you have purposely dropped a good portion (roughly half) of the normal load, Roomba will experience a longer run-time before reaching the low-battery indication, and then the ultimate 12-volt limit.
The voltage curve is always an ogive curve (S-curve, rotated 90-deg CCW), starting high, with fresh charge, falling quickly to around the 15-volts level, then showing a long & shallow -- somewhat linear -- voltage droop, passing through the mean 14.4V point, passing through 13V, and eventually showing more curvature (concave down), and steepening as it passes through the 12-volt limit.I assume I should see some sort of drop like in this chart?
Yes, when monitoring current. It will be a fairly flat (constant) line, but with delta-load bumps here and there.I would be looking at the pink line:...
What you see in the plot is the result of a manually tended bench test, not an operational Roomba test. I was late in disconnecting the load, else the pink link would have fallen at the 12-volt crossing.
-
Gordon
- Robot Master
- Posts: 4304
- Joined: April 6th, 2005, 2:02 am
- Location: Santa Ynez, CA USA
- Contact:
Re: Roomba Power Status
To get a better understanding of that battery's capability, you should gear up to load-test it with whatever operating current you intend Roomba to draw. Drive wheels can pull 0.3 to 0.4A each -- free-running, off the floor.hybrid wrote:I have tried watching the voltage but it seems to trigger pretty early in the cycle (15 min or so on a pretty new battery and the roomba only has been driving around... no other motors other then a single little servo.) However, I have not been checking while the roomba was in motion. I assume that would be the key?
Fully charge the battery (according to a functional Roomba charging system), then discharge the battery into a resistive load and measure the time to reach 12Vdc under load.
You will then know how good that new battery really is.
Re: Roomba Power Status
I don't think it is an issue of the battery holding a poor charge. The battery works great in my cleaning roomba and thus far has not had any issues.Gordon wrote:To get a better understanding of that battery's capability, you should gear up to load-test it with whatever operating current you intend Roomba to draw. Drive wheels can pull 0.3 to 0.4A each -- free-running, off the floor.hybrid wrote:I have tried watching the voltage but it seems to trigger pretty early in the cycle (15 min or so on a pretty new battery and the roomba only has been driving around... no other motors other then a single little servo.) However, I have not been checking while the roomba was in motion. I assume that would be the key?
Fully charge the battery (according to a functional Roomba charging system), then discharge the battery into a resistive load and measure the time to reach 12Vdc under load.
You will then know how good that new battery really is.
Re: Roomba Power Status
With nothing on except the bluetooth module my create draws about 150mA, this will spike up to 400mA while driving. The wifi camera draws another 200mA or so.
I can watch the battery voltage drop (I use roomba status) just under bluetooth load.
In your case I don't think you need to worry about checking the voltage while driving. At 12V you are at a nominal 1.0V per cell (some will be lower, some higher). As long as you check the battery at regular intervals you should be OK. I'm not sure what your algorithm is for driving, but maybe check the voltage each time you detect a bump.
I can watch the battery voltage drop (I use roomba status) just under bluetooth load.
In your case I don't think you need to worry about checking the voltage while driving. At 12V you are at a nominal 1.0V per cell (some will be lower, some higher). As long as you check the battery at regular intervals you should be OK. I'm not sure what your algorithm is for driving, but maybe check the voltage each time you detect a bump.
Mike
Reds x 3, Dirt Dog, Disco (now a parts bot), Create, Scooba 350, and Security Dawg
Evolution Mint
Neato XV-11
Shark Ion 750
Reds x 3, Dirt Dog, Disco (now a parts bot), Create, Scooba 350, and Security Dawg
Evolution Mint
Neato XV-11
Shark Ion 750