Raspberry Pi ‘Plate’ or Add-on with 16 Ch. Servo & 16 Ch. GPIO

Pridopia Pi-9685-23017
www.pdf24.org    Send article as PDF   
Over 12 months ago I came across a “I2C: 16 Channel, 12 bit PMW Servo & I2C 23017, 16 GPIO” add-on board for the Raspberry Pi made by a U.K. company called, Pridopia. At the time I thought too myself, “What a great idea”, but I had no immediate use for one. That has since changed thanx to my Raspberry Pi powered ‘LEGO Train Layout‘ I’m currently constructing.

Raspberry Pi Add-on with 16 Ch. Servo & 16 Ch. GPIO

Servo Control Module:

RC Servo motors are often driven using the PWM outputs available on most embedded MCUs. But while the Raspberry Pi does have native HW support for PWM, there is only one PWM channel available to users on GPIO Pin-18. Your options are limited if you need to drive more than one RC Servo, or if you also want to dim some LEDs. One thing the Raspberry Pi does have is Hardware Controlled I2C available, which we can use to communicate with a PWM driver like the PCA9685, used on Adafruit’s 16-channel 12-bit PWM/Servo Driver!

16-Channel 12-bit PWM/ Servo Driver ModuleAdafruit’s 16-channel 12-bit PWM/Servo Driver

The PCA9685 is an I²C-bus controlled 16-channel LED controller optimized for LCD Red/Green/Blue/Amber (RGBA) colour back-lighting applications. Each LED output has its own 12-bit resolution (4096 steps) fixed frequency individual PWM controller that operates at a programmable frequency from a typical of 40 Hz to 1000 Hz with a duty cycle that is adjustable from 0 % to 100 % to allow the LED to be set to a specific brightness value. All outputs are set to the same PWM frequency.

Raspberry Pi Add-on with 16 Ch. Servo & 16 Ch. GPIO

Each LED output can be off or on (no PWM control), or set at its individual PWM controller value. The LED output driver is programmed to be either open-drain with a 25 mA current sink capability at 5V or totem pole with a 25mA sink, 10mA source capability at 5V. The PCA9685 operates with a supply voltage range of 2.3V to 5.5V and the inputs and outputs are 5.5V tolerant. LEDs can be directly connected to the LED output (up to 25mA, 5.5V) or controlled with external drivers and a minimum amount of discrete components for larger current or higher voltage LEDs.

Raspberry Pi Add-on with 16 Ch. Servo & 16 Ch. GPIO16 channel PWM Servo & 16 GPIO input/output with 16 Blue LED

GPIO Control Module:

While the Raspberry Pi packs and awful lot of punch for the price,there are situations where you might want a bit more basic digital IO. It’s an easy problem to solve with an I2C-enabled device like the MCP23008 (for an extra 8 GPIO pins) or the MCP23017 (for an extra 16 GPIO pins).

MCP23017 port expanderMicrochip MCP23017 Port Expander

This board expands the Raspberry Pi by adding 12 bit PMW Servo Controller with 16 Channels and 16 General purpose Digital I/Os in a single package. Both the GPIO Expander and Servo Controller are I2C Bus devices. Each of these controllers have User Selected I2C Address’, allowing for multiple boards to be added to a ‘Single Raspberry Pi‘.


Raspberry Pi Add-on with 16 Ch. Servo & 16 Ch. GPIORaspberry Pi – I2C 16 Channel PWM Servo & SPI 23017 x1 – 16 GPIO Board

  • J3 Mini USB 5V input for PWM V+ & GPIO output pin 10 V
  • J2 2P Terminal Block 5V input for PWM V+ & GPIO output pin 10 V+
  • J1 Rs-Pi V2       GPIO output
  • JP13  DA0 ~ DA7       U14 Port A
  • JP14 BA0 ~ BA7        U14 Port B
  • R64,R65,R66 ( for  U14 Address select  A0,A1,A2)
  • U14 I2C 23017 -1  Port A,B [23017 Datasheet]
  • U15  uln2803 
  • U3 PCA9685 (PWM Port 0 ~ 15) [PCA9685 Data Sheet ]
  • R10,R11,R12,R13,R14,R15( for U3 Address select A0,A1,A2,A3,A4,A5)


This is exactly Raspberry Pi interface that is needed too rotate the Turntable, Switch the Track Points, and receive location information from the Infra-red Train Position Sensors on my LEGO Train Layout.


4 Port USB HUB, with RTC, Temperature Sensor, D/A, A/D, EEPROM, MCP23008, FT232RL, ZT3243.

Pridopia have a large selection of Raspberry Pi Expansion Boards (Plates), including ones with USB2.0 Hubs added to boards with I/O Controllers and sensors. You must check out this little gem: RS232 COM Port, and with both TTL Serial, & Bluetooth Console on the same Board.



Previous Post
Servo Board

Using 16-Channel I2C, Servo Module with Raspberry Pi

You want to make a cool robot, maybe a hexapod walker, or in my case I want to use 9g Micro Servos to switch the points on my LEGO Train ... Read more

Next Post
Raspberry Pi connected to Arduino via I2C

Connecting an Arduino to a Raspberry PI using I2C

I'm intending to use several Arduino Boards as a cheap means of controlling a number of RFID Readers which will be used to detect the position of Locomotive Engines on ... Read more

Short URL: http://tinyurl.com/hez3gz5

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Do NOT follow this link or you will be banned from the site!