This motor driver kit and its corresponding Python library make it easy to control a pair of bidirectional, brushed DC motors with a Raspberry Pi Model B+, Model A+, or Pi 2 Model B or Pi 3 Model B. The expansion board features Texas Instruments’ DRV8835 dual H-bridge motor driver IC, which allows it to operate from 1.5 V to 11 V and makes it particularly well suited for driving small, low-voltage motors. The board can deliver a continuous 1.2 A per channel and tolerate peak currents up to 1.5 A per channel for a few seconds, and the channels can be optionally configured to run in parallel to deliver twice the current to a single motor. The board ships fully populated with its SMD components, including the DRV8835 driver and a FET for reverse battery protection; header pins for interfacing with a Raspberry Pi and terminal blocks for connecting motors and power are included but are not soldered in (see the Assembly with included hardware section below).
The board uses GPIO pins 5, 6, 12, and 13 to control the motor driver, making use of the Raspberry Pi’s hardware PWM outputs, although the pin mappings can be customized if the defaults are not convenient. Note that it is designed specifically for newer versions of the Raspberry Pi with 40-pin GPIO headers, including the Model B+, Model A+, Raspberry Pi 2 Model B and Raspberry Pi 3 Model B; it is not practical to use this expansion board with the original Raspberry Pi Model A or Model B due to differences in their pinout and form factor.
We also have a similar DRV8835 shield for Arduinos and Arduino-compatible boards and a smaller DRV8835 carrier for those using a different controller or with tighter space constraints. For a more powerful motor driver, consider the dual MC33926 motor driver for Raspberry Pi.
Although the DRV8835 itself works with a minimum motor supply voltage of 0 V, this board’s reverse-protection circuit limits the minimum to 1.5 V. If a lower motor supply voltage is required, please consider using our DRV8835 carrier with motor power supplied through the VMM pin.
- Dual-H-bridge motor driver: can drive two DC motors or one bipolar stepper motor
- Motor supply voltage: 1.5 V to 11 V
- Logic supply voltage 2 V to 7 V
- Output current: 1.2 A continuous (1.5 A peak) per motor
- Motor outputs can be paralleled to deliver 2.4 A continuous (3 A peak) to a single motor
- PWM operation up to 250 kHz (ultrasonic frequencies allow for quieter motor operation)
- Two possible interface modes: PHASE/ENABLE (default – one pin for direction, another for speed) or IN/IN (outputs mostly mirror inputs)
- Board can optionally power the Raspberry Pi base directly through add-on regulator (not included)
- Python library makes it easy to get started using this board as a motor driver expansion board
- GPIO pin mappings can be customized if the default mappings are not convenient
- Reverse-voltage protection on motor power supply
- Under-voltage lockout and protection against over-current and over-temperature
Assembly with included hardware
Before the motor driver board can be plugged into your Raspberry Pi, female headers must be soldered into the appropriate holes. The kit ships with a 2×17-pin 0.1″ female header that should be mounted to the bottom of the board (the side with surface-mount components). Once the kit is assembled, it should be plugged into the leftmost position on the Raspberry Pi’s 40-pin GPIO header, leaving six pins exposed on the right, as shown in the picture below.
Three 2-pin, 5 mm terminal blocks are included for making easy motor and power connections to the board once they have been slid together and soldered to the six large through-holes. Alternatively, you can solder 0.1″ male header pins to the smaller through-holes above the terminal block holes, or you can just solder wires directly to the board.
Shorting blocks and 0.1″ male headers (not included) can be used to make some of the more advanced optional modifications to the board, such as remapping the control pins or paralleling the outputs.
A Raspberry Pi is not included.