periph-servo-pca9685 is a Viam modular component that uses the periph.io library to control servos connected to pca9685 channels.
The periph-servo-pca9685 resource provides the following methods from Viam's built-in rdk:component:servo API:
The following attributes may be configured as periph-servo-pca9685 config attributes. For example: the following configuration set up a servo on I2C bus 0, PCA9685 channel 15:
{
"i2c_bus" : "0",
"channel" : 15
}
string (default: "0")
The name or number of the I2C bus to which the PCA9685 is connected.
string (default: "0x40")
The number of the I2C address to which the PCA9685 is connected. This can be formatted as hex (prefixed by "0x") or base 10 (unprefixed) values.
If you're not sure which address to use, see [this guide] for how to detect i2c devices. i2cdetect
displays the hex formatted value.
int (default: 0)
The channel (0-15) to which the servo to control is connected.
int (default: 50)
The frequency in hz of the servo to control. See the datasheet for the servo to control.
int (default 0)
The minimum angle in degrees to which the servo will be allowed to move.
int (default 180)
The maximum angle to in degrees which the servo will be allowed to move.
int (default 0)
When the servo is initiated, it will move to this position (in degrees).
int (default 500)
The minimum duty cycle width in microseconds. See the datasheet for the servo to control.
int (default 2500)
The maximum duty cycle width in microseconds. See the datasheet for the servo to control.
To release a new version of this module, this repo uses the Viam build-action to build the module in Viam's cloud infrastructure and deploy the new version based on a tagged release.
To kick off a deployment:
- Tag the release commit with the new module version and push it to the repo
- Create a release based on that tag
Within a couple of minutes, the new module version should be published to the Viam registry.
If there is an issue with the action and a manual release is required:
- Authenticate the Viam CLI:
viam auth login
- Start a remote build for the new module version
viam module build start --version <version>