S.Bus

S.Bus (or SBUS) is a serial bus devised by Futaba to allow controlling multiple servo motors with a single wire (extended with a number of hubs and terminals). It was introduced in 2010.

Each servo needs to be assigned to a specific channel. For this purpose Futaba produced SBC-1 S.Bus Channel Changer alongside servos compatible with S.Bus. Older traditional servos could still be used with SBD-1 S.Bus Decoder.

S.Bus is not limited by the number of channels in the receiver. For example, an old-school 8-channel receiver can output 14 channels in S.Bus if you have a 14-channel transmitter.

The first S.Bus-compatible receiver was R6108SB by Futaba.

S.Bus2 is a version of S.Bus protocol which includes telemetry.

S.Bus protocol description
S.Bus is derived from the UART protocol with inverted voltage levels. The protocol provides 16 channels of 11 bits each, two digital channels (0 or 1) and two flags for "frame lost" and "failsafe".

Serial communication in S.Bus uses the following settings:
 * Baud rate of 100,000 (non-standard)
 * 8E2 configuration:
 * 1 start bit
 * 8 data bits
 * 1 even parity bit
 * 2 stop bits

A single S.Bus frame is 25 bytes long and takes 3 ms to be transmitted. It consists of the following bytes:
 * 1 header byte (0x0F)
 * 22 bytes of data (16 channels * 11 bits = 176 bits total)
 * 1 byte with two digital channels (channels 17 and 18) and "frame lost" and "failsafe" flags
 * Individual bits are [0 0 0 0 Failsafe Frame_Lost Ch.18 Ch.17]
 * 1 stop byte (0x00)

Each of the 16 channels use values in the range from 192 to 1792 (out of theoretical range from 0 to 2047).

Considerations
Because S.Bus is designed to power and control multiple servos with a single cord comprised of three wires (VCC, GND and signal), special attention needs to paid to the ratings or widths of the wires, as thin wires carrying a lot of current can overheat and burn.

Ferrite cores and ferrite rings are recommended to be used with S.Bus by Futaba.