Dagu ComMotion Motion Control Arduino Shield

The ComMotion smart motor controller from Dagu Electronics is an Arduino R3 compatible shield that can control up to 4 motors at 2.5A each. Using encoder feedback from the motors it is able to precisely control the motor speed. It uses I2C to communicate with the Arduino leaving all your other pins free and as a bonus it can even be controlled over XBee or BlueTooth without an Arduino attached.

Not currently available

Our Code: MCU-060247


The ComMotion is an I²C controlled, 4 channel motor controller in an R3 shield format.  The advantage of using I²C is that the shield only uses 2 pins. This leaves most of your pins free for use with other shields, sensors and circuits.

The ComMotion shield can drive 4 DC brushed motors up to 2.5A continuous each with peak currents up to 4A per motor. Current monitoring is used to limit the maximum current for each motor. Each motor has an encoder input that can be used for precise speed control. Encoder feedback also gives the motor much more torque at low speeds.

Preset configurations allow you to control robots with either omni or mecanum wheels by sending the ComMotion shield only 3 simple values: Velocity, Angle and Rotation. The two ATmega328P onboard processors will then do the trigonometry required to calculate the correct speed for each individual motor.

If encoders are not being used then the shield will still function normally but motor speed control will be the same as with standard motor drivers. Speed control will be less accurate and the motors will have much less torque at low speeds.

Each processor has it's own serial port broken out into an FTDI header. These serial ports can be used for GPS, Bluetooth and LCD modules while leaving your Arduino serial port free for uploading and debugging code. The serial port on MCU2 is also broken out into a socket for an XBEE or WiFly wireless transceiver with voltage translation circuitry and a dedicated 300mA, 3.3V regulator. 

Wireless Control

The default configuration allows the ComMotion shield to accept serial commands directly from the serial port on MCU2. Just plug in a pre-configured Xbee, WiFly or Bluetooth module and you have instant wireless control. No Arduino required.




2x ATmega328P (16MHz)

Supply  voltage:

6V – 16V

Logic voltage:

5V @ 1000mA*

Wireless support:

Xbee / WiFly socket with voltage translation

Xbee / WiFly power:

3.3V @ 300mA


Battery monitor range:

0V – 17V


Battery monitor resolution:



Analog Inputs:

5x 10bit

(A3,A6 MCU1 –  A3,A6,A7 MCU2)

Motor drivers:

4x FET “H” bridge


Motor current continuous:


(each motor)

Motor current stall:


(each motor)

Current monitor range:

0A  – 5A

(each motor)

Current monitor resolution:


(each motor)

I²C bus voltage:

5V or 3.3V

(selected by IO_REF pin)

I²C bus speed:

100 kbit/s


I²C addresses:

16 selectable pairs

(software configurable)

Serial ports:

2x 5V TTL logic

(FTDI headers)

*Current limit for 5V regulator is dependant on supply voltage and ambient temperature. The current ratings below assume an ambient temperature of 25°C.

1A @ 6V                                   580mA @ 8.4V                         285mA @ 12V                          180mA @16V



Programming Tutorial:




3D drawing