Maker Pro
Maker Pro

Building a robot, need a sanity check

Hi folks,

I'm building a robot right now in hopes of crossing over into the robotics industry from my software engineering background. I'm an electronics tinkerer for the most part and definitely not an EE, so I was hoping that someone could review my power system design and tell me if it's ok or if I'm totally loony. I rather suspect the latter. :)

My robot runs most of its boards and sensors off of 5V, which I'm supplying via a 2-cell lipo battery (roughly 7.4V) connected to a switching step-down voltage regulator from pololu. I added up all the max current draws and the sum falls below the regulator's max, so I think that's going to work well for me. One of the boards, a beagleboard-xm, can pull over an amp in theory, so I didn't want to just use a few alkaline cells with a cheap 3-wire regulator.

What concerns me is the 12V side. I'm using a 3-cell,1.3Ah lipo battery (roughly 11.1V) with 15C continuous discharge. This needs to power my robot motors/motor controllers as well as a Hokuyo laser rangefinder (12V, 0.3A normal, 0.8A "rush"). My motors take 12V and draw 300 mA free-run and 5A stall. I plan to take the lipo output and split it 3 ways - two directly into the 2 motor controller boards and the third into an adjustable switching boost regulator which I'll connect to my laser scanner. Herein lies my concern. Firstly, that laser scanner - it's pretty expensive - if I do something to fry that thing, I'll be devastated. I think as long as I adjust the regulator pretty close to 12V and maybe glue the adjuster pot in place, I'll be safe from sending it too much voltage. I don't want it to run low because the motors are pulling more power, though, and I don't know if I need to do anything to protect the scanner's power from electrical noise caused by the motors.

I'm using lipos because I have some background with rc helis, I know they've got enough guts to power something for quite a while, and I've got a nice charger to do balance-charging. I'm well aware of the need to keep them from discharging too much, though, so I'm using motor controller boards with a low-voltage monitor/cutoff feature. I figure I can just monitor the the 3-cell lipo since it'll run low long before the 2-cell one ever does. Actually, for the 2-cell, I was planning to monitor it as well. I got a sample fuel-guage ic from TI, but it's a 3mmX4mm QFN, and soldering the #@$ thing by hand is simply inhuman. Even a SchmartBoard didn't work for me. Grr. So I'm not monitoring the 2-cell lipo directly.

So.. what do you think? Do I need to re-work my 12V circuit or will it work pretty well as-is? Should I be concerned about anything else? Comments & advice are greatly appreciated.

Thanks in advance,
Mark
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
I'll bite :)

Hi folks,

Hi, and welcome to Electronics point.

There's always a balance you need to achieve between giving too little information (where people can;t help you) and giving too much (where people just can't be bothered reading it all). Probably best to tend toward the former and give people more details when they complain about the lack of them ;)

I was hoping that someone could review my power system design and tell me if it's ok or if I'm totally loony. I rather suspect the latter. :)

OK, I'll give it a go. My initial reading did not really set off any loony alerts though, so you may be disappointed :p

My robot runs most of its boards and sensors off of 5V, which I'm supplying via a 2-cell lipo battery (roughly 7.4V) connected to a switching step-down voltage regulator from pololu. I added up all the max current draws and the sum falls below the regulator's max, so I think that's going to work well for me. One of the boards, a beagleboard-xm, can pull over an amp in theory, so I didn't want to just use a few alkaline cells with a cheap 3-wire regulator.

If you're using a switchmode power supply there is no huge penalty in going for a higher input voltage. This means that the regulator will still have plenty of headroom as the cells discharge.

If you're using LIPO then you should prevent the cells from discharging below 3V per cell. This is important enough that you should have either "protected" cells, or a dedicated circuit to disable them before they reach this point.

With such a low differential between your potential input voltage (6V) and required output voltage (5V) you need to make sure that your SMPS will operate correctly at this point.

If you were to use a 3 terminal regulator you could use a low dropout device that would be guaranteed to work.

Do you know the average and maximum currents you'll expect? It may well be that a three terminal device can be easily justified. It may also be that it can't.

What concerns me is the 12V side. I'm using a 3-cell,1.3Ah lipo battery (roughly 11.1V) with 15C continuous discharge.

That's a lot. I presume you're using a battery designed for high discharge rates?

Remember also that the range of voltages you'll get are approx 9V to 12.6V

This needs to power my robot motors/motor controllers as well as a Hokuyo laser rangefinder (12V, 0.3A normal, 0.8A "rush"). My motors take 12V and draw 300 mA free-run and 5A stall. I plan to take the lipo output and split it 3 ways - two directly into the 2 motor controller boards and the third into an adjustable switching boost regulator which I'll connect to my laser scanner.

OK...

Herein lies my concern. Firstly, that laser scanner - it's pretty expensive - if I do something to fry that thing, I'll be devastated.

On that basis alone I might consider a dedicated power supply for it. This is especially true because the supply used for the motors will become very noisy.

An issue with using a boost SMPS is that your pack voltage will exceed your required output voltage when fully charged.

I think as long as I adjust the regulator pretty close to 12V and maybe glue the adjuster pot in place, I'll be safe from sending it too much voltage. I don't want it to run low because the motors are pulling more power, though, and I don't know if I need to do anything to protect the scanner's power from electrical noise caused by the motors.

I might consider running the boost SMPS from the logic battery.

I'm using lipos because I have some background with rc helis, I know they've got enough guts to power something for quite a while, and I've got a nice charger to do balance-charging. I'm well aware of the need to keep them from discharging too much

good :)

, though, so I'm using motor controller boards with a low-voltage monitor/cutoff feature. I figure I can just monitor the the 3-cell lipo since it'll run low long before the 2-cell one ever does. Actually, for the 2-cell, I was planning to monitor it as well. I got a sample fuel-guage ic from TI, but it's a 3mmX4mm QFN, and soldering the #@$ thing by hand is simply inhuman. Even a SchmartBoard didn't work for me. Grr. So I'm not monitoring the 2-cell lipo directly.

As long as you're happy the cells are balanced, get a cheap "voltage detector" with a logic output that will disable the logic if the battery voltage falls too far. Those particular chips may be hard to get, but you get the idea.

So.. what do you think? Do I need to re-work my 12V circuit or will it work pretty well as-is? Should I be concerned about anything else? Comments & advice are greatly appreciated.

Yeah, I'd contemplate removing all sensitive electronics from rails which power motors.
 
Thanks for your comments, Steve. I'll do a little research tomorrow, but here are some quick responses:

12v boost -> logic battery: Hmm - I'm embarrassed to say that I never thought of that! I think that's a great idea. I'll double check the booster's specs to make sure it's ok, but I'm pretty sure that it will be.

The laser scanner is/was the only device I was planning to share with the motor battery. Without the scanner, the 3-cell LiPo will be totally dedicated to the motors, so no more noise problems.

"I presume you're using a battery designed for high discharge rates?"
Yup. 15C means 15 times capacity for continuous discharge. 15 * 1.3A = 22.5A. No problem at all. I checked that the motor controllers can handle the needed current as well.

Your comments on the 3-pin regulator and small voltage differential are interesting. I think I checked that the regulator will be ok, buit a re-check would be prudent. I know absolutely nothing about 3-pin regulators, so I'll have to do some reading.

The voltage detector is a good idea - that's basically what I wanted in the TI "fuel guage" IC, but alas, I've grumbled about that thing already. Although unwise, I think I'm going to roll the dice on this for the initial build. I'll just be careful to charge both batteries before any extended usage. Time is a bit of a factor at the moment and this is a very ambitious project. In any case, I downloaded the datasheet you linked and I'll give it a read.
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
KISS is always a good principle :)

That particular voltage detector appears to be unavailable, but I'm sure that you could find something similar.

You could have a circuit that detects the battery voltage being within (say) half a volt of discharged and use that to illuminate a warning light. As long as you're going to be around when the device is operating, that may be sufficient.

It's the batteries I was most concerned about for the 15C discharge. As long as they're rated for that you're not going to be (hopefully) creating pyrotechnics with them.
 
I thought I saw an article one time about a simple circuit that would basically run the voltage level into an analog port on a microcontroller. I've got 5v analog pins to spare, so if I can find a circuit like that, maybe that would work too.

Agreed on the fireworks - I don't think it would be good to have my battery catch fire or explode while I'm showing off the 'bot in a job interview. :)
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Checking it in software is a great idea. However you're still prone to problems caused by the software crashing.

One way that gets around both of these issues is for the power supplies to (by default) only power the processor.

The processor can monitor the battery voltage and if they are OK can output a pulse to a retriggerable monostable which turns on the power to the motors and the other logic (possibly by 2 relays).

This means that if you don't send a pulse regularly the power will be removed. This works fine for the battery going flat (and would be intended).

However, if your software crashes you get the same result. This is better than having your robot set for 100% forward and then crashing (crashing software, closely followed by crashing the hardware).

The time delay could be something like 250mS. If you can't poll something at least this often then you have problems. Best it not be done via an interrupt either since that may continue to function even if the rest of the software crashes.
 
Top