Dual MC33887 Motor Driver Carrier Pins

In this picture
could someone tell me what the + and - just below and to the right of the pololu logo are for? Are they digital logic hi and lo (+5v, and gnd)? I thought that the G was digital logic ground, which if I understand correctly is tied to the supply ground as well.

Any help would be appreciated. Thanks.


The + pin is connected to V+ and the - pin is connected to ground (GND). These pins are available for connecting an additional power capacitor, which could improve performance if your power supply is poor or far from the motor driver. However, the two surface-mount power capacitors (the big silver cylinders on either side of these pins) are typically sufficient.

- Ben

Good to know. I am kinda new to this stuff. Would that be for say a 0.1uF cap. Kinda the standard DC line buffer stuff?

Also In reading the data sheet I dont know that I understand what the purpose of the freewheeling mode is or how I would incorporate it in use. I will be signaling the driver with an Arduino mega. Can I just tell it to drive the motors one direction and then the other without ill effect? Or do I have to wait for them to effectively come to stop before driving them the other direction? Or is this to prevent back emf if I were to stop driving the motors and the momentum of the device continued to drive it forward?

While it is separately a good idea to put 0.1 uF caps on your motors to limit the affect of motor noise on your logic, the appropriate power capacitor for those through-hole pads would be tens or hundreds of uF. The two surface-mount caps already there are each 47 uF. The point of these caps is to keep the power supply stable through the large fluctuations that a motor can introduce.

There are two main ways you can use this motor driver:

  1. You can PWM one of the disable pins (such as ~D2) to control speed and use the two direction pins (IN1 and IN2) to control the direction. This results in the driver’s alternating between drive (during the active phase of the PWM) and coast (during the low portion of the duty cycle). When coasting, the motor driver outputs are high impedance, and the motor can spin freely with only friction slowing it down.

  2. You can configure the driver to be permanently enabled (pull ~D2 high, D1 low, and EN high) and PWM IN1 and IN2 directly to control both direction and speed. This results in the driver’s alternating between drive (during the active phase of the PWM) and brake (during the low portion of the duty cycle). When braking, the motor driver outputs are shorted together through the motor driver, and back EMF acts as a brake. You can try this for yourself by trying to spin a motor by hand, first with the leads dangling free and then with the two leads pinched together so they are electrically shorted. This scenario makes use of the “freewheeling mode”.

Option 1 has the benefit of only requiring two PWM outputs, but it also requires six I/O lines. Option 2 only requires four I/O lines, but all four must be PWM outputs. Option 2 also has the benefit of typically providing a more linear relationship between PWM duty cycle and motor speed than option 1, and you will also probably notice better response at low duty cycles.

In general, you do not need to wait for the motors to come to a stop before trying to drive them in the other direction. However, the complete answer to this question really depends on the particulars of your system. For example if you change directly from full speed forward to full speed reverse, you will briefly be trying to draw almost twice the stall current from the motor driver. If this exceeds the 5 A limit for the MC33887, you should take steps to avoid it by implementing acceleration or a period of braking between direction changes. Abrupt changes in direction can also cause jerky motion and mechanical stresses that you might want to avoid.

- Ben