Required Software to Setup Betaflight
Congrats! You are almost finished your build! There are just a few remaining configuration steps using the incredibly useful Betaflight software.
First thing’s first, download and install the Betaflight software:
and you’ll more than likely need the BLHeli software too, so might as well download that while you’re here:
Setting Up Betaflight
Once installed, boot up Betaflight and, without any battery connected to your drone, connect your Flight Controller (FC) to your computer (Typically through a built-in USB connector on the FC). Betaflight should automatically recognize the connection and connect to your FC, in which case you will be brought to this screen:
If your firmware has your accelerometer on by default, you should be able to watch this 3D model rotate as you manipulate your drone in real life. But if nothing happens yet don’t worry, you might have to enable your accelerometer later.
The next menu page on the left is the “Ports” page, here you will define where you have your Rx/Tx wires connected to on your FC, and whether or not you are using SBUS and/or SmartPort. If you recall, I eventually figured out that UART1 on my FC is reserved for SBUS pad on my FC, where I have “Serial Rx” Checked on UART1 within Betaflight.
Also, UART3 on my particular FC is reserved for the SmartPort connection, so I have the “SmartPort” option selected on the “Telemetry Output” dropdown.
And then the DJI Air Unit is connected to UART6 with my FC’s provided connector cable, so I have UART6 enabled.
This particular page will be different based on your FC and your wiring, so don’t just copy my settings without first looking up your FC’s documentation and making sure your wiring matches.
After making your changes be sure to “Save and Reboot” or else you will lose all of your settings as you go to the next page!
This next page is the “Configuration” page, and there are a few things I had to change here for my particular quad. First, this is where I had to enable the “Accelerometer” slider to start transmitting the accelerometer data, which enabled me to manipulate that 3D model on the main Setup page. I also had to change the “Board and Sensor Alignment” section, since I have my FC mounted “upside-down”, the accelerometer is also “upside-down” and so I had to account for that in this section by setting the “Roll Degrees” to 180 (flipped over). You could also set the “Pitch Degrees” to 180 instead and it would have the same effect, as long as only one of the values was changed to the 180.
You’ll also want to take note of the motor direction diagram and make sure it matches with your actual motor directions once you power them up and test them. I have mine set to rotate “not reversed” because that is what I’m used to, so when I attach propellers to the motors I already know by heart which direction they need to be facing.
This is the bottom portion of the Configuration page, where I had to select “Serial-based receiver” and “SBUS” in the “Receiver” section because I have my receiver connected through SBUS.
And here is the last section of the configuration page, these are just different beeper trigger settings so go ahead and customize them to your liking. When finished make sure to press “Save and Reboot” before moving on.
Next up is the “PID Tuning” page, this is where you customize how your drone responds to your transmitter inputs. Betaflight has useful tooltips for each value if you hover over the question marks, which I’ll also write out here:
Proportional – Controls the strength of how tightly the machine tracks the sticks (the setpoint). Higher values (gains) provide tighter tracking, but can cause overshoot if too high in proportion to the Derivative (D-Term). Think of the P-term as the spring on a car.
Integral – Controls the strength of how tightly the machine holds the overall position of the setpoint. Similar to Proportional, but for long-term biases on the craft such as an offset center of gravity or persistent external influence (steady wind).
D-Max (Derivative) – Controls the strength of dampening to ANY motion on the craft. For stick moves, the D-term dampens the command. For an outside influence (prop wash or wind gust) the D-term also dampens the influence.
Higher values (gains) provide more dampening and reduce overshoot by P-term and FF (Feedforward) value. However, the D-term is very sensitive to gyro high frequency vibrations. High frequency noise can cause motor heat and burn out motors if the D-gains are too high.
Think of the D-term as the shock absorber on your car, but with the downside of magnifying high frequency noise.
D-Min – Controls the strength of dampening in normal forward flight. With D-Min enabled, the active D-gain changes during flight. In normal forward flight, it is at the D-Min gains. During sharp moves or during prop wash, the active D-gain raises to the D-Max values you have set.
Full D-Max gains are only reached on very sharp stick inputs, but partial gains are reached during prop wash. Adjust the D-Min Gain and Advance to control the gain boost sensitivity and timing.
FeedForward – FF is an additional pushing term (spring) based on the stick input. FF helps the P-term push the craft for commanded stick moves.
The P-term pushes based on the difference between the command setpoint (in deg/sec) and the gyro reading of current rotational rate (also in deg/sec). FF pushes based on the commanded change of the sticks alone.
Higher values (gains) will result in a more sharp machine response to stick input. Values that are too high may result in some overshoot, increased motor heat, and motor saturation (where motors can not keep up with the desired rate of change). Lower or zeroed values will result in a slower and smoother response to stick inputs.
If this doesn’t make sense to you and you’d like to understand a little more before going flying, here’s a video that does a good job in explaining the different terms without being too complicated:
For the rate profile settings it can be useful to connect a battery to your quad (Still with no propellers attached!) in order to power up the receiver, so your transmitter can connect to your FC. Once your FC is receiving transmitter input, move around your throttle/pitch sticks and you can see a live preview of how your rates will determine your drone orientation based on the stick positions.
With your battery still connected and your receiver powered, the Receiver page gives a live preview of the values the FC is reading from your transmitter. These values are based on the positions of your transmitter sticks, switches, and potentiometers.
The Modes page is where you configure what your transmitter inputs do in regards to the flight controller, I have mine set to toggle between the three flight modes seen above. When setting up a new mode toggle you can just hit “Add Range” and then toggle the appropriate switch on your transmitter, and Betaflight will switch that mode over to the AUX channel that was just interacted with.
You can then see what position corresponds to what signal (the 900-1300) by watching the yellow dot on the bottom axis move around as you interact with your transmitter. This is very helpful when it comes to really being sure that your transmitter switches do what you expect them to do when they are in a certain spot.
The OSD (On Screen Display) page is where you customize what information you see overlaid on your goggle’s image feed. There are many different options to customize your OSD to your liking, but I like to keep mine fairly simple with just some battery voltage information and the center crosshairs to be able to 100% know where “forward” is.
And last but not least, the Motors page is where you can slowly rotate your motors one by one and ensure they are each rotating the correct direction. For the motor testing you do need a battery connected to your drone if you don’t already have one connected from your receiver/modes setup. And once you have power, enable the “I understand the risks” slider on the right side of the screen under the servos display and then SLOWLY bump up the values for each motor one at a time. For each motor make sure that it is rotating the same direction as in the little quad diagram at the top left of the page, where the vertical slider motor number matches up with the number on the diagram
If any of your motors are spinning backwards, don’t worry! It’s an easy fix with the BLHeli tool. Note which of your motors you need to reverse the direction of, and continue on to the BLHeli settings to change each individual motor’s direction. The steps to flip the rotation can be found below.
Setting Up BLHeli
After installing the BLHeli software go ahead and start it up and you will first see a screen similar to the following:
With your FC connected to your computer via USB and a battery connected to your drone, select the correct USB port at the bottom of the BLHeli software and hit the “Connect” button.
After a successful connection, you will be prompted with a list of relevant ESC info:
Go ahead and confirm by pressing “OK” and then you’ll see your FC’s “Master” config info. This is where you can have changes apply to all of your ESCs if you set it to do so within BLHeli. You’ll notice that my “Motor Direction” is “Reversed”, this is just because I needed to reverse my Motor#1’s direction, and the info displayed is acting as if my ESC#1 is the master. If you need to change the settings for a specific ESC/Motor, don’t do it here, even if you need to change ESC#1.
To select an individual ESC/motor like I needed to do to reverse my motor#1 direction, right click on the appropriate ESC # down toward the bottom of the window, to the right of the “Disconnect” button. Here’s what it looks like when I select my ESC#1:
Note the ESC selector at the bottom now displaying “Single ESC#1” instead of “Multiple ESC” as it did before, this is how you know you are changing the settings for just the ESC you are interested in.
And here’s an example of the info for my ESC#2, which I did not need to reverse the direction of:
After switching the direction for each of your motors that needs it, make sure to hit “Write Setup” to actually save the new configuration to your drone and have the changes reflected in the real world.
Disconnect the BLHeli software and boot Betaflight back up to test your new motor directions as you did at first. If all of your motors are spinning in the right direction then congratulations! You’re all set to finally attach propellers to each of your motors and go outside to test a real world flight.