FlySky iA6B PPM and IBUS with Naze 32

I recently bought a Naze 32 (link) for my new quad copter project. I was busy trying to find 6 servo leads to connect the 6 channels from my FlySky iA6B receiver when I remembered reading about one wire alternatives to multi-wire PWM. I’m pretty new to the RC hobby but I did some digging and found that there are indeed a multitude of alternatives to PWM. The ones supported by the iA6B, which is a pretty cheap but seemingly decent receiver, are PPM and IBUS. Both PPM and IBUS can send all 6 channels output from the receiver over one wire (plus power and ground).  If you don’t care about the differences between PWM, PPM and IBUS just jump here for instructions on using IBUS or PPM  with the FlySky iA6B and Naze 32.

What’s the difference?

PWM signals consist of a variable length pulse sent at a regular interval. Hobby RC kit doesn’t seem to be overly fussy about the frequency of the pulses. What matters is the length of the pulse, the longer the pulse the higher the value it represents. In the case of the RC receiver, when you push one of the sticks up on the transmitter the length of the pulses of the corresponding channel from the receiver increases.

PPM, also known as CPPM, can send multiple channels of information using one piece of wire. Here the pulses are the same length but the time between them varies to represent the channel value. The first pulse marks the start of the channel 1 value, the second pulse marks the end of the channel 1 value and the start of the channel two value. By timing the gaps between pulses, the data for multiple channels can be obtained. This whole process repeats, typically every 20 ms, giving a max update rate of 50 Hz. There is also usually a limit of around 8 channels that can be transmitted using PPM on one wire.

IBUS is a serial protocol, I’ve not found out many details (I keep meaning to stick a scope on the tx line) but essentially multiple channels are transmitted serially down one wire. I *think* the baud rate is 115200. We can do some simple maths to figure out how fast we could send data, assuming each channel outputs a value from 0-1024:

  • 115200 bits per second
  • 1024 can be represented in 10 bits. (2^10).
  • Lets assume we could have up to 20 channels.
  • 115200 / 10/ 20 = 576 updates per second

This assumes that there are no start/stop bits or delays between channels etc but it should be clear that several hundred updates a second is feasible. A second benefit is that the information is digital, the values received are not based on timing the length of pulses. As such you can see a lot less jitter when using IBUS vs PPM or PWM.

Using IBUS or PPM with FlySky iA6B and Naze 32

I’m using Baseflight because that’s what came on the Naze board I bought and my Nighthawk 280 Pro. The process is similar for Cleanflight, here’s a link to a good video explaining how to setup IBUS in Cleanflight.

Steps:

  1. Connect a servo lead from the IBUS SERVO  pins on the receiver and connect it to VCC (power) and ground on the Naze 32 board.
  2. Connect the signal pin to pin 4 (see picture).
  3. Connect power to the Naze board (I used a UBEC I had laying around)
  4. Connect your Naze to your computer with a USB cable.
  5. Open baseflight, connect and go to the “Configuration” tab.
  6. Select “IBUS” in the “Serial Receiver” drop down box (see image).
  7. In the “Features” section, select “Enable Serial-based receiver”
  8. In the “Features” section, deselect select “Enable PPM input”
  9. Save the settings and reboot.
  10. Turn on your transmitter and in Baseflight go to the “receiver” tab.
  11. Waggle the sticks and the receiver values should change.
IBUS setup between IA6B receiver and Nase 32 rev6. I soldered the connections as I didn't have any connectors to hand.

IBUS setup between IA6B receiver and Nase 32 rev6. I soldered the connections as I didn’t have any connectors to hand.

 

Baseflight settings for IBUS support.

Baseflight settings for IBUS support.

 

Baseflight settings 2

 

Advertisements

3 comments

  1. Martin Thibodeau · · Reply

    Hi, thank you for your tutorial, I appreciate ! Did you know how to plug add the gps on this board ? I believe it is on the 4 and 5 connector but the 4 connector is taken by the ibus !

    Thanks.

    1. I’ve not checked if it works, but there is another serial port (UART1) in the middle of the naze32 board that you might be able to use.

      1. Martin Thibodeau · ·

        Thank you ! I will try when I receive the gps and I after I update the result.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: