Motor SHIM driver board for Pico review

By Phil King. Posted

Raspberry Pi Pico’s diminutive size makes it highly suitable for using in smaller robots, and now it has a mini motor driver board to match. Pimoroni’s Motor SHIM is about half the size of Pico and fits onto the ten pins nearest the latter’s micro USB port.

You can solder the Motor SHIM straight onto Pico’s pins for a permanent fit – orientation is aided by two mounting holes and a silkscreen image on its underside – or use a couple of female headers soldered onto the SHIM if you want to remove it later.

The Motor SHIM features a DRV8833 dual H-bridge motor driver. This means it can drive a maximum of two motors – the rival Kitronik Robotics Board can handle four, but then it is considerably larger.

Rather than screw terminals, the Motor SHIM features two small two-pin JST-ZH connectors. For each, just plug in one end of a cable (not supplied), and the other end into a Motor Connector SHIM on a micro metal-gear motor. You can also buy motors with the JST‑ZH connector pre-soldered – to the top or side, depending on your mounting preference. Note that the Motor SHIM won’t work with motors equipped with six-pin Micro Metal Motor Encoders, however.

Chassis and power

With your motors connected, you can use brackets to mount them on a two-wheeled robot chassis. The Motor SHIM’s product page features the design (DXF file) for a laser-cut mini chassis. Or you could use an existing robot chassis you have to hand – we borrowed one from a Trilobot – or 3D-print one. If you need some inspiration, check out Kevin McAleer’s BurgerBot, which uses Pico and the Motor SHIM.

While you’ll connect your robot’s Pico via USB to a computer for programming, you’ll need portable power to run it untethered. This could be in the form of a standard USB power bank, but a LiPo battery pack is a more slimline solution. For the latter, you’ll require a LiPo SHIM mounted above/below the Motor SHIM using a stacking header, or (less neatly) connecting via a Pico Omnibus Dual Expander.

Easy to program

Full C++ and MicroPython libraries are provided for the Motor SHIM, packed with useful functions to make it easy to control your robot. We did need to reverse the direction of our right-hand motor, although that’s easily achieved with a parameter when creating its ‘motor’ object in the code setup.

As well driving one or both motors forward and backwards at a selected speed, there are helpful coast and brake functions. You can calibrate the precise speed of each motor with a ‘speed_scale’ parameter so that both motors are perfectly matched. Other settings include the deadzone, zeropoint, duty cycle, and frequency. The latter is even used in one of the code examples to play a tune on the motors!

The software library includes a function to read the Motor SHIM’s on-board button, which may prove handy for stopping/starting a movement sequence. You could also use its single Qwiic/STEMMA QT port to add an I2C sensor such as an ultrasonic range-finder to your mini robot.



While you’ll need to add motors and a lot of other bits, this tiny Motor SHIM is a great choice for making a pint-sized Pico robot, aided by excellent software libraries.




Motor Driver: DRV8833 dual H-bridge Features: 2 × JST-ZH 2-pin motor connectors, on-board push-button, Qwiic/STEMMA QT breakout connector Dimensions: 26 × 21 × 5 mm (inc. headers)

From The MagPi store