Thruster and ESC Connections
ArduSub does not split outputs into throttle and steering the way a rover or boat does; it numbers them by frame. SERVO1 through SERVO8 map to Motor1 through Motor8. A wrong number raises no error, but the vehicle moves in the wrong direction underwater, so wiring and FRAME_CONFIG have to be confirmed together.
Frame configuration
FRAME_CONFIG sets how many thrusters there are, their numbering and the thrust direction of each one. It takes effect only after a reboot.
| Value | Frame | Thrusters | Controllable axes |
|---|---|---|---|
| 0 | BlueROV1 | 6 | Roll / Pitch / Yaw / Heave / Surge / Sway |
| 1 | Vectored | 6 | Yaw / Heave / Surge / Sway |
| 2 | Vectored_6DOF | 8 | Roll / Pitch / Yaw / Heave / Surge / Sway |
| 3 | Vectored_6DOF_90 | 8 | Roll / Pitch / Yaw / Heave / Surge / Sway |
| 4 | SimpleROV-3 | 3 | Yaw / Heave / Surge |
| 5 | SimpleROV-4 | 4 | Roll / Yaw / Heave / Surge |
| 6 | SimpleROV-5 | 5 | Roll / Yaw / Heave / Surge / Sway |
| 7 | Custom | Free | Per the custom mixer |
Frames missing an axis rely on centre of gravity and ballast to hold that axis; the thrusters cannot correct it. BlueROV2 uses frame 1, Vectored; BlueROV2 Heavy uses frame 2, Vectored_6DOF.
Six thrusters: Vectored

▲ Vectored frame: numbers 1–6 map to Output 1–6; the red triangle marks the nose
Eight thrusters: Vectored_6DOF

▲ Vectored_6DOF frame: numbers 1–8 map to Output 1–8; four vertical thrusters give heave and roll
Counter-rotating props on shared axes
Where two thrusters oppose each other on the same axis, fit one normal and one reversed prop and run them in opposite directions. Fitting both the same way produces a continuous yaw torque in depth hold or straight running, and forcing it out with MOTx_DIRECTION leaves the attitude shaking.
Outputs and function values
The default order already matches; only re-ordered channels need new function values. Keep the wiring and change the parameter.
| Parameter | Value | Meaning |
|---|---|---|
SERVO1_FUNCTION | 33 | Motor1 |
SERVO2_FUNCTION | 34 | Motor2 |
SERVO3_FUNCTION | 35 | Motor3 |
SERVO4_FUNCTION | 36 | Motor4 |
SERVO5_FUNCTION | 37 | Motor5 |
SERVO6_FUNCTION | 38 | Motor6 |
SERVO7_FUNCTION | 39 | Motor7 |
SERVO8_FUNCTION | 40 | Motor8 |
Reboot after changing a function value
SERVOx_FUNCTION only takes effect after a reboot. Without one the ground station shows the new value while the output still follows the old function.
ESC type and travel
MOT_PWM_TYPE sets the signal format. Pick it from the ESC datasheet; the wrong choice shows up as an ESC that beeps but does not turn, or one that jumps in speed.
| Value | Signal |
|---|---|
| 0 | Normal PWM |
| 1 | OneShot |
| 2 | OneShot125 |
| 3 | Brushed, direct drive |
| 4 | DShot150 |
| 5 | DShot300 |
| 6 | DShot600 |
| 7 | DShot1200 |
| 8 | PWMRange |
| 9 | PWMAngle |
Submersible thrusters use bi-directional ESCs: 1500 µs is stop, with forward and reverse either side of centre. MOT_PWM_MIN / MOT_PWM_MAX take the travel endpoints from the datasheet; when the datasheet is unclear, use PWMRange or PWMAngle and set travel per ESC. MOT_SPIN_ARM must be lower than MOT_SPIN_MIN — the first is the output applied when armed, the second where thrust begins.
Thrust direction
Four ways to fix a reversed thruster, in order from parameter to mechanical:
| Method | How |
|---|---|
MOTx_DIRECTION | 1 normal, -1 reversed; no rewiring |
| Swap motor wires | Swap any two of the three phase wires on a brushless motor |
| ESC configurator | Reverse direction in the BLHeli or AM32 tool, or through ArduPilot passthrough |
| MOTORDETECT mode | Detects and corrects bi-directional thruster direction at rest underwater, but only for thrusters controlling roll, pitch or yaw |
Verify one thruster at a time. Change several at once and you cannot tell which change produced the correct direction.
Common frame wirings
| Frame | Thrusters | Outputs | Notes |
|---|---|---|---|
| Vectored | 6 | Output 1–6 | Four horizontal plus two vertical; the usual survey and inspection layout |
| Vectored_6DOF | 8 | Output 1–8 | Four horizontal plus four vertical, adds roll control and lift capacity |
| SimpleROV-4 | 4 | Output 1–4 | Two horizontal plus two vertical, no lateral motion |
| SimpleROV-3 | 3 | Output 1–3 | One horizontal plus two vertical; surge, heave and yaw only |
The Vectored frame also has MOT_FV_CPLNG_K, which reduces hydrodynamic coupling between heave and horizontal thrust at the cost of less forward thrust during fast climbs or descents. It defaults to 1.2; 0 disables it.

