Recently Viewed

Pololu 3758 Dual MAX14870 Motor Driver for Raspberry Pi

Pololu 3758 Dual MAX14870 Motor Driver for Raspberry Pi
 Pololu 3758 Dual MAX14870 Motor Driver for Raspberry PiPololu 3758 Dual MAX14870 Motor Driver for Raspberry Pi 
Our Price:  £11.95(Inc. 20% VAT)(£9.96 Exc. VAT)Earn 11 Loyalty Points

Part Number:  3758
Brand:  Pololu

Available Now:  

5 in stock, immediate despatch
Higher Quantities Available within 3-5 Working days

Pololu 3758 Dual MAX14870 Motor Driver for Raspberry Pi

This motor driver expansion board and its corresponding Python library make it easy to control a pair of bidirectional, brushed DC motors with a compatible Raspberry Pi (Model B+ or newer), including the Pi 4. The expansion board features two MAX14870 H-bridge motor driver ICs from Maxim, which allow it to operate from 4.5 V to 36 V and make it well suited for driving small motors across a wide range of voltages. The board can deliver a continuous 1.7 A per channel and tolerate peak currents up to 2.5 A per channel for a few seconds.

The board’s default configuration uses five GPIO pins to control the motor drivers, making use of the Raspberry Pi’s hardware PWM outputs, and it uses one additional pin to read a fault output from the drivers. However, the pin mappings can be customized if the defaults are not convenient.

The 2×17-pin 0.1″ female header should be mounted to the bottom of the board (the side with surface-mount components). Once soldered, this header is used to connect the board to the Raspberry Pi’s 40-pin GPIO header. Alternatively, if you want to continue to have access to the Raspberry Pi’s 40 GPIO pins while the motor driver board is plugged in, you can install a stackable 2×20-pin female header (not included) instead.

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 below the terminal block holes, or you can just solder wires directly to the board.

Using the motor driver

This section explains how to use the dual MAX14870 motor driver add-on board and provides some basic information about the motor driver pins to help get you started. However, we strongly encourage you to consult the MAX14870 datasheet (492k pdf) for detailed pin descriptions, truth tables, and electrical characteristics. This expansion board is essentially a breakout board for two MAX14870 motor driver ICs, so the datasheet is your best resource for answering questions not covered here.

The board 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.



In the board’s default state, the motor driver and Raspberry Pi are powered separately, though they share a common ground. When used this way, the Raspberry Pi must be powered via its USB Micro-B receptacle, and the motor driver board must be supplied with 4.5 V to 36 V through its large VIN and GND pads. However, the motor driver board provides a set of three through-holes where you can conveniently connect an appropriate voltage regulator, allowing the motor supply to also power the Raspberry Pi (see the Powering the Raspberry Pi from the motor driver board section below).

  • Two single-channel H-bridge motor drivers with shoot-through protection and internal free-wheeling diodes (can each drive one DC motor)
  • Motor supply voltage: 4.5 V to 36 V
  • Output current: 1.7 A continuous (2.5 A peak) per motor
  • 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
  • Surface-mount resistor can optionally be added to enable automatic current limiting

Default pin mappings

This table shows how the Raspberry Pi’s GPIO pins are used to interface with the motor drivers:

GPIO pin
Motor driver pin Description
5 EN Inverted enable input: The Raspberry Pi pulls this pin high by default, putting the motor driver IC into a low-current sleep mode and disabling the motor outputs (setting them to high impedance). EN must be driven low to enable the motor driver.
6 FAULT Fault output: When the drivers are functioning normally, this pin should be pulled high by the Raspberry Pi. In the event of an over-current or over-temperature condition, the driver IC experiencing the fault drives FAULT low.
12 Motor 1 PWM Motor speed input: A PWM (pulse-width modulation) signal on this pin corresponds to a PWM output on the corresponding driver’s motor outputs. When this pin is low, the motor brakes low. When it is high, the motor is on. The maximum allowed PWM frequency is 50 kHz.
13 Motor 2 PWM
24 Motor 1 DIR Motor direction input: When DIR is low, motor current flows from output A to output B; when DIR is high, current flows from B to A.
25 Motor 2 DIR

Simplified motor control truth table

This table shows how the drivers’ control inputs affect the motor outputs:

Inputs Outputs
EN DIR PWM MxA MxB operating mode
0 0 PWM PWM (H/L) L forward/brake at speed PWM %
0 1 PWM L PWM (H/L) reverse/brake at speed PWM %
0 X 0 L L brake low (outputs shorted to ground)
1 X X Z Z coast (outputs off)

Customer Reviews

Be the first to Write a Review for this item!