Let's Make Robots!

4 channel motor cotroller with encoder mixing circuit

4_Channel_instruction_manual.pdf1.42 MB
Vendor's Description: 

This is the 4 channel motor controller from DAGU. Although designed for the Rover 5 chassis this controller is suitable for any small robot using Omni or Mecanum wheels.

4x low resistance FET "H" bridge rated for 4.5A stall current each.
4x Current sensing circuit with an output of aproximately 1V per amp of current draw.
4x Quadrature encoder mixing circuit.

The built in mixing circuitry mixes the 2 inputs from the quadrature encoder into a single output of twice the frequency. This allows a single interrupt pin to monitor both outputs of a quadrature encoder. Speed and distance can also be measured with twice the resolution compared to monitoring a single output. See the attached instruction manual for more details.

Comment viewing options

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

Ok. Sounds like you did something wrong but I can't say what.

Is there a link to the latest schematic ? Is it likely the lack of a 5v connection could cause the issue I've seen?

I looked carefully at your last photo, comparing it to my own Mega 2560 and 4 channel motor controller.  I see you have two wires floating, which I suspect you are connecting to motor control pins on your motor controller.  Looking at your code, you seem to know where they go.  How are you making those connections?  You said you now have a "working controller."  How many have you been through?

Your problem is consistent through at least two controllers, with the controller being the only thing you changed.  (Is that right?)  I'm assuming the Rover 5 is ok, since you said you got the motors to turn while using another controller.

I look at your handmade breakout(?) board and I wonder.  Your work looks fine in the pictures, BUT, have you tried checking for shorts between the connections?  Follow along your paths, comparing a problem channel to a good one and look for shorts or opens.

I have another suggestion.  Assuming all that perf board does is connect the motor controller to the Arduino.

Before you plug another controller into that setup, get yourself a mega sensor shield, and a bunch of three pin to separated single pin  (actually, they're sockets) cables like the ones YourDuino sells. Everything will be a lot neater and you won't have to worry about bad soldering.

Like I said, your soldering job and the connections look fine.  But something is consistently blowing your boards.  It's unlikely that two of them would get through testing and go to the same customer with the exact same problem.  If that was happening, Oddbot would be drowned it posts like yours.

I'm wondering the same thing.  Is it possible to blow half a motor driver IC?

Yes it is. Each "H" bridge on this board consist of two 1/2 "H" bridge IC's. It is possible he smoked it long enough to fry one IC and not the other.


I ordered one of these motor controllers recently to use with the rover5. I connected everything up as instructed and wrote a simple sketch just to make the motors rotate. However as soon as all the motors started to rotate smoke stream out and it quickly stopped. I thought it was a faulty controller so I get a replacement from the seller however the second one did the same..... 

When the Arduino is connected to my PC via USB and no battery pack is connected i can get one motor to rotate slowly (obviously only getting minimal power from the USB port), I am only able to get the motor to rotate in one direction. When the direction pin is low the motor rotates however when it is HIGH it does not.....

When I connect up the battery pack (I am using the battery pack supplied with the controller), there is enough power to cause the components to burn out, it only seems to do it when all four motors are running. I have checked all the connections several times and everything is correct. On both motor controller boards it has been CH4 / CH3 that have burnt out not CH1 or CH2

My code consists of the following




I am currently testing this without the tracks on so i can see each motor rotating. When the burn out happens there is no drag on any motor so it is minimum load.... Any help would be great.


Incorrect code cannot cause this problem.

The boards are factory tested. The fact that you have had the same problem with two different boards indicates you have either made a mistake in your wiring or there is a short.

Note: you must supply the board with +5V for it's logic as well as +V to drive your motors.

Please post a clear photo of your setup. What is your battery voltage?

I have done some more testing with a different motor controller (DFROBOT) this controller is only rated for 1A continuous and 2A peak, this also only controls two motors however it worked perfectly.... I was thinking could there be an issue where I am powering the Arduino using the Vin from the battery pack and using the same battery pack to power the VBatt for the motor controller. Could there be something strange happening where the Motor controller 5v logic comes from the arduino 5v rail when the arduino and motor controller are powered by the same power supply? Should I be using a seperate powersupply for the Arduino and the Motor controller?

No, a single battery supply is all you need. My mecanum puppy robot using the Rover 5 and mecanum wheels just used 6x 1.2 NiMh batteries.


Since you say only channels 3&4 short with both 4ch controllers I still think you have a problem with your wiring. Try using insulated washers on your brass mounting post in case they are shorting something on the PCB.

Either I am missing something or there is something really wrong with the two motor controllers I have. I now have a motor controller that isnt burnt out but I still get the issue where the motors only run in one direction..... I have simplified everything I just have the power and one motor connected directly with jumper cables. I can make the motor rotate in one direction by setting the DIR pin to LOW and the PWM pin to HIGH. I then attempt to make the motor rotate in the other direction by setting the DIR pin to HIGH and the PWM pin to HIGH. At this point the motor just stops rotating..... As you can see from the image below everything is insulated by sitting on a sheet of foam. I really am considering moving to another motor controller I cannot see why I am having so many issues everything it exactly how the documentation describes.