Reverse engineering a Futaba SBUS remote control

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.

[youtube=http://www.youtube.com/watch?v=_qeLBebtsdw&w=470]

Comments

  1. davidmitchell836 says:

    That’s Futaba.

  2. nes says:

    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.

    • sxrguyinma says:

      If you had checked the links you’d see Futaba already has the adapters:

      http://www.futaba-rc.com/sbus/index.html

      • knuckles904 says:

        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

      • nes says:

        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.

    • Michael Baker says:

      That’s trivial. Using the arduino you just map the channel value from 300 – 1750 to 0 – 180 and use the servo library.

  3. Chris says:

    It’s spelled “FUTABA”

  4. Lito says:

    Oops, Chris beat me to it.

  5. charliex says:
  6. 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.

  7. Coligny says:

    >>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 ?

  8. trent says:

    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.

  9. Michael Baker says:

    I made it hack a day!

  10. David Baker says:

    Nothing to add really, just proud to see big bro making the crazy machines! You rock!

Speak Your Mind

*

Related Hacks in hardware

  • RSS Feed Testing
  • Hacking the Kingston Wi-Drive
  • Putting a software defined radio on a mac
  • Defying gravity for new user interfaces
  • [Matt's] bubble display updated