Let's Make Robots!

USB to RC pulse controller

Hi, new to these forums and hoping someone can help me out!

I'm building a robot submarine (ROV) for fun on a pretty tight budget. The robot will have an on-board PC (in the form of a micro-ATX or nano-ATX motherboard) and will be controlled down a tether wire.

I intend to use DC brushless motors and motor controllers sourced from the Radio Control (RC) world (for price reasons). I'm a bit stuck when it comes to controlling them though. I have a couple of USB control boards, but they output analogue and PWM signals, when I really need an RC type pulse signal (such as would be generated by an RC receiver). As I see it I have two options:

1) A direct USB to RC pulse generator. Does anyone know of a  board or chip solution that plugs into USB and generates RC signal pulses? I need to control at least 5 motors - up to 8 might be desireable. I've seen USB to RC servo controllers, but none designed to control an RC motor controller.

2) An analogue or PWM to RC pulse convertor that I can control from my existing USB boards. This is a less desireable solution (because it will take up more space) but right now I'll take any solution I can find! 

I would also consider an alternative to the RC motor/controller route - is there any other brushless motor / controller combos that can be USB controlled and are fairly cheap to buy?

I'm not willing to consider brushed motors at the moment - they are hard to marinise (I don't want to be mucking around with shaft seals) and the brushes generate signal noise which interfers with sensors, cameras etc.

Any suggestions greatfully accepted!


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Target depth is 100m for the first prototype (or 11 atmospheres of pressure), deeper for later versions.

The electronics will be in an oil-filled, pressure-compensated thinwalled-enclosure. I'm not a big fan of air-filled pressure vessels, since they are heavy and o-rings tend to fail!

Since the consensus view is that the phidgets will work, I'll order one up when I get home in a few weeks time and report back on progress!


Thanks to everyone for the replies.

If I wasn't making sense, its mainly because I don't understand how RC kit works. From your replies, I get the impression that the signals sent to a rotatary motor controller are identical to those sent to a servo?

I'm willing to try a picaxe if I can't find an easier solution, but since I'm already going to be writing software for the on-board computer and a surface control computer, I'd rather not have to worry about programming and debugging a microcontroller as well.

I have seen and was interested in the phidgets boards before (especially the 8 servo USB board), but they talk exclusively about servos, and mention detecting and controlling position and power consumption -  I just want to issue speed instructions to 5 motors (and maybe a few servos later for manipulator control). Is the phidgets 8 servo USB controller capable of controlling brushless speed controllers as well as servosl? 

I should also mention that the electrolyte capacitors shown in the circuit board picture of the phidgets controller are worrying to me, since that sort of cap isn't pressure proof, and I'd probably need to replace them with solid state ones in the long term. But that is of course a minor issue compared to actually getting the control system to work!

As you can probably tell, the electronics isn't my strong point - I'm mainly interested in putting a platform together to write autonomous navigation and image processing applications. Although my ROV will be tethered, I want to use it as a test bed to develop autonomous underwater vehicle programs. 

I'll definately check out the phidgets boards in more detail, and bear in mind the picaxe as a fallback.

Thanks for the help,



How deep are you going?????

If your going that deep then water will get into the electronics before the electrolytics collapse. If your housing keeps the water out then it will maintain  a pressure differential. If you have a teather, then you can always include an airline to maintain the air pressure.


As stated above, the same pulse that drives a servo also controls most other RC hardware as well, since all are generally made to connect to an RC radio receiver. If the brushless controller is made for RC control, the Phidgets or any other servo driver should have no problem with it. 

If electorlytic caps are a problem, perhaps tantulum will work. I'm not sure I've seen pressure ratings for many electronic devices. 


Micro solutions will require you to write the code for the micro as well as your PC. Phidgets devices take the micro programming away, and has some PC apps ready made to try as well. This Phidgets USB Servo controller can generate pulses for 8 devices accepting servo standards from commands sent over USB from a PC.

Note that any device generating a RC pulse from 1 to 2 ms wide every 20 or so ms should operate the motor controller just fine.

I am a little confused as to what you are doing as well. At any rate, I forgot to mention that picaxe chips are also happy with serial inputs and outputs. --Just one more way of computer talking...

CTC is correct, a picaxe will make a simple cheap signal translator that will accept PWM inputs (including RC control signals) or analog inputs and will then drive up to 8 servos depending on which IC you get (picaxe 20M is probably the cheapest with 8 inputs and 8 outputs).

You seem to contradict yourself a bit. You say you've seen USB to RC servo controller but then say it won't control an RC motor controller?

A brushless motor controller should use the same input signal as a standard servo. Turbo Trike has one driving it's ducted fan (brushless motor). The speed controller accepts standard 1-2mS pulses and as a bonus outputs 5V from it's battery eliminator.

A picaxe chip will accept both an analogue or digital input and will spit-out any servo pulse you want. The chip will cost you about 10 bucks and you can program it in BASIC. Simple as that.