In the world of model aircraft, Futaba’s SBUS system is a big deal. Instead of having one servo per channel, the SBUS system allows for 16 proportional controls and two digital channels for each receiver. Basically, if you’re building an awesome plane with retracts on the landing gear and bomb bay doors, this is what you want to use. [Michael] wanted to use a few SBUS servos for a project he’s working on, so of course he had to reverse engineer this proprietary protocol.
Each SBUS servo operates over a single 100kbps serial connection with a few interesting twists: the signal is transmitted as big endian, but the individual bytes are little endian, something [Michael] figured out after stumbling across this month old mbed post. [Michael] used a serial library written by [fat16lib] and was able to change the parity and stop bits along with a simple hex inverter. Everything worked perfectly when the servo was connected to a an Arduino Mini.
Even though the SBUS system requires special Futaba servos, we can easily see how useful [Michael]’s work would be to outrageously complex robots or cnc machines. Check out the video after the break for a quick demo of [Michael]’s breadboard controlling one of these SBUS servos.
18 thoughts on “Reverse Engineering A Futaba SBUS Remote Control”
You right-click ignore one time…
Now the protocol is known, the time is ripe for someone to knock out an sbus to regular cheap servo adapter. An 8 pin µC with UART, (e.g. PIC 12F1840) should have enough resources to convert one sbus channel to 4 normal servos at a guess.
If you had checked the links you’d see Futaba already has the adapters:
And if you had checked the prices of that adapter ($63) or the servos themselves ($60-150ea) you might see the point to nes’s comment. The tech is a lot cooler if you can use 16 x $10 servos rather than 16 x $60 ones
Yes indeed. The PIC I mentioned is $1.08 apiece in onesies which makes it about the cheapest UART equipped micro available. The low pin count limits its usefulness somewhat, but it would be great for blindly controlling a bunch of servos.
u got told, son
That’s trivial. Using the arduino you just map the channel value from 300 – 1750 to 0 – 180 and use the servo library.
It’s spelled “FUTABA”
I thought it was FUBAR?
Oops, Chris beat me to it.
I’ve always wondered why they don’t make servos that you can control with some I2C or serial bus. That would make a lot more sense than separate analog channels for all the servos.
There just doesn’t seem to be much overlap between the people using these for robots and people using them for R/C vehicles.
>>Basically, if you’re building an awesome plane with retracts on the landing gear and bomb bay doors, this is what you want to use.
Only if you want to mortgage your house to pay for the radio. Cheapy 9 channel 2,4ghz radio from China have awesome range and reliability for WAY below 100USD. As for Futaba… did they fix that software glitch that gave the same binding key to all their controllers, therefore if 2 people showed up with the same radio the planes were going totally berserck ?
Can any of you guys who understand this stuff tell me what the max wire length is that can be used in an sbus system w/o degrading the signal to the point it can no longer be used? Assume 22 AWG wire. Thanks.
I made it hack a day!
Nothing to add really, just proud to see big bro making the crazy machines! You rock!
Please be kind and respectful to help make the comments section excellent. (Comment Policy)