Servos
Each device can have up to 8 servos. A servo configuration defines how it appears on the control screen and how it behaves.
Adding a servo
In the device editor, tap Add servo to create a new servo. This opens the servo editor where you configure all settings.
Servo settings
Basic settings
| Setting | Description |
|---|---|
| Name | A label shown on the control screen (e.g., "Gripper", "Steering") |
| Servo ID | The physical output channel on the ESP32 (1–8). Must match the wiring. |
| Min angle | Minimum angle in degrees (0–180) |
| Max angle | Maximum angle in degrees (0–180) |
The angle range limits how far the servo can move. A range indicator bar shows the configured range visually.
Display type
Choose how the servo appears on the control screen:
| Type | Description |
|---|---|
| Slider | Drag to set any angle within the range. Shows the current angle in real time. |
| Button | Tap to toggle between the minimum and maximum angle. Shows On/Off state. |
Slider options
These settings are only available when the display type is set to Slider:
| Setting | Description |
|---|---|
| Orientation | Horizontal — drag left/right. Vertical — drag up/down (takes half the screen width). |
| Track style | Fill — the track fills up to the current position. Thumb — only the thumb indicator is visible. |
| Spring back | When enabled, the servo returns to the minimum angle when you release the slider. Useful for momentary actions. |
Reversed
Enable Reversed to invert the control direction. When reversed, the slider drag direction and fill are mirrored — dragging to the right (or up) decreases the angle instead of increasing it. The min/max labels swap sides to match. The displayed angle always reflects the actual servo position.
This is useful when a servo is physically mounted the other way around. Instead of rewiring or remounting the servo, just toggle this setting.
For buttons, reversed swaps which angle is sent for On and Off.
Reversed works with all display types (slider and button).
Conditions
A servo can be made dependent on another servo's position. This is useful for safety interlocks — for example, only allowing a gripper to open when an arm is in the correct position.
To set up a condition:
- Enable the Requires another servo toggle
- Select the servo it depends on
- Choose the required position:
| Condition | The servo is controllable when… |
|---|---|
| At min | The dependency servo is at its minimum angle |
| At max | The dependency servo is at its maximum angle |
| At min or max | The dependency servo is at either extreme |
When a condition is not met, the servo appears dimmed and shows the condition label. It cannot be controlled until the dependency is satisfied.
Reordering servos
In the device editor, drag the handle next to a servo to change its order on the control screen.
Deleting a servo
In the servo editor, scroll to the bottom and tap Delete servo.
