SBus Servos

../_images/servo-sbus-topimage.png

Futaba SBus/SBus2 servos accept the serial SBus protocol and can be controlled by ArduPilot once connected to the flight controller’s “SB” port or any other serial port. Up to 16 servos can be daisy chained together meaning that instead of each servo being directly connected to the flight controller, only a single serial connection from the flight controller is required.

The transmission rate is 100K baud.

Where to Buy

Configuring the Servos

Each servo’s ID needs to be set to a number from 1 to 16. The number chosen should correspond to the servo number used to configure and control the servo from within ArduPilot. For example if the ID is set to “9”, the SERVO9_MIN, SERVO9_MAX, SERVO9_FUNCTION, etc parameters will be used to configure the servo.

  • Connect the servo the Futuba CIU-3 USB Interface dongle (online manual) and plug the dongle into a Windows PC. A prompt should appear to download and install the required drivers
  • Download and install the S-Link software (search for “S-Link” here)
  • Use S-Link to set each servo’s ID (online instructions)
../_images/servo-sbus-slink.png

image courtesy of Futaba.com

Connecting Servos to a Flight Controller

../_images/servo-sbus-pixhawk.png

If using a Pixhawk connect the servo to the “SB” port on the back of the flight controller. For Cube autopilots use the “SBUSo” port. For other autopilots without these connectors see the instructions below

SERVO_SBUS_RATE controls the update rate to the servos. The default is 50 Hz but can be set to any value in the range of 25 Hz to 250 Hz

Connecting Servos to a Serial Port

SBus servos can also be controlled from any of the flight controller’s serial ports. The protocol uses inverted logic levels (unidirectional: output only) meaning an inverting cable is required when using a standard serial port. Below is a diagram showing a simple NPN transistor inverter which will suffice:

../_images/sbus_inverter.png
  • Set the SERIAL2_PROTOCOL = 15 (“SBUS servo out”) if using Telem2. For other serial ports use the appropriate SERIALx_PROTCOL parameter.
  • The port’s baud rate parameter (in this case SERIAL2_BAUD ) will automatically be set to 100,000

SBUS to PWM Decoders

SBus to PWM decoders allow using the SBus interface with regular PWM servos but beware that some decoders including the FrSky SBUS & CCPM Decoder generate a fixed PWM output rate (~170 Hz) that may damage analog servos (digital servos should be fine)