User Tools

Site Tools


GCA-PI03 16 PWM Channel I2C board for Raspberry Pi.


By Rob Versluis & Peter Giling

“Raspberry Pi" is a trademark of the Raspberry Pi Foundation.

This board is an adapter for the Adafruit PCA9685 PWM controller.
Equivalent 'chinese' boards are possible.
This picture shows how header sockets-
and pins should be placed.


Based on the PCA9685 chip, 16 PWM (= Pulth Width Modulation) outputs are possible.
Each output can be used for controlling a servo, or a led, which can be dimmed for 0 to 100% in 4095 steps.
Servo motors need separate 5V supply, for which connection is provided.
This chip communicates with I2C same as the GCA-PI02 board.
Again, also here a special linedriver for I2C is on board, to be able to run longer lines.
10 meter is guaranteed.
Unfortunately, the PCA chip is only available in SOT28 shape, which makes it very hard to make it d.i.y. item.
For the moment , the decision is made to use a ADAfruit PCA9684 board as piggybag for the GCA-PI03.
Depending on the amount of interest, a new GCA-PI03 board will be developed, with PCA9685 chip fixed on board.
It is true that ADAfruit board could be used without GCA-PI03, but there are few restriction in using it wih the other GCA-PIxx boards.
GCA-PI03 makes the use of ADAfruit board very easy.
In total 8 x GCA-PI03 can be connected to one Raspberry, together with max 4 x GCA-PI02.
This comes to a total of 128 switching and 128 dimming outputs to one Raspberry.
The interface boards GCA76 and GCA77, for higher voltages, enableing multiple leds in series connected to 1 output, also dimming/switching with higher currents.
GCA-PI03 does not feature any input.

The external 5V, connected to V5 USB connector, is used to supply the servo's.
Be aware that this is essential for a correct functioning of the RocNet network.
The momentary high current in Servo's cannot be supplied by the RocNet cables!
Instead of the USB connector (which is only capable of max 1 Amp), a screw terminal block with 0,15 or 0,2 spacing can be used.
The chips on this board are supplied from the 5 Volt as availbale in the RocNet connections cable.
Jumper JP1 is used to connect external 5V to I/O1 and I/O2, or internal (line) 5V.
2 leds signal the internal (Line) 5V and the external 5V.

The outputs 9..16 available at the pin header I/O2 can also be used for additional 8 servos.
The necessary adaptation to the 8 x 3-pin servo connectors is to do in DIY (e.g. "free wiring and / or a piece of a hole grid board").


  • Up to eight boards can be connected to each RocNetNode; 128 Channels.
  • Servo and LED support directly connected to the Adafruit board.
  • The GCA76 and/or GCA77 can be connected for more power per channel.
  • USB-Connector for 5V external power supply.

Setting JP1 (blue PCB only)

Supply of this board can be done in various ways.
It influences the setting of JP1.

Option 1:

All supplies coming from GCA_PI06 only.
Connect all three pins of JP1 together.

Option 2 :

Supply for electronics with GCA_PI06.
Power 5V for servo separate.

  1. Connect GCA_PI06 with RJ12 cable.
  2. Connect 5 V for Servo to V5.
  3. JP1 in pos 1 (on board indicated) : IO 01 / IO 02 get 5 V from RJ12 connectors
  4. JP1 in pos 2 (on board indicated) : IO 01 / IO 02 get 5 V from V5 connector.
  • Notes:
    • V5 USB connector could also be replaced by normal screw-terminal as delevered with ADAfruit board.
    • :!: Several forum posts report malfunctions when servos receive their power supply via the I2C bus.
      In the reported cases, the high power requirements of the servos in the small wire diameters of the I2C cables result in undervoltage for the Pi modules.
      For this reason, servos should always be powered separately with their own power supply.

Setting dip switch on SW1 position (green pcb only)

On green pcb the jumper is replaced by SW1

Functions of SW1

SW1(1) SW1(2) Function
OFF OFF no supply to Servo's and I/O1,2
ON OFF do not use
OFF ON 5V supply for servo's should be connected via V5
5V supply for I/O1,2 comes from RocNet supply
ON ON 5V supply for Servo's and for I/O1,2 comes from RocNet supply

Address selection

The solder pads on the Adafruit board are used for setting the I2C address:

Board # A2 A1 A0 Channels I2C Address
1 OFF OFF OFF 1..16 0x40
2 OFF OFF ON 17..32 0x41
3 OFF ON OFF 33..48 0x42
4 OFF ON ON 49..64 0x43
5 ON OFF OFF 65..80 0x44
6 ON OFF ON 81..96 0x45
7 ON ON OFF 97..112 0x46
8 ON ON ON 113..128 0x47


The schematics
The Gerber pcb-files
The bill of materials
N.B. Only complete ordered kits will be supported!
gca-pi03-en.txt · Last modified: 2023/05/11 21:05 by phg