











Update: This is an older guide that uses the Cleanflight configurator and older versions of Betaflight. Check out the updated guide here.

Building a quadcopter is a two part job – assembling the hardware and then configuring the software. I remember when I first started researching quadcopters and APM/older MultiWii boards, the whole setup process was quite daunting.

Things have gotten much easier, though, thanks to software such as Cleanflight and Betaflight.

Cleanflight and Betaflight are the software of choice to use on acro/racing multicopters, and work seamlessly with the Naze32 flight controller board, as well as other higher-end boards like the RMRC Dodo and Seriously Pro boards.

Regardless of what board you have(as long as it’s Cleanflight compatible, which you can see on the product page itself or manual), setting up the software will be more or less the same.

Note: This guide walks you through setting up telemetry using Softserial. For softserial telemetry to work, the green wire from your D4R-II receiver should go into receiver port 6 on your Naze32 board. For monitoring cell voltage, connect your main PDB to the two VBAT ports on your Naze32. This is all you need to connect.

If you don’t want to set up telemetry, ignore the telemetry steps and go ahead.

Downloading drivers and software

To get your computer to recognize the Naze32(or other boards), you’ll first need to download and install some drivers.

Also, to configure Cleanflight/Betaflight on your computer, you’ll need the Google Chrome browser, since the configurator software is a Google Chrome app.

If you don’t already have Google Chrome, you can get it from here.

Once you’ve got Google Chrome, you can download the Cleanflight Configurator software. Cleanflight and Betaflight can both be configured from the same software. You’ll have to open the link from Chrome itself.

After you install it, you’ll be able to find it in the Chrome App Launcher.

Flashing the software to your Naze32

Plug your Naze32 into your computer’s USB, and wait for your operating system to recognize and install the board. You already should have installed the SiLabs drivers I linked to above.

After your board has been recognized(you’ll get confirmation from Windows, but on OS X, just wait a couple of minutes and it should have been done. If you use Linux, you probably know a LOT more about computers than I do).

Launch Cleanflight Configurator, and you may see that it connects automatically. If it did, you’ll see a screen like this:

If not, click on the big green “Connect” button in the top right(in the image, the same button is red and says “disconnect”).

If it doesn’t connect, make sure you have the correct port chosen from the drop-down menu next to the Connect button.

It may not be the same for your computer, so you may have to try all of the options.

Once you are connected, disconnect! This was just to make sure that the board was working fine 🙂

After disconnecting, click the “Firmware Flasher” tab on the left side, and you’ll be taken to a screen like this:

If you are flashing Cleanflight, then use the dropdown menu that says “Choose a firmware/board” to select the latest version for your board. There will be many choices – just make sure you choose the latest version that has your board name(like “Naze”) next to it.

Leave all of the options below unchecked, except “Full chip erase”. Select that, since you are flashing a brand new board and you want to start with default settings.

Once you select the board and version from the menu, you’ll see the “Load Firmware(Online)” button becomes clickable. Go ahead and click on it.

The software will load the firmware, and once loaded, the “Flash Firmware” button will become clickable.

Click on it, wait for the progress bar to complete, and you have the latest Cleanflight on your board! Woohoo!

If you are flashing Betaflight

If you’d like to flash Betaflight, the process will be a little different. Instead of getting the firmware through Cleanflight Configurator, you’ll have to download the firmware yourself and then use the “Load Firmware(Local)” button to find that file.

Betaflight releases can be found on their GitHub page here. Choose the latest “Release” version – or if you are adventurous, the “Pre-release” version, and scroll down to find the file for your board. In this case, for “Naze”. Download the file and save it somewhere you will remember.

Then come back to Cleanflight configurator, and click the “Load Firmware(Local)” button and find the file you downloaded.

Click the “Flash Firmware” button, and let it do its thing. Once the progress bar reaches full, you’re all set!

Remember to keep “Full chip erase” if you want to set it up as a brand new board.

Configuring the software

Now that you’ve flashed the software, click the green “Connect” button and then head over to the “Configuration” tab. There’s going to be a lot of stuff to do here!

First, make sure that the Mixer is correct. The default will be “Quad X”, and most racequads(even if it’s a H-style) will be Quad X. If you are building something other than a Quad X, then either this guide is far too basic for you anyway, or you should stick to a Quad X.

Below the Mixer, you have the board and sensor alignment. On your board, you’ll see a small arrow – that’s the default direction the board should be facing on your quadcopter – and the board should be flat. However, if you don’t mount it that way, then you can use the alignment to correct for it.

So on my ZMR 180, I’ve mounted the board so that the arrow is pointing to the back of the quad. As a result, I’ve adjusted the Yaw to 180 degrees. If you’ve mounted your board on a tilt for whatever reason, you would adjust the Roll or Pitch – although that’s for more advanced builds.

Under ESC/Motor features, there are a few options.

MOTOR_STOP will not spin up your motors when you arm the quadcopter. You can choose to keep this on or off – but be warned – as soon as you arm the board, the motors(and propellers) will start spinning. Even at that speed, they can cut you pretty badly.

The next option is “Oneshot125” – leave this on.

Leave the “Disarm motors regardless of throttle value” switch on, too, as a safety measure.

Hit save and reboot.

To find out “Minimum throttle”, you’ll have to head over to the “Motors” tab. Plug your battery in(make sure props are off and FPV antenna is connected), and turn the warning switch in the bottom right on.

Then move up the master slider very slowly until the motors just begin to spin properly. Any below that and the motors stop spinning properly. Make a note of the value displayed.

You want to set your minimum throttle to about 20-30 more than the value displayed earlier.

Leave the other numbers as they are.

Next, come back to the “Configuration” screen:

On the same screen, scroll down. Under “Receiver mode” you’ll have to choose what kind of receiver you are using.

PPM receivers send all the signals through just one wire – the FrSky D4R-II is a great PPM(they call it CPPM) receiver and especially if you are building a miniquad, the small receiver + one wire connection saves lots of space and calls for a clean build. If you have a Taranis and a D4R-II(or other PPM receiver), or even a FrSky module and this receiver, choose this option.

SBUS is a step above PPM – FrSky makes SBUS receivers, so if you are using one of those and have connected your receiver to the SBUS port on your Naze32/flight controller, choose that.

If you use a Spektrum/DSM2/DSMX receiver(LemonRX, OrangeRX), then you’ll need to choose RX_Serial. Additionally, you’ll have to go to the “Ports” tab on the left and set the UART2 setting to “Serial RX”.

If you use a regular Turnigy 9x(where you’ll be plugging one servo wire for each channel, or even an entire breakout cable), you’ll need to choose RX_Parallel_PWM.

Next, under “Battery Voltage”, if you are going to be using telemetry on your FrSky Taranis and want to receive battery voltage data on your transmitter, turn the “Battery voltage monitoring” switch on.

I don’t touch the warnings, since I set those up in my radio.

Voltage scale is something you’ll have to play with. I think it defaults at 110, but if you find that your battery is giving a different reading through telemetry and a different reading on your charger/checker, you’ll have to play around with the value(increase/decrease by 1 or 2) to get it to match.

Scroll down further to the end of the “configuration” page. Under other features, you’ll want to enable “Softserial” and “Telemetry” if you want telemetry, otherwise, you can leave it off.

If you have flash memory on your board(the Naze32 full boards do), you can turn on Blackbox to record flight data(you can then export the flight data into image files – this is how some videos have stick overlays!).

Click save and reboot, and wait for the board to reboot.

PID controllers

Next, go to the PID Tuning tab.

Hypothetically, you could leave this tab alone and still be able to fly, but your quadcopter may not be as stable as you like. I am running Betaflight, and the “LuxFloat” PID controller works wonders without having to change the settings too drastically.

I choose Luxfloat and keep default values, then take the quadcopter out for a few flights, see how it performs, and then tweak the values as I feel necessary.

I am no expert on PID tuning, but this video by Alex Greve is by far the best explanation I’ve seen. I highly recommend you watch it.

The values I do adjust are the Roll rate, Pitch rate, and Yaw rate.

Basically, the higher these values are, the faster your stick inputs are going to be. At 0.0, your quadcopter will do lazy rolls and flips – and lose lots of altitude in the process.

To get those really fast flips and rolls, you’ll have to increase your rates.

I keep mine at 0.6 for Roll and Pitch, and 0.3 for Yaw. These are my personal preferences – some people will keep them lower, and some higher.

Don’t increase your rates unless you are a confident flier and have developed good stick control. If you don’t feel like you are in complete control of your multirotor, leave the rates low to practice and get a feel for the controls, then gradually increase them and get used to them.

With really high rates, you only need to move the sticks very slightly to get a strong response from the quadcopter. If you mash the sticks without knowing what you are doing, you will crash, and you will crash hard.

Receiver configuration

Next stop is the “Receiver” tab.

The first thing you want to do is change your channel mapping. To do this, turn on your radio and plug the battery into your quadcopter.

Make sure the props are off when you do this, and that your FPV antenna is connected!

Once the radio connects to the receiver(assuming the receiver is connected to the board), the values will change and start moving very slightly.

At this point, you want to move your sticks on their axes one by one and make sure the correct axis moves on the screen. Move throttle up and down on your radio, and see whether the information you see on the screen corresponds!

Do the same for all your other channels.

If what you move is not the same as what you see on the screen, you’ll need to change the channel mapping.

The default channel mapping in Taranis radios(assuming you didn’t change any settings when you created the model in the radio) is TAER – Throttle Aileron Elevator Rudder – so I’ve changed the value in “Channel map” to TAER1234.

Once the values are ok for sticks, you can flick the switches(if any) and see which AUX channels move. This won’t be a problem with the Taranis since you can assign any switch to any channel.

If you are using a Turnigy 9X with a breakout cable, you’ll have to experiment.

Flight modes

In the “Flight modes” screen, you have the option to set switches on your radio to activate different flight modes. If you have no flight modes activated, then the default is “Rate” mode.

In “Rate” mode, the quadcopter will fly with full manual input. That means it will not level itself out after you let go of the roll/pitch sticks. So if you tip the quadcopter forward and center the stick, the quadcopter will maintain that angle and keep flying that way until you correct it.

Rate mode is also known as “Acro” mode – and this is the best way to fly FPV as it’ll give you full control over the quadcopter – you won’t be fighting the quadcopter as it tries to level itself.

If you are a complete newbie, you may find Rate mode difficult.

In that case, you’ll want to use “Horizon” mode. In Horizon mode, the quadcopter will level itself once you let go of the sticks. This is especially useful when you are flying line of sight and lose orientation. You can tilt the quadcopter in a direction just to see where it goes, and once you let go of the stick, it will become straight again.

Horizon mode does let you do tricks, though – if you push the sticks all the way to their extremes, the quadcopter will flip and roll.

For even more docile flight, choose “Angle” mode. In Angle mode, the quadcopter will not bank/pitch more than a set number of degrees, so no matter how much you push the sticks, the quadcopter will only go so much.

I don’t recommend using this mode.

To set up your switches to the modes, you’ll need your battery connected.

Remember my earlier warning!

You should have noted which switch moves which “Aux” channel – so if you wanted to set “Aux1” to activate horizon mode, choose “Aux1” next to Horizon mode in the software, and flick the switch down(mid or all the way, whichever you like). If the switch is correct, you’ll see the little green dot move. Flick the switch back and forth to see how much the bar moves.

Then move the sliders around the range of the switch you wish to assign to that mode. So if the bar moved all the way to the right when you flicked the switch down, moved to the center when you flicked it to the center position, and all the way left when you flicked it back up to default, you could split up the bar into three.

If you wanted to assign it to the center position, move the sliders so they are around the center of the bar. If you wanted to assign it to all the way down, move the sliders so that they are out of the center position range and cover only the down position range.

This way, you could use one three-way switch to activate three modes – one from the up position, one from center, and one from down.

Note that whatever mode you assign to the “up” position will be default, since the default position of your switch is also “up”.

If you don’t assign any mode to a particular range, then it will default to acro(rate) mode.

I usually have acro mode as default and horizon mode for the middle and bottom position of one switch.

This is my “Oh shit!” switch to use in emergencies. I haven’t had to use it yet!

You can also choose to arm the motors with a switch – though it’s completely optional.

Remember to hit save on every page!

Ports(skip if you don’t want telemetry)

If you want to set up telemetry with a FrSky Taranis and a telemetry receiver, then you’ll need to go up to the “Ports” tab. Provided you turned “Softserial” on in the configuration screen, you’ll see “Softserial1” and “Softserial2” – in the “Telemetry” column of Softserial1, select “FrSky” from the drop down menu and set the rate from “Auto” to “9600”.

Two changes in the CLI(Ignore if no telemetry)

Finally, head over to the CLI. For your Taranis to properly receive battery voltage through telemetry, you’ll have to change one setting, and may have to change another.

The first thing you want to type in is:

set frsky_vfas_precision = 1 save

And the board will save the settings and reset.

If, once you turn on the Taranis and can’t seem to get any telemetry readings(from the Telemetry menu on your Taranis, topic for another post), you’ll have to change one more setting here:

set telemetry_inversion = ON save

Now, from the Taranis telemetry settings menu, if you select the “Discover new sensors” option when the board is armed, you should get all the data.

Phew! That was a lot to write, but this is a pretty thorough configuration of Cleanflight/Betaflight for your Naze32. If you have any questions or comments, please leave a comment below!