ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

New PCA9685 driver for ROS

I wrote a driver for the PCA9685 I2C PWM driver chip. This chip is intended to be used with LED applications but is also used in a number of servo and motor controller boards, including a few Adafruit and Waveshare boards among others.

A couple of notable features I added that I haven’t seen done in other similar packages:

  • The ability to update only certain channels in a ROS command, and not update all of them. This allows multiple ROS nodes to publish to the same command topic but take charge of different subsets of the 16 channels.
  • A timeout. If a channel isn’t updated within that time, it gets set to 0. This is useful to avoid servos burning out if your control logic crashes, and also as a heartbeat timeout in the case of motor controllers.
1 Like