Servo PWM Pi

16-channel, 12-bit PWM controller for driving LEDs and RC servos

£11.39 each (excluding VAT: £9.49)
88 available
Product Code: Servo PWM Pi Zero
EAN: 7426787870224
Add a Screw Terminals 2 pin 5mm
for only £0.69 each ex vat
Order 5mm Pitch 2 Pin 16A PCB Screw Terminal
Add a Mounting Kit Four Pack
for only £3.49 each ex vat
Order Mounting kit to use on our Raspberry Pi boards

The Servo PWM Pi is a 16-channel, 12-bit PWM controller for the Raspberry Pi and other compatible single-board computers; suitable for driving LEDs and radio control servos. The board is based around PCA9685 PWM I2C LED controller IC from NXT and can drive each of the 16 outputs with a 12-bit (4096 steps) duty cycle from 0%  to 100%.

The output frequency is programmable from a typical 40Hz to 1000Hz. Each output driver is programmed to be either open-drain with a 22 mA current sink capability at 5 V or totem pole with a 22 mA sink, 10 mA source capability at 5 V. 220R current limiting resistors are used on each channel, allowing you to connect servos or LEDs directly to the outputs.

The PCA9685 contains 5 I2C address selection pins, which can be configured using solder bridges on the Servo PWM Pi Zero PCB. Using different I2C addresses on your Servo Pi allows you to stack several boards on a single Raspberry Pi; see the datasheet for more details on I2C address selection. The active LOW Output Enable input pin (OE) on the PCA9685 allows asynchronous control of the LED outputs and can be used to set all the outputs to a defined I2C-bus programmable logic state. The OE can also be used to externally ‘pulse width modulate’ the outputs, which is useful when multiple devices need to be dimmed or blinked together using software control. The OE pin can be connected to pin 7 (GPIO 4) on the Raspberry Pi GPIO port by bridging the solder pads on the Servo Pi marked OE.

Connecting RC Servos

The Servo Pi is only compatible with analogue RC servos; digital servos will not work. While the Servo Pi uses a 12-bit (4096-step) controller, due to the way RC servos are designed, only approximately 200 steps will be available for controlling the servo. You can find an example python library for controlling an RC servo at

Powering the Servo PWM Pi

For safety reasons, the Servo PWM Pi is not connected to the 5V power rail on the Raspberry Pi.

Due to the high currents used on radio control servos and other PWM devices, it is recommended that you use an external 5V power supply to power the Servo Pi. External power can be provided through the 5V and GND pads on the Servo PWM Pi Zero. If you use two power supplies, one for the Raspberry Pi and one for the Servo Pi, please ensure that the ground wires on the two supplies are joined and do not have any potential difference between them. Any potential difference between the grounds could damage the Raspberry Pi and yourself.

If you are using the Servo PWM Pi for low current applications, below 300mA, you can power the Servo PWM Pi through the 5V pins on the Raspberry Pi GPIO port by bridging the “PWR Link” pads with a blob of solder.

Bridging the “PWR Link” pads will also allow you to power your Raspberry Pi from the Servo Pi power pins using an external 5V power supply, but please note this will bypass the internal fuse on the Raspberry Pi, leaving it vulnerable to damage from short circuits on any of the GPIO pins.

Technical Details

Input Ratings & Specifications

Supply Voltage
2.3V to 5.5V
Voltage on any input/output pin
Vss to 5.5V
Logic Voltage at GPIO I2C Port
Output Current On Each Pin
25 mA
Total Maximum Current
400 mA
Total Power Dissipation
400 mW

3D CAD Model

Click to downloadServo Pi Zero - 3D CAD File (STEP Format)


Servo Pi Zero Schematic

Mechanical Drawings

Click the image to enlarge


We have tested the Servo PWM Pi on the following platforms.

Model Status
Raspberry Pi Model A / B
Raspberry Pi 1 Model A+ / B+
Raspberry Pi 2 Model B
Raspberry Pi 3 Model A+ / B / B+
Raspberry Pi 4 Model B
Raspberry Pi 5
Raspberry Pi Zero
Raspberry Pi Zero W / Zero 2 W
Raspberry Pi Compute Module 4 IO Board
Raspberry Pi 400
Asus Tinker Board

Code Libraries and Demos

We have Python, C, C++, Node.js and Windows 10 IOT libraries for this expansion board.  You can download all of the libraries from GitHub at: or click on the logos below for your selected programming language.

Assembly Instructions

The Servo PWM Pi is supplied with the 40-pin GPIO connector unsoldered.

We supply the Servo PWM Pi this way because the Raspberry Pi Zero is also provided without a GPIO header. The Servo PWM Pi could be fitted above or below the Raspberry Pi.

Before using the Servo PWM Pi, you need to solder the 40-pin GPIO connectors onto the PCB.  

PCB Header Assembly Jig

Download and print our PCB Header Assembly Jig to hold your circuit board when soldering the header pins.


Servo PWM Pi

£11.39 each (excluding VAT: £9.49)

You may also like

Important Information

This development board/kit is intended for use for ENGINEERING DEVELOPMENT, DEMONSTRATION, OR EVALUATION PURPOSES ONLY and is not considered by to be a finished end-product fit for general consumer use. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. Persons handling the product(s) must have electronics training and observe good engineering practice standards. This development board/kit does not fall within the scope of the European Union directives regarding electromagnetic compatibility, restricted substances (RoHS), recycling (WEEE), FCC, CE or UL, and therefore may not meet the technical requirements of these directives or other related directives. Note: documents in Portable Document Format (PDF) require Adobe Acrobat Reader 5.0 or higher to view, download Adobe Acrobat Reader or other PDF reading software for your computer or mobile device.