

The SBUS Receiver is a device designed to receive signals from a transmitter using the SBUS protocol. This protocol is widely used in remote control systems for model aircraft, drones, and other RC (radio-controlled) applications. The SBUS protocol allows for the transmission of multiple control channels (up to 16 or more) over a single signal wire, providing low-latency communication and efficient use of resources.








The SBUS Receiver is designed to work seamlessly with SBUS-compatible transmitters and flight controllers. Below are the key technical details:
| Parameter | Value |
|---|---|
| Protocol | SBUS |
| Number of Channels | Up to 16 |
| Operating Voltage | 3.3V to 5.0V |
| Signal Output | Inverted Serial (UART) |
| Communication Speed | 100,000 baud (fixed) |
| Latency | ~3ms |
| Connector Type | 3-pin (Signal, VCC, GND) |
| Dimensions | Varies by model (e.g., 25x15mm) |
| Weight | Typically <10g |
| Pin Name | Description |
|---|---|
| Signal | SBUS signal output (inverted UART) |
| VCC | Power input (3.3V to 5.0V) |
| GND | Ground connection |
Connect the Receiver to a Power Source:
VCC pin to a 3.3V or 5.0V power source. GND pin to the ground of your circuit.Connect the Signal Pin:
Signal pin to the SBUS input of your flight controller or microcontroller. Bind the Receiver to the Transmitter:
Configure the Flight Controller or Microcontroller:
To use the SBUS Receiver with an Arduino UNO, you will need to invert the SBUS signal. This can be done using a hardware inverter or by modifying the Arduino's UART library. Below is an example code snippet for reading SBUS data:
#include <SoftwareSerial.h>
// Define the SBUS signal pin
#define SBUS_PIN 10
// Create a SoftwareSerial object for SBUS communication
SoftwareSerial sbusSerial(SBUS_PIN, -1); // RX pin, no TX pin
void setup() {
// Initialize the serial monitor
Serial.begin(9600);
// Initialize the SBUS communication at 100,000 baud
sbusSerial.begin(100000);
Serial.println("SBUS Receiver Initialized");
}
void loop() {
// Check if data is available from the SBUS receiver
if (sbusSerial.available()) {
// Read and print the incoming SBUS data
uint8_t sbusData = sbusSerial.read();
Serial.print("SBUS Data: ");
Serial.println(sbusData, HEX);
}
}
Note: The above code assumes the use of a hardware inverter for the SBUS signal. If you are using a software-based inversion library, modify the code accordingly.
No Signal from the Receiver:
Data Corruption or Unreadable Data:
Intermittent Signal Loss:
Failsafe Not Working:
Q: Can I use the SBUS Receiver with a 3.3V microcontroller?
A: Yes, the SBUS Receiver operates within a voltage range of 3.3V to 5.0V, making it compatible with 3.3V microcontrollers.
Q: Do I need a hardware inverter for the SBUS signal?
A: It depends on your microcontroller. Some microcontrollers support inverted UART signals natively, while others require a hardware inverter or software-based inversion.
Q: How many channels can the SBUS Receiver handle?
A: The SBUS protocol supports up to 16 channels, with some receivers offering additional channels for telemetry or auxiliary functions.
Q: Can I use the SBUS Receiver with non-SBUS transmitters?
A: No, the SBUS Receiver is specifically designed to work with SBUS-compatible transmitters.
By following this documentation, you can effectively integrate and troubleshoot the SBUS Receiver in your projects.