Configure a gpio Servo
Configure a gpio
servo to integrate a hobby servo controlled by general-purpose input/output (GPIO) pins on a non-pi
model board into your robot:
Navigate to the Config tab of your robot’s page in the Viam app.
Click on the Components subtab and navigate to the Create component menu.
Enter a name for your servo, select the type servo
, and select the gpio
model.
Click Create component:
Edit and fill in the attributes as applicable.
{
"components": [
{
"name": "<your-servo-name>",
"type": "servo",
"model": "gpio",
"attributes": {
"pin": "<your-pin-number>",
"board": "<your-board-name>"
}
},
... // insert your board component config
}
{
"components": [
{
"name": "local",
"type": "board",
"model": "jetson"
},
{
"name": "my_servo",
"type": "servo",
"model": "gpio",
"attributes": {
"pin": "16",
"board": "local"
}
}
]
}
The following attributes are available for gpio
servos:
Name | Type | Inclusion | Description |
---|---|---|---|
pin | string | Required | The pin number of the pin the servo’s control wire is wired to on the board. |
board | string | Required | name of the board the servo is wired to. |
min_angle_deg | float | Optional | The minimum angle in degrees that the servo can reach. Default = 0.0 Range = [ 0.0 , 180.0 ] |
max_angle_deg | float | Optional | The maximum angle in degrees that the servo can reach. Default = 180.0 Range = [ 0.0 , 180.0 ] |
starting_position_deg | float | Optional | Starting position of the servo in degrees. Default = 0.0 Range = [ 0.0 , 180.0 ] |
frequency_hz | int | Optional | The frequency of PMW pulses sent to the servo, in Hertz (Hz). Default = [ 300 ]Range = [ 0 , 450 ] |
pwm_resolution | int | Optional | The resolution of the PMW driver (for example, the number of ticks for a full period). If not specified or given as 0 , the driver will attempt to estimate the resolution. |
min_width_us | int | Optional | Override the safe minimum PMW pulse width in microseconds. Range > 450 |
max_width_us | int | Optional | Override the safe maximum PMW pulse width in microseconds. Range < 2500 |
Tip
Refer to your servo’s data sheet for pulse-width modulation (PWM), rotation, and wiring specifications.
Have questions, or want to meet other people working on robots? Join our Community Discord.
Was this page helpful?
Glad to hear it! If there is anything we could be doing better, please create an issue.
We're sorry about that. If you'd like to talk to us for help, please join the Community Discord. To ensure we know what's wrong with this page, you can also open an issue.