Friday, March 28, 2014

Small Steps...

I finally got all the logic power connections tested and done, and got a number for steady state current consumption!

The magic number is….  ~700mA !

This was for several items powered up at once:

  • Beaglebone Black
  • Adafruit GPS
  • Realtime clock
  • Powered USB hub
  • USB memory stick
  • USB WiFi link


The battery I have right now is a 2200 mAh LiPo, so I'm guessing I might get an hour of use out of it… this isn't the only thing it's powering. This is also a measurement of actual battery current, so it includes the not-so-efficient LM1084 voltage regulator losses.

For a quick refresher, the logic battery budget is divided across four 5v/5A LDO voltage regulators… I might add a servo-only battery and swap out the regulators to run them at 6v instead of 5v, but that's an extra cost I didn't plan for this year.

Considering that four regulators at 5A per regulator (max) is 20A, and the battery is basically 2.2Ah, at full consumption I'd have just 6 minutes of run-time!

But that's just crazy-talk. Knowing that the first regulator is going to come in 'around 1A', and given that I did the power budgets across all of them in the same manner, and that two of them drive servos that don't run 100% of the time means I might get a 10x increase in runtime, i.e. 60 minutes. I hope so… let's see...

Here is the list of regulators, and what's connected to them:

Vmcu - All central micro controller power; basically the list above, plus a USB audio stick, and probably a USB video capture stick.

The interesting thing about Vmcu compared to the remaining three regulators is that it's directly switched on/off from the user control panel; if the battery is switched on, then Vmcu is outputting 5v, and the Beaglebone is powered on. The other regulators are switched on with a logic level MOSFET, driven from the Beaglebone (tested and working, BTW!). This means that I can selectively power down the remaining three regulators if needed, i.e. if there is no need for those functions and want to conserve power.

But for now let's take the 700mA measurement and tack on 300mA for the extras, and call it an even 1A.

Vlog - The two I2C buses share a single 5v regulator to power just the logic (not servo) sections:
  • Bus 1:


  1. ATtiny 84 for user interface
  2. ATtiny 85 for left middle wheel sensors
  3. ATtiny 85 for right middle wheel sensors
  4. ATtiny 85 for the high mounted mast LED
  5. ATtiny 84 for the sun angle sensor
  6. AT-328 (or Arduino Leo) for the Pan-Tilt sensor head.
  7. ATtiny 85 for the forward low mount IR sensor
  8. ATtiny 85 for the rear low mount IR sensor
  9. Realtime Clock (it's actually not powered by Vlog, but Vmcu so time is available at boot)


  • Bus 2
  1. ATtiny 84 Left-Front wheel steering & sensors
  2. ATtiny 84 Left-Rear wheel steering & sensors
  3. ATtiny 84 Right-Front wheel steering & sensors
  4. ATtiny 84 Right-Rear wheel steering & sensors
  5. Magnetometer/Accelerometer
  6. ATtiny 84 & 16 Channel ADC Mux breakout
  7. 16 channel PWM breakout
  8. Arm/Grapple (planned)
I have no idea what that amounts to in current consumption; there are a quite a few sensors, LED's and a few longer wiring runs involved… but it's probably 'a lot' of the 5A budget, like 3A.

Vservo1 - The regulator feeding the 7 servos on I2C Bus 1

  1. Pan Tilt Head (5 total)
    1. Pan
    2. Tilt (2)
    3. Shade
    4. Filter
  2. Low Mount IR sensors (2 total)

Vservo2 - The regulator feeding the 4 servos on I2C Bus 2

  1. Haz sweeper servos on steering controllers (4)
  2. Arm/grapple servos - planned, just not this year…

'Total Guess' 
'Total Guess' might actually make a good name for the rover…. anyway….

For a guess at runtime while roaming around, and operating 'everything' on a normal drive:

1.0A Vmcu
3.0A Vlog
2.5A Vservo1 (2x P/T servos and 2x IR Pan servos @ 500mA = 2000mA + 3x500mA @ 25% ~= 500mA)
1.0A Vservo2 (during drives the servos don't always move, especially when moving faster… so this is just holding position)

That's 7.5A at a guess, which might mean 20 minutes of runtime… which means I might be a little more thoughtful about power while I'm putting together the remaining code, and drive the servos less if I can.

This also assumes 20 minutes of actual driving… although my target is to make the higher level logic quick enough to avoid the 'stop and think' syndrome I see so often with autonomous robots, and that may be true for race-day with a few shortcuts, in normal operations I'd think there would be plenty of times when I power down a lot of accessories and let the Beaglebone stew away on some of the harder math of route planning all by itself.

In the absolute worst case I can add a second battery for the servos and split the power inputs on the carrier PCB… we'll see!

And just for fun… 7.5A @ 5v = 37.5 watts. (edit: the reason this was interesting is the design is for 15A, so I hit my 50% margin target :)

Because watts!

No comments:

Post a Comment