I need to build a USB motor controller that can simultaneously manipulate speed and direction of 48 12Volt 15Amp brushed DC motors while having full support for up to 96 motors. This controller will always be PC connected and I prefer not to use arduino. I have some basic electronics and logic circuit knowledge, but most of my experience is in software programming.

I've read up on the basics for PWM circuits and for working with USB for PWM. Since my background is in software, bitbanging seems like an appealing method for handling PWM, but I am not sure how to handle that across 48-96 channels. USB GPIO modules may offer a possible solution, but so far I've only seen 32 channel modules and I assume polarity switching would require double the number of IO channels.

I'm willing to design new circuitry to handle this, but I'm not sure where I should begin. I've never worked with microcontrollers before, but if it's necessary, I am interested in learning how to use them.

Here are my requirements in a nutshell:

  • USB (always PC connected)
  • External power supply
  • 96 independent PWM channels
  • Polarity switching for each channel

Does anyone have suggestions or resources and tutorials for handling PWM motor control over such a large number of channels?


closed as too broad by Nick Alexeev, Matt Young, Joe Hass, Daniel Grillo, Chetan Bhargava Mar 10 '14 at 19:29

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Which bit do you specifically need help with? The best questions focus on one major point, right now this is quite broad. \$\endgroup\$ – David Mar 9 '14 at 23:21
  • \$\begingroup\$ I'm essentially looking for a primer on scalable computer controlled PWM circuits, but having components listed, like what Andy provided below, is also very useful. \$\endgroup\$ – SubLightSpeed Mar 9 '14 at 23:54

You could consider the LT8500. It's a 48 channel pulse width modulator that can be cascaded easily to 96 - it takes its input from an SDI bus.

enter image description here

That gives you the opportunity to avoid bit-bashing with the more leisurely pace of SDI.

When it comes to the motors, you haven't said the spec but you will be looking undoubtedly for some form of H bridge circuit and there are quite a few in Linear Tech's portfolio and ditto Texas Instruments.

For SDI output from USB, maybe this would work and if not there are PCI to SD output devices: -

enter image description here

  • \$\begingroup\$ Thanks, this is a big help! I did mention that the motors would be 12volt at 15amp brushed dc. \$\endgroup\$ – SubLightSpeed Mar 10 '14 at 0:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.