4-Layer PCB Design for Servo Control

Renamed project

Renamed to: "Dual PCA9685 Servo Controller"

2 days

Updated project description

Updated to: "4-layer dual PCA9685 servo controller for Raspberry Pi 5 and STM32 Nucleo with TXS0102 I2C level shifting, 6V/20A servo power distribution, OE safety disable, and VSense monitoring."

2 days

0:00

Work done
  • Renamed the project to Dual PCA9685 Servo Controller and updated its description for the 4-layer Raspberry Pi 5 / STM32 Nucleo / dual PCA9685 servo controller.
  • Created the Design Notes project file capturing the approved requirements and assumptions.
  • Confirmed the schematic is currently empty: 0 components, 0 nets.
  • Identified suitable library candidates for key parts: PCA9685PW,118 / PCA9685PW and TXS0102DCTR/DCU/DQE variants, plus generic resistor/capacitor parts.
Success criteria review
  • ❌ Schematic complete and wired: not completed; no components or nets have been added yet.
  • ❌ 4-layer stackup and high-current 20A / 2 oz layout rules: not completed.
  • ❌ Component placement/routing/ERC/DRC verification: not completed.
Next steps
Once execution can continue, the remaining work is to add and wire the schematic, confirm TXS0102 pull-up compatibility, configure the 4-layer stackup and 20A power-distribution rules, then proceed to PCB layout with board sizing, placement, routing, and ERC/DRC cleanup.
2 days

Refine this doc
Ask about this doc
Design Notes
Approved requirements
  • 4-layer PCB for dual PCA9685 servo controller.
  • Copper: 2 oz / 70 µm for up to 20A servo loads.
  • Interfaces: Raspberry Pi 5 3.3V I2C, STM32 Nucleo 5.1V-side I2C/OE/VSense.
  • I2C level shifter: TXS0102, A side at 3.3V, B side at 5.1V.
  • PCA9685 #1 address 0x40: all address pins to GND.
  • PCA9685 #2 address 0x41: A0 to VCC, A1-A5 to GND.
  • OE safety: both PCA9685 OE pins tied to STM32 Nucleo PC7/D9 with 10k pull-up to 5.1V so outputs are disabled by default.
  • PWM outputs: 16 outputs from chip 1 plus PWM0 from chip 2, each with 220 ohm series resistor.
  • VSense: STM32 Nucleo PA0/A0 monitors a divided servo 6.0V rail.
Implementation assumptions
  • Use 5.1V rail as PCA9685 VCC and TXS0102 high-side reference.
  • Use 6.0V_SERVO as the high-current servo V+ rail.
  • Use a conservative 100 mm x 80 mm board outline initially to accommodate headers, 17 servo connectors, bulk capacitance, and high-current pours.
  • High-current 20A paths should be implemented as wide copper pours/planes, not narrow traces.

    Approved requirements

    Implementation assumptions

Documents

    Design Notes

Assets

Assets are files uploaded to this project which can be used in various ways.

Dual PCA9685 Servo Controller thumbnail
4-layer dual PCA9685 servo controller for Raspberry Pi 5 and STM32 Nucleo with TXS0102 I2C level shifting, 6V/20A servo power distribution, OE safety disable, and VSense monitoring.

Properties

Properties describe core aspects of the project.

Pricing & Availability

See prices from popular manufacturers for your project.

Controls