I've been working on a dogie door for a while - while the software is straightforward, finding a suitable motor controller has been more difficult.
The problem is that a lot of the inexpensive motor control shields are just too meager to control anything but the most dinky motors. ladyada's Arduino shield only does 600mA continuous, 1.1A peak . Pololu makes beefier motor controllers, the DMC 01 can do 13 amps, but it's pretty expensive (about $100).
So I've been on the lookout for a high power, inexpensive, and easy to control circuit - I was flipping through starlino's website and I spotted exactly what I was looking for. His idea is pretty simple: why not combine 2 motor controller IC's to split the load?
He calls the circuit the 'OctoDriver', it combines 2 h-bridges to provide 8 amps peak, 4 amps continuous. I asked him if I could put it on a PCB, and he thought it was a great idea. I couldn't think of a better name, so I call my version "The OctoDriver".
I also put it on a Propeller Platform compatible footprint, so it can be used on a breadboard, perfboard or with a Propeller microcontroller. The design is available under the MIT license, so anyone is free to hack away.
The OctoDriver is also available as a kit from Gadget Gangster.
Flip to the next step and I'll give you some more technical details on the OctoDriver and show you how to use it.
Remove these ads by
Signing UpStep 1: FAQ
The OctoDriver is an 8 amp motor controller, capable of controlling 2 motors @ 8 amps. It uses four TI SN754410 (datasheet) Quad Half-H drivers, 2 per motor. The SN754410 is 'juiced-up' version of the classic L293D. Here are the key specs of the OctoDriver
| OctoDriver Specs | |
| Peak Current: | 8A |
| Continuous Current: | 4A |
| Motor Voltage: | 4.5V - 36V |
| Logic Voltage: | 5 Vdd, inputs will accept 2.0v - 5.5v |
| Operating Temp: | -40c to 85c (-40f to 176f) |
| Motor Support: |
2 Bi-directional DC motors / linear actuators, or 1 stepper |
| Other Features: | ESD Protection, Thermal Shutdown, No 'Power Up Glitch' |
| Connectivity: | .1" pin spacing for Breadboard / Protoboard. 2 OctoDrivers can be stacked on a single Propeller Platform, as well. |
I didn't include servo headers because it's super easy to connect a servo to a Prototyper module and controlling servos with a Propeller is easy, too.
Do I really need that much power?
When you check out the specs on a standard servo, it's often something like 150mA. So what's the point of a 4+ amp motor driver?
Here's the deal - that 'current-draw' number is at NO LOAD. In other words, if you actually wanted to move something with the motor, your current-draw will be higher. How much higher depends on your load, but the highest draw would be if the motor were stalled (Stall Current).
Take this typical servo. With a 6V power source, no-load draw is a measly 220mA... until you actually make it move something! Maxing it out brings you to 1.3 amps of current draw. And that's a ONE standard servo.
Moving anything but the smallest motor requires real power, and 800mA bridge doesn't cut it.
Will the OctoDriver work with Arduino / PICAxe / Workbench 1.3?
Yes. Using it is super-simple. At the end of this howto, I'll show you how it's done.
Is it hard to build?
No - it's really easy to put together. If this is your first time soldering, it will probably take 15 minutes. If you're a seasoned pro, it should take longer for your soldering iron to warm up than assemble.
Here's a video demo of Starlino's OctoDriver in action:















































Visit Our Store »
Go Pro Today »




Here are the 7 pins in DC motor controller:-
Pin No. Pin Functionality
1 GND Ground
2 IN-1 Logic input for the motor direction.
3 Diagnostic 1
(DG-1) Output pin with logic 1 output in normal operation. Represents side of the internal
H bridge corresponding to IN-1. Pin is pulled to logic low by the motor driver in
case of over temperature or overload due to short circuit.
4 PWM Used to apply Pulse Width Modulation to control motor velocity
5 Diagnostic 2
(DG-2) Output pin with logic 1 output in normal operation. Represents side of the internal
H bridge corresponding to IN-2. Pin is pulled to logic low by the motor driver in
case of over temperature or overload due to short circuit.
6 IN-2 Logic input for the motor direction.
7 CS* Current Sense output to measure the current flowing through the driver
Im going to run down to Jaycar tomorrow and pick up the parts and get it breadboarded up for my Arduino
Good stuff :)
John
Silly question: Those traces look a bit small to handle 8amps at 5 volts...I'm guessing that gets proportionally less to suit the max motor voltage (to match the total wattage...)
I'm working on a battery pack for the Propeller Platform, too - so the next step will be to put the OctoDriver in a wheel robot with some UPS batteries, running the Prop logic on a separate battery.
The schematic / layout files are under the MIT license (essentially public domain) - there's a link to download it in PDF or diptrace format on the last step. Same deal with the Propeller object.
The board uses thicker (taller) traces than usual to support extra current (4 oz instead of 1 or 2) - it will do just fine providing 4 amps continuous to each motor 8 amp peaks are fine, too.