On this tutorial, I’ll share how I exploit Blackbox logs to tune filters and PID on a Betaflight FPV Drone. I will likely be utilizing PIDToolBox as the first instrument for filter and PID tuning, with Blackbox Explorer as a secondary instrument for Feedforward and normal troubleshooting.
Disclaimer: This information is supposed for informational functions solely. The creator holds no accountability for damages ensuing from actions taken by the readers.
Blackbox will not be a should for tuning as defined on this information, however it gives full perception into what’s occurring with the drone and lets you unleash its full potential. Issues like noise filtering and tiny overshoots are seen solely in Blackbox. When you’re a perfectionist or simply somebody who likes to tinker, that is the tutorial for you.
If you’re new to Blackbox, be certain to take a look at the Blackbox for inexperienced persons tutorial..
I spent over 200 hours making this 8000-word tutorial! When you discover my content material helpful, please contemplate supporting my work.
Getting Began
Tuning objectives
Utilizing Blackbox to tune our FPV drone, we purpose to attain two fundamental objectives:
- Extra Efficient Use of Filters: Use minimal filtering to reduce delay however sufficient to maintain noise at an appropriate stage.
- Optimized PID Good points and Associated Settings: Make sure the drone flies exactly and responsively.
Primary configurations
0. {Hardware} Guidelines
- Flight Controller (FC) Stack: Select an FC stack with rubber grommets (gummies) for sturdiness and noise efficiency.
- Steel Screws: Use metallic screws for the FC stack; keep away from nylon/plastic screws/standoffs as they’re liable to breakage and vibrations. If spacers are wanted, use comfortable silicone ones. Lighter titanium screws can save a couple of grams.
- Locking Stack Screws: Safe the stack screws firmly with a metallic nut earlier than mounting the 4in1 ESC. In case your body has pressed insert nuts, extra nuts will not be wanted. Tighten screws by hand first, then give a remaining squeeze with a wrench/screwdriver.
Use 4 plastic nuts to safe the FC stack. Tighten the nuts by hand to keep away from excessively crushing the gummies, permitting the comfortable mount to work successfully.
1. Blackbox Recording Settings
Choose the next settings within the Blackbox Configuration:
- Logging Machine: Onboard Flash or SD Card
- Logging Fee: 2KHz (or 1.6KHz for BMI270 Gyro)
- Debug Mode: GYRO_SCALED (data unfiltered gyro sign)
- Knowledge Included: To save lots of area for longer recordings, deselect pointless knowledge like Altitude, GPS, and Magnetometer, or go away at default.
2. Disable the ADC filter in your OpenTX/EdgeTX radio (System -> {Hardware}) to scale back latency.
3. ESC settings:
I’ve a submit explaining the greatest BLHeli32 settings. Right here’s the abstract (for five″ drones):
For BLHeli_32 ESC:
- Rampup Energy: 30%
- Motor Timing: 24
- PWM Frequency: Set LOW and HIGH to fastened 24KHz or 48KHz. 48KHz is mostly safer for gyro noise, making your quad smoother and simpler to tune. 24KHz presents higher braking energy, which is helpful for prop wash dealing with and responsiveness, however with the next threat of vibration. If you’re on the fence, simply go along with 48KHz.
For BLHeli_S ESC, flash Bluejay to allow bi-directional DShot, required for RPM filter and Dynamic Idle. I’ve a information on the way to flash it right here: https://oscarliang.com/bluejay-blheli-s/
3. Flash the most recent model of Betaflight firmware to your flight controller and go away PID/filter settings at default. Allow Knowledgeable Mode in Betaflight Configurator to entry all sliders and choices on the PID Tuning web page.
Within the Configuration tab, set your PID Loop Frequency, and within the Motor tab, set your ESC protocol:
- DShot300 for 4KHz or 3.2KHz Loop Frequency
- DShot600 for 8KHz Loop Frequency
4. Within the Motors tab, allow Bi-directional DShot.
Most trendy ESCs assist Bi-directional DShot. I’ve a tutorial on the way to allow RPM filter. For BLHeli_32 ESC it really works out of the field, however when you’ve got BLHeli_S ESC, it’s worthwhile to flash Bluejay firmware (tutorial) first.
Examine if it’s working correctly by working the motors within the Motors tab (with out propellers) and guaranteeing the error price (E) stays at 0%. If not, strive a slower DShot protocol like DShot300 or DShot150. If errors persist, you would possibly simply have to surrender on Bi-directional DShot and RPM filter.
As soon as enabled, go to PID tuning tab, Filter Settings, the place you possibly can allow the Gyro RPM filter, probably the greatest filters in Betaflight.
5. Load the suitable RC_Link preset.
Completely different RC hyperlinks require particular RC smoothing and feedforward configurations. Mistaken config could cause stuttering and vibrations. My favourite RC hyperlink is ExpressLRS, try what radio gear I exploit right here.
Loading the acceptable RC_Link preset in Betaflight will apply the mandatory configurations mechanically. Keep in mind to decide on choices based mostly in your flying fashion, for most individuals it could be Freestyle.
For Crossfire, lock the packet price to both 50Hz (longer vary, larger latency) or 150Hz (decrease latency, much less vary) utilizing the TBS Agent Lite LUA script.
6. Decrease TPA
Within the PID tuning tab, set the TPA breakpoint from 1350 to 1750 to keep away from TPA masking oscillation points at low/mid throttle throughout tuning. Fantastic-tune TPA on the finish if oscillation points happen at excessive throttle, however typically I’d reduce the usage of TPA every time attainable.
The way to use PIDToolBox and Blackbox Explorer?
I will likely be utilizing each PIDToolBox (PTB) and Blackbox Explorer (BE) in my PID and filter tuning.
PIDToolBox will likely be our fundamental instrument, it’s by far essentially the most highly effective Blackbox instrument accessible. It lets you examine a number of logs facet by facet, making it simpler to see the consequences of your filter adjustments. The Step Response instrument is particularly helpful for tuning PID. The spectral analyzer in PTB makes use of decibels on the Y-axis, offering extra correct and goal comparisons. PTB additionally estimates filter delays, which could be very useful.
Nevertheless, PTB may be slower and fewer intuitive to make use of in comparison with Blackbox Explorer. For fast checks or troubleshooting a single log, BE is quicker and simpler. However for noise and filter tuning, PTB is the best way to go.
Filters Tuning
You could find all of the filters in Betaflight within the PID Tuning tab. Don’t be intimidated by all of the settings, on this tutorial, we’ll principally solely concentrate on the inexperienced sections (RPM filter and Dynamic Notch) and regulate the orange sections (Gyro and D Time period Lowpass Filters) utilizing the sliders. No want to the touch the pink sections.
Additional studying: Be taught in regards to the various kinds of filter in Betaflight on this tutorial.
Good {hardware} can scale back the necessity for in depth filtering. Guarantee your body is well-designed with out resonance points, use well-balanced propellers, and high-quality motors with easy bearings.
Performing Flight for Noise Evaluation
- Take Off: Fly ahead with minimal throttle and stick inputs.
- Throttle Sweeps: Slowly ramp up throttle to 100% over 5-10 seconds. This take a look at reveals vibrations throughout the throttle vary and body resonances.
- Repeat: Carry out 2-3 throttle sweeps, then land and disarm.
That is what a typical throttle sweep log would appear to be (see the underside bar for throttle adjustments).
Gyro Noise Frequency Defined
Open the throttle sweeps log in Blackbox Explorer and click on on “Gyro_Scaled” on the correct hand pane, that is the unfiltered gyro sign. Take away the takeoff and touchdown components of the log by urgent “i” and “o”.
Right here’s a breakdown of the uncooked gyro sign frequency graph from a typical 5″ FPV Drone:
- Below 20Hz: Drone flight actions.
- 20Hz – 100Hz: Propwash and oscillations from suboptimal PID, problematic ESC config, unhealthy RC hyperlink settings, and many others.
- 100Hz – 250Hz: Body resonance or unfastened components.
- Above 250Hz: Noise from motors and propellers, and harmonics.
Every little thing beneath 20Hz is “good” drone movement reacting to the sticks.
Between 20Hz and 100Hz is the place undesired vibrations, similar to oscillations and propwash, happen. As a normal rule of thumb, you need to see little exercise on this frequency vary. Having some is regular, however an excessive amount of means you will have an oscillation challenge that must be addressed. Usually, we attempt to keep away from filtering beneath 100Hz as a result of these are actual motions of the drone that we both need to work with or in opposition to. Filtering on this low-frequency vary can really make issues worse as a result of it introduces an amazing quantity of latency. Analyzing the spectra beneath 100Hz can provide you perception into vibration or mid-throttle oscillation points and the way nicely the copter handles propwash.
We don’t care about something above 1000Hz as these have little impact on our drone. What we need to concentrate on filtering is the noise between 100Hz and 1000Hz.
Delay Attributable to Filtering
Maybe not intuitive, however over-filtering can really trigger oscillation to point out up as noise within the sub-100Hz spectra. That’s as a result of filtering creates delay. When the quad tries to right the error, the response could be too late because of the delay, which may be counterproductive. It could make the error worse and create a suggestions loop, inflicting the drone to oscillate.
That’s why, if we use much less filtering, noise points beneath 100Hz can typically really get higher as a result of latency is decreased and the quad can react quicker to right PID errors. Utilizing much less filtering additionally lets you push PID features larger, which makes your quad monitor setpoint higher and helps fight propwash.
You could find out how a lot delay is added to the Gyro sign on account of filtering by plotting Gyro and Gyro_Scaled and measuring the hole between them.
In PTB, it mechanically estimates the delay attributable to gyro filtering and D-term filtering (see the highest proper nook of the primary graph within the second column).
Filter Technique
My normal filter technique is to eradicate motor noise bands utilizing the RPM filter, then crush out body resonances with dynamic notch filters, and at last, scale back the ambient noise flooring with Gyro and D-term lowpass filters. I will likely be tuning filters on this order:
RPM Filter > Dynamic Notch Filter > Gyro Lowpass > D-term Lowpass
We need to use as little filtering as attainable to reduce latency, however on the similar time, we want sufficient filtering to keep away from burning our motors when flying dwelling with a bent prop. You’ll be able to actually play it secure and apply extra filtering than wanted, however over-filtering makes the drone really feel disconnected and gradual to react because of the elevated delay. It could additionally worsen propwash. So, we have to attempt for a stability.
Other than checking Blackbox logs, motor temperature is one other helpful indicator in filter tuning. When motors get too scorching, it often signifies that the filtering is just too aggressive.
Professional Tip: Scorching Motors – How Scorching is Too Scorching?
As a normal rule of thumb, if you happen to pinch the motor bell and may’t hold your fingers on it for various seconds, it’s too scorching and you’re most likely pushing your settings too aggressively.
How Clear is Your Construct?
Earlier than we start tuning, it’s vital to examine when you’ve got a clear construct. Begin by performing throttle sweeps as beforehand described.
Load the log in PIDToolBox, click on on the Spectral Analyzer, choose “Gyro prefilt” (the uncooked, unfiltered gyro sign; “Gyro” is the filtered sign), and hit Run.
The default filter settings in Betaflight are pretty conservative, and most builds ought to have the ability to scale back filtering from there. In case your quad is already noisy with default filter settings, as a substitute of accelerating filtering, it’s best to search for attainable mechanical or electrical points. Guarantee you will have a capacitor on the ESC enter energy, all screws are tightened, and also you’re utilizing contemporary new props, and many others.
On a clear 5″ quad, there must be little exercise between ~50Hz (the quad’s actions) and ~200Hz (motor vibration). When you have quite a lot of noise on this area, it may very well be electrical noise (maybe the gyro enter energy is just too noisy, or it requires an additional capacitor on the ESC enter energy) or mechanical (e.g., a wire hitting the gyro). Reaching optimum filtering on this situation could be more difficult.
As advised by the creator of PIDToolBox, it’s ideally suited to have the general noise flooring beneath -30dB above 50Hz. For D-term, it’s ideally suited to have the general noise flooring beneath -10dB. Inspecting the noise ranges in these areas can provide you indication of how easy your quad flies. The noise stage is influenced by the construct high quality of the drone, the standard of the {hardware}, and typically you would possibly simply have a loud gyro.
In case your quad is noisier than this (e.g., there’s a peak within the center above 0dB), then you will have extra filtering. It’s not the top of the world; it simply means the latency will likely be larger, and also you gained’t have the ability to push PID features as excessive.
Tuning RPM filter
Motor noise is the first supply of noise for FPV drones, and the RPM filter is among the simplest filters in Betaflight for tackling motor noise. On a clear construct, the RPM filter and Dynamic Notch filters will do many of the work, permitting us to disable many different filters to reduce latency.
Let’s have a look at some examples of motor noise:
- Load the “Throttle Sweeps” log in PTB, click on Spectral Analyzer and click on “Freq x Throttle“.
- Below “Presets” choose “Gyro Prefilt, Gyro, Dterm Prefilt, Dterm” and hit Run. That is what I name “warmth maps”.
Right here’s a breakdown of what we’re taking a look at:
- Near 0Hz: The very shiny horizontal line on the backside (1) represents the drone’s movement reacting to the sticks.
- Round 200Hz: This horizontal line (2) signifies body resonance. Its frequency doesn’t change with throttle place however is strongest the place it intersects with the motor band.
- Elementary Motor Noise Band: This diagonal line (3) is often the brightest. Motor noise sometimes will increase in frequency with throttle stage.
- Harmonics: These are multiples of the basic motor noise band. In our instance, harmonics (typically dimmer and more durable to identify) present up as strains (4) and (5). Strive adjusting the size in the event that they aren’t seen. Word that 2-blade propellers have a tendency to point out extra and stronger harmonics than 3-blade props.
We are going to use RPM filter to handle these motor noise bands.
The objective is to optimize the variety of RPM harmonics used and set the best attainable “Min Frequency” based mostly on the beginning frequency of the motor band. Fewer RPM harmonics and the next min frequency end in much less filtering and decrease latency.
Use the Knowledge Cursor Instrument, click on on the place the motor band begins to search out the precise frequency. Verify this within the roll/pitch/yaw graphs and take the bottom frequency.
Right here’s an instance from my new Supply One V5 construct:
- On the left, is the default RPM Filter, 3 harmonics with a min frequency of 100Hz.
- On the correct, I modified it to 2 Harmonics with min frequency of 160Hz
By decreasing one harmonics and lift the cutoff frequency, you possibly can maybe see extra unfiltered noise from the third motor harmonics.
Though it’s fairly weak, it might probably nonetheless get amplified when it will get into D time period. Let’s examine the Dterm warmth map beneath on the correct, as you possibly can see, a tiny little bit of gyro noise has grow to be fairly unhealthy Dterm noise.
On this instance, it’s most likely higher to have 3 harmonics in RPM filter.
The opposite factor you may need seen is a few noise round 116Hz left unfiltered as a result of we raised the min freq to 160Hz. To handle that, we’ve to decrease Min Freq, i.e. round 20Hz beneath the noise frequency could be ideally suited.
Right here’s a comparability of gyro sign after filtering utilizing 3 totally different settings:
- left: 2 harmonics 160Hz min freq
- mid: 3 harmonics 130Hz min freq
- proper: 3 harmonics 100Hz min freq
To crush out the motor bands, it appears we are able to’t actually scale back RPM filter. On this instance, the default settings (3 harmonics and 100Hz min frequency) labored greatest.
RPM Crossfading
This superior function fades within the RPM filter power over a spread (type of like TPA), the default is nice for many 5″ builds however it may be optimized particularly for bigger or smaller builds, because the motor noise would possibly begin larger or decrease in frequency, and also you would possibly want it to fade in additional shortly or slowly relies on the noise. This function is barely accessible in CLI, for instance:
set rpm_filter_min_hz = 100 set rpm_filter_fade_range_hz = 50
This implies the RPM filter begins at 100Hz at minimal power and reaches full power at 150Hz.
Q Worth
Growing the Q worth of a notch filter makes it extra centered on the focused frequency, decreasing latency. Alter this within the CLI:
set rpm_filter_q = 500
Default values often work nicely, however you possibly can fine-tune by rising the Q worth till motor noise turns into seen within the filtered gyro diagram, then again off. Don’t exceed 1000.
RPM Filtering Dimming
This enables particular person management of every RPM filter to focus on harmonics. For instance, when utilizing 3-blade propellers, the second harmonics is often not very robust, however the third harmonics is. On this case you should utilize extra filtering power on the third harmonics and fewer on the 2nd:
set rpm_filter_weights = 100, 0, 80
And when utilizing 2-blade propellers, the place 2nd harmonics is stronger than the third harmonics, you are able to do one thing like this:
set rpm_filter_weights = 100, 80, 0
You’ll be able to additional lower RPM filter weights so long as motor noise isn’t seen within the filtered gyro diagram.
Tuning Dynamic Notch Filter
The dynamic notch filter suppresses sign peaks within the gyro sign, that are principally vibrations from the body or different {hardware} elements, similar to body resonance, antennas, GoPro mounts, and bent propellers.
When the RPM filter is enabled, Betaflight will mechanically scale back the quantity of Dynamic Notch filtering through the use of fewer notches and the next Q worth because the RPM filter will do many of the heavy lifting. You’ll be able to additional tune the Dynamic Notch filter based mostly in your setup.
Determine Body Resonances: Take a look at the warmth map and establish what number of body resonances there are to find out the variety of notches wanted. As much as 5 notches can be utilized, however often, 1 or 2 are ample until your drone is poorly constructed or in a beat-up situation. With the RPM filter enabled, 1 notch is often sufficient to deal with body resonance.
Decide Q Worth: The Q worth determines the width of the filter. A better Q worth means a narrower filter, which leads to much less filtering and decrease latency.
- Default Q: Begin with the default Q of 500.
- Alter Q: If the default is working nicely, strive rising it to 600 and even 700. Keep away from exceeding 1000. When you nonetheless see body resonance noise after filtering, decrease the Q worth.
- Examine D-term Heatmap: Analyze the D-term heatmap to see how adjustments within the Q worth have an effect on D-term noise.
Set Min/Max Frequency: These are the cutoff frequencies, defining the efficient vary of the Dynamic Notch filter. Add 20-30Hz to every facet of the resonance for the vary.
Keep away from setting the Min Frequency too excessive for security causes, as bent props can create large resonance. In case of a crash, a broader frequency vary might help catch new resonances and forestall motor overheating or injury. We don’t know precisely the place that resonance goes to be, however having a wider frequency vary has the next probability of catching it. If the Dynamic Notch fails to catch these newly pop up resonances on account of Min Frequency is about too excessive, your motors can get scorching and even burn in these conditions.
With out RPM Filter: In case your quad can’t use RPM Filter, for instance on a tiny whoop, you possibly can attempt to allow Dynamic Notch Filter with 5 harmonics, Q issue 350 and Min Frequency at 100Hz as a place to begin, then tune it by working your manner up.
In an instance setup, there seems to be one body resonance round 210Hz.
I attempted rising Q to 700 and setting the min/max frequency to 160-230Hz, however Q was clearly too excessive. There’s extra unfiltered noise, and it will get into Dterm and get amplified.
Lastly, after I set Q to 450, the noise is sufficiently managed. Within the beneath graphs, on the left is Q=700, the correct is Q=450. You’ll be able to examine Dterm heatmap once more to substantiate that is working nicely.
Tuning Gyro Lowpass Filter
Typically, you can begin by turning off the Gyro Lowpass 1 filter as it’s typically pointless. Take a look at fly aggressively for 30 seconds and examine the motor temperature to make sure they aren’t scorching earlier than continuing.
Use the “Gyro Filter Multiplier” slider to scale back Gyro Lowpass 2 a few notches at a time. Transferring the slider to the correct will increase the frequency, which reduces filtering, leading to much less delay, higher prop wash dealing with, and the potential for larger PID features.
Right here’s a comparability of the gyro frequency spectrum at totally different Gyro Lowpass filter slider values: 1.0 (brown), 1.5 (pink), and a couple of.0 (orange).
The three strains nearly overlap, suggesting that the Gyro Lowpass filter isn’t considerably affecting the sign and may be decreased. Apparently, the noise within the sub-100Hz spectrum barely improves with much less filtering, which aligns with our earlier discussions.
Vital Concerns:
- By no means disable the Gyro Lowpass 2 filter for 2K/4K PID loop frequencies on account of anti-aliasing causes.
- Minimal Frequency:
- For 2K loop time, go away Gyro Lowpass 2 at a minimal of 500Hz.
- For 4K, you possibly can set Gyro Lowpass 2 as much as 1000Hz.
- For 8K, you possibly can disable Gyro Lowpass 2 fully if noise isn’t a difficulty.
Tuning D Time period Lowpass
D time period is way noisier than Gyro on account of its delicate nature and noise will get amplified as frequency will increase. Subsequently, be additional cautious and conservative when coping with D Time period filtering.
Strive transferring the “D Time period Filter Multiplier” slider to the correct a notch at a time and see how the drone responds in a 30-second take a look at flight (do some acro strikes), additionally examine motor temperature after touchdown. In the event that they get scorching it’s best to return a notch or two.
Keep away from being too aggressive with decreasing D Time period filtering. Depart some headroom for attainable bent props throughout flight. Too little D Time period filtering mixed with a broken propeller can result in scorching or burned motors.
Right here’s a comparability of D-term filtering slider positions: 1.0 (brown), 1.3 (pink), and 1.6 (orange). As seen within the heatmap, much less filtering ends in extra noise for D-term, in contrast to Gyro lowpass.
From left to proper, the heatmap reveals unfiltered D time period, D-term lowpass filter at 1.0, 1.3, and 1.6.
When you hear the motors getting tough (thrilling oscillation) as you scale back D-term filtering, it’s because of the rising noise beneath 100Hz. You’ll be able to verify this by checking the <100Hz graphs. On this instance, staying beneath 1.3, perhaps 1.2 and even simply 1.1, could be safer.
After tuning PID features, revisit D Time period filtering to see if it may be additional optimized.
If the D Time period traces are very noisy, one or two clicks extra filtering on the slider could assist. If the D time period hint could be very clear, you possibly can maybe scale back filtering a bit extra (if motors will not be scorching). See beneath graphs, the left has a loud D time period hint, the correct is way cleaner.
Vital: NEVER disable D-Time period lowpass filters fully, you’ll burn your motors.
Gyro/D Time period Notch Filters
There’s no must allow Gyro Notch Filter and D Time period Notch Filter, these are static notch filters which have grow to be legacy since RPM filter and dynamic notch filters are doing many of the work.
Nevertheless, if there’s a robust resonance at a particular frequency (similar to body resonance), a static notch filter may be useful. The dynamic notch filter often covers it, so a static notch filter is usually pointless. You’ll be able to strive including a static notch for identified body resonance and scale back the dynamic notch rely by one to see which technique works higher to your setup.
Yaw Lowpass Filter
The default yaw lowpass filter at 100Hz cutoff has minimal latency penalty and may be left untouched. This filter is particularly helpful for whoops, because it helps to scale back yaw spin in collisions.
PID Tuning
To tune PID utilizing Blackbox, I comply with the “Basement Tuning” technique utilizing PIDToolBox. This technique is beginner-friendly and may be completed in a small area like a basement or bed room, therefore the title. It entails performing a sequence of quick flights with barely totally different PID values, then evaluating the logs to search out the optimum features.
Throughout the flights, transfer the quad round on the pitch and roll axes. You’ll be able to study extra in regards to the basement technique on this video by PIDToolbox.
Though the strategy known as “basement tuning,” I’m not snug doing this indoors. I’ve had a few “fly to the moon” incidents prior to now, almost drilling a gap within the ceiling. Subsequently, I all the time carry out these exams in a backyard or native park for security.
Fee Profile and Angle Mode
Performing basement tuning flights requires good line-of-sight flying abilities to maintain the drone managed in a confined area. Listed below are some tricks to make it simpler. Do that price profile:
- Heart Sensitivity 250
- Max Fee 400
- Expo 0.00
This profile has a low max price, making it much less more likely to lose management if you happen to transfer the sticks an excessive amount of. The excessive and linear heart stick sensitivity ensures the stick inputs are important sufficient for correct logging.
Performing the take a look at in Angle mode could make it even simpler than in Fee mode. In response to the creator of PIDToolBox, Angle mode works simply in addition to Fee mode, however it’s worthwhile to do the next first:
- Go to the Setup tab and calibrate the accelerometer.
- Within the PID Profile Settings, set the Angle mode power to 100.
- Click on Save to make sure the adjustments are utilized.
Discovering P/D Stability
To start with, decrease these features so that they don’t intervene with our tuning:
- Set the “Stick Response” slider (Feed Ahead) to 0
- Set the “Dynamic Damping” (D Max) slider to 0
- Set the “Drift-Wobble” (I features) slider to 0.2, it’s low sufficient that it shouldn’t introduce overshoot but have just a bit I phrases to assist stabilize the quad higher, makes it simpler to regulate
Alter the “Damping” (D features) slider, begin with a minimal worth you need to take a look at. For a typical 5-inch FPV drone, 0.6 is an effective start line.
Here’s what you need to carry out within the flight:
- Arm and hover
- Consistently transferring the roll and pitch stick for 20-30 seconds, the extra actions the extra correct it will likely be
- Do as huge strikes as you possibly can with out hitting the partitions (ideally full stick deflections)
- You’ll be able to transfer each pitch and roll collectively so long as you possibly can hold it beneath management
- Strive to not cease/hover for too lengthy throughout flight, and be as steady as you possibly can
Elevating the Damping slider by 0.2 every time and repeat the flight: e.g, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6. Once you increase D acquire too excessive, your motors will sound tough, due to this fact you possibly can’t all the time take a look at the final one or two values, which is ok.
The quickest solution to change slider worth is by going into Betaflight OSD menu, Profile, Simplified Tuning. However if you’re unable to do that then simply plug within the USB cable and use the Betaflight Configurator.
It’s a good suggestion to vary battery each 2-3 flights to make sure the outcome isn’t affected by voltage. Energy cycle the quad by unplugging the battery earlier than each flight so it creates a brand new log. Or just select “Save and Reboot” within the OSD menu so that you don’t must unplug.
16MB reminiscence must be sufficient for six 30-second flights if you happen to time it nicely.
After you will have accomplished all of the flights, obtain them to your pc. To prepare the logs higher, I’ve a folder construction created for this course of, obtain right here: https://drive.google.com/file/d/1tx1AV2lOMgknAwIB3VFhqP1i6VpDLVjr/view?usp=share_link
And I rename the logs to one thing like “01 d06“, “02 d08” and many others (01 means first take a look at flight, d06 means damping slider worth 0.6), and put them within the “02 PD Stability” folder.
Load all of the logs in PTB, undergo each and take away the take-off and touchdown components for every log (to do that, allow “Trim” on the correct hand panel).
Click on the “Step Resp Instrument“, choose all of the information and click on Run. when you’ve got offset within the curves (gyro curve transferring away from setpoint in direction of the top), allow Y Correction.
It’s fairly straight-forward, merely decide the perfect wanting line, that’s your optimum Damping slider worth. The best response ought to look one thing just like the inexperienced line within the following graph, little to no overshoot. Having a tiny little bit of overshoot is suitable.
In case your traces don’t look easy however have plenty of ups and downs, that’s referred to as oscillation, and it’s an indicator that the sign is just too noisy or your actions aren’t large enough.
The graphs on the correct are additionally extraordinarily useful:
- Peak is highest amplitude of the overshoot (ideally the nearer to 1 the higher)
- Latency is the time it takes to succeed in setpoint (ideally the decrease the higher)
When D acquire is low, you’ll get overshoot and even oscillation. As D acquire will increase, there will likely be much less overshoot and Peak will lower, however Latency will go up in consequence. When D is just too excessive (undershoot), the preliminary peak won’t even attain the setpoint and this isn’t ideally suited. Discover a response that has minimal overshoot and but has comparatively low Latency.
You’ll be able to zoom in and see it extra clearly (or choose fewer logs, and hit Run once more). We solely want to take a look at Roll and Pitch axis.
In our instance, it’s fairly clear the perfect worth is orange (3) for each pitch and roll, so that will be 1.0.
It’s fairly frequent to have a unique PD stability on pitch and roll because of the totally different weight distribution. If that’s the case for you, take the Damping slider to the place you need for pitch, write down the pitch D acquire, then take the Damping slider to the place you need for roll, and regulate the Pitch Damping slider to match the pitch D acquire you simply wrote down.
Generally it’s higher to be somewhat extra conservative and keep away from having D acquire too excessive. If you’re on the fence, all the time go along with much less D acquire (the next P/D ratio), so you possibly can increase your total PID features larger on the finish since D is often the limiting issue.
What I’ve discovered is that the step response instrument tends to be fairly delicate and the P/D stability could be decrease than what I’d personally want. So I usually bump up P/D stability by 5-10% after discovering a perfect worth. That’s simply my private choice, you can provide {that a} strive if you need.
Drone measurement additionally impacts PD ratio, bigger drones are likely to have larger P:D ratio. For instance a 5″ would possibly use 0.8-1.1 Damping slider whereas a tiny whoop would possibly use 1.4-1.6.
Discovering Max D Achieve
Do the identical take a look at for Grasp Multiplier slider, transfer the slider in 0.2 steps. For a 5″ drone, begin with values similar to 0.8, 1.0, 1.2, 1.4, 1.6, and 1.8.
Be cautious and don’t stand too near the quad throughout this take a look at. When D acquire is just too excessive, the quad could shoot up unexpectedly. Pay shut consideration to motor noise, and cease instantly if you happen to hear thrilling oscillation.
You would possibly discover that the shapes of the step response don’t change a lot between totally different values and that the Peak values stay roughly the identical. It’s because the response curve form is principally decided by the P/D ratio. Growing the features gained’t considerably have an effect on the response form, however bumping up P/D features can scale back latency.
You’ve gotten reached the perfect Grasp Multiplier acquire when one of many following happens:
- Thrilling Oscillation: When you hear thrilling oscillation, you possibly can’t enhance D acquire any additional.
- Latency Plateau: If latency doesn’t lower anymore (or little or no), it means you will have reached the higher certain tuning window. The motors are working at their hardest, and you aren’t gaining any extra efficiency from them.
The utmost acquire achievable is influenced by the noise stage of your construct and the quantity of filtering used. Much less filtering permits for larger PID features. Generally, it’s safer to scale back the Grasp Multiplier slider by a notch or two as soon as you discover the utmost worth. Keep away from pushing D acquire to the restrict to account for potential points like bent props.
Drones utilizing larger cell rely batteries (larger voltage) are likely to require decrease D features. For instance, on a 6S quad, D features could be within the 30s, whereas on a 4S they’re often within the 40s.
In my instance, 1.6 appears to be the worth that provides the least quantity of latency, with little enchancment when rising to 1.8.
When you can’t hear thrilling oscillations, use the Spectral Analyzer to plot D-term. As features enhance, motors could produce an exciting sound peaking round 40-80Hz, particularly when throttling up. If noise on this frequency vary will increase with larger features, it signifies the onset of PID-related oscillations.
On this instance, you possibly can clearly see peaks round 60Hz for 1.4 (olive), 1.6 (inexperienced), and 1.8 (cyan). Though 1.6 reveals latency enchancment, I’d not threat it and would seemingly select 1.4 and even 1.3 to be secure.
There’s ongoing debate on whether or not it’s higher to have extra D-term filtering and better D acquire, or much less D-term filtering and decrease D acquire. Nevertheless, by no means run with much less D-term filtering and excessive D acquire as this will result in disastrous outcomes if you happen to hit an impediment or bend a prop. It’s no joke, talking from expertise right here:
After discovering the optimum D acquire, examine setpoint monitoring by plotting Gyro and Setpoint. The strains must be roughly parallel, indicating the quad is accelerating and decelerating on the similar price because the setpoint. Nevertheless, there would possibly nonetheless be a major hole between them, indicating latency. Within the subsequent step, we’ll scale back this hole utilizing Feedforward.
Tuning Feed Ahead
Feed Ahead (FF) accelerates your quad while you transfer the sticks, making your quad extra responsive and nearer to the setpoint. Not like P time period, which reacts solely when there’s a PID error, Feed Ahead measures the speed of stick deflection. It will get the motors transferring as quickly because the stick strikes, making it a lot quicker than P time period.
Feed Ahead helps the quad reply promptly to stay inputs, offering a extra quick and managed flying expertise. It’s helpful for all flying kinds, together with cinematic flying, because it reduces latency between stick enter and quad response.
When tuning Feed Ahead I want to do some snap rolls and flips and examine Gyro/Setpoint traces. Use your common price profile, or a default price profile in Betaflight (simply swap to an unused price profile) to get an honest max price at full stick. You’ll be able to examine my charges right here: https://oscarliang.com/charges/#My-Charges
As an alternative of utilizing the step response instrument in PTB, use BE to examine the setpoint/gyro traces. The gyro ought to monitor the setpoint extra carefully with much less delay. Ideally, the gyro must be proper on high of the setpoint.
If Feed Ahead overshoots (gyro strikes earlier than the setpoint), the FF is just too excessive. Within the following demonstration, 0.5 is manner too low, 1.0 remains to be not excessive sufficient, however 1.5 is a tiny bit an excessive amount of and overshoots. I believe Feedforward at 1.3-1.4 ought to do it on this instance.
If the FF acquire is just too excessive, it might probably trigger the P time period to react in the wrong way, attempting to counteract it.
Doesn’t matter what your flying fashion is, feedforward may be helpful and doesn’t apply solely to sure forms of flying. Even cinematic flying can profit from quantity of feedforward, if you’re transferring your stick easily and slowly, then feedforward gained’t kick in anyway. Once you want snappy response FF will scale back the latency between stick enter and quad response. If you’d like easy flying, simply use expo, extra RC smoothing or decrease your price.
There’s an optionally available setting, Feedforward enhance (FF Enhance). You need to enhance it if gyro lagging behind setpoint at the beginning of a transfer, however catching up in a while. However it’s best to scale back it if gyro will get forward of the setpoint at the beginning of a transfer, however falls behind later.
Tuning I Achieve
The best I acquire is essentially based mostly on really feel. You don’t want quite a lot of I acquire when you will have optimum P and D features; you simply want sufficient to maintain the drone from drifting and wandering. If you’re cruising ahead with minimal stick inputs, the drone ought to maintain its place for some time. If there’s any drifting, then you definately want the next I acquire.
The I time period in Betaflight has a REALLY WIDE tuning window, particularly for highly effective 5″ quads. Sometimes, a spread of 0.5 to 1.5 on the I time period slider works positive for five″ quads. This large window permits us to tune all the pieces else first and regulate the I time period final. With a excessive I acquire, your quad will really feel extra exact, but when the I acquire is just too excessive, you might expertise gradual oscillations, which you need to keep away from.
I discovered the step response instrument in PTB will not be efficient for locating the I time period, because the step response for pitch and roll stays an identical whatever the I acquire slider worth (e.g., 0.4 to 2.0). Nevertheless, you should utilize it for tuning Yaw I acquire, which I discover often lands round 1 on the slider for 5-inch quads.
You’ll be able to tune the I acquire by wanting by the goggles and listening to the motors. When you purpose to push the I acquire as excessive as attainable, strive transferring the I acquire slider up till you discover gradual bouncebacks and oscillations throughout quick strikes, then scale back it a notch or two. Nevertheless, it’s actually laborious to get our quads to point out bouncebacks, because of options like “I-term loosen up” in Betaflight. These days, you should utilize extraordinarily excessive I acquire with out a lot unfavourable affect (similar to bouncebacks).
For five″ quads, I often go away the I acquire slider at 1.
With I-term loosen up, you possibly can regulate the cutoff based mostly on the drone’s responsiveness. For freestyle drones, you possibly can often go away it on the default setting. For racing drones, enhance it to 30. For heavier drones like cinelifters and seven″ long-range drones carrying a GoPro, set the cutoff to 10.
Dynamic Damping
Dynamic Damping is a function that enhances D acquire to the utmost throughout sharp strikes however doesn’t enhance it throughout regular flight. This helps in decreasing motor warmth.
That is how I usually use Dynamic Damping:
- Word down your present D Max worth. This worth must be the identical as Spinoff as a result of the Dynamic Damping slider is about to 0 in the meanwhile.
- Start by rising the Dynamic Damping slider to 1.
- Then scale back the Damping slider till the D Max worth stays the identical as earlier than, this may decrease the baseline D acquire used throughout regular flights to maintain your motors cool.
Or you possibly can simply go away Dynamic Damping slider at 0 and don’t change your Damping slider unchanged, it’s as much as you.
Different Settings
Anti Gravity Good points
Anti-Gravity (AG) features assist scale back wobbling and nostril dips while you punch out after which let go of the throttle. AG quickly boosts I acquire throughout throttle pumps to mitigate these undesirable dips. Nevertheless, if the AG acquire is about too excessive, your quad could expertise fast oscillation (stutter) while you launch the throttle, as a result of AG boosts each P and I.
Default is 8, scale back it if you happen to see wobbles throughout quick throttle adjustments. For five″ freestyle drones, I discovered 8 to 12 vary.
You’ll be able to tune AG by wanting within the goggles, or examine for nostril dip in Blackbox logs, and see the impact of anti-gravity.
Dynamic Idle
Dynamic Idle improves stability, enhances propwash dealing with, and reduces the prospect of ESC desync. It will increase motor pace when the throttle is at zero, bettering management authority and responsiveness at low throttle inputs. Different advantages embrace sharper flip and roll stops, extra responsive in low throttle and more practical braking.
When Dynamic Idle is about, Static Motor Idle (in %) within the Motors tab is disengaged.
To setup Dynamic Idle, it’s worthwhile to
- Allow bi-directional DShot within the Motor Tab (if you have already got RPM filter enabled, you’re all set)
- Enter an appropriate Idle RPM worth within the PID Tuning web page (e.g., 20 to 40 for five″ drones).
The really useful Idle RPM worth relies on propeller measurement and pitch. Smaller and decrease pitch propellers typically require larger values. Alter the worth larger in windy situations to counteract instability.
Prop Sizes | Excessive Pitch Props | Low Pitch Props |
31mm/1.2″ | 84 | 167 |
40mm/1.6″ | 62 | 124 |
2″ | 50 | 100 |
2.5″ | 40 | 80 |
3″ | 33 | 66 |
3.5″ | 28 | 57 |
4″ | 25 | 50 |
5″ | 20 | 40 |
6″ | 16 | 33 |
7″ | 14 | 28 |
8″ | 12 | 25 |
10″ | 10 | 20 |
Concerns for Dynamic Idle:
- Excessive Worth: Reduces hold time when the drone is the wrong way up (motors push more durable in direction of the bottom). It could additionally make the quad hover barely at zero throttle, making throttle administration more durable.
- Low Worth: Dangers low throttle instability.
Setting the Ideally suited Worth:
- Decide ESC Idle Worth: Default is often 5.5%. Take a look at your motor within the motor tab utilizing a smoke stopper or bench energy provide to restrict present.
- Examine RPM: Spin the motor on the ESC idle worth (e.g., 5.5%, slider at round 1055) and observe the reported RPM (requires bi-directional DShot).
- Set Dynamic Idle: Use the RPM worth divided by 100 as the perfect Dynamic Idle worth.
Throttle Enhance
Throttle Enhance will increase your throttle worth while you quickly transfer the throttle stick up, providing you with additional energy. This may make throttle responses extra dynamic however may make them unpredictable.
- Default Worth: 5
- Adjustment Ideas:
- When you discover the throttle laborious to handle, scale back the worth.
- Some racers disable Throttle Enhance fully by setting it to 0.
- Experiment with smaller values to see what works greatest to your flying fashion.
Voltage Sag Compensation
This function reduces the utmost motor drive worth when the battery is full and will increase it because the battery voltage drops. It gives extra constant flight efficiency all through the flight. However watch out it’d make you overlook when to land as a result of the quad would really feel comparable by the entire pack.
Thrust Linearization
- Beneficial Setting: Allow Thrust Linearization at 20%.
- Advantages:
- Boosts PID to enhance responsiveness and management at low throttle.
- Lowers PID at excessive throttle to scale back oscillations (much like TPA).
- Helps with nostril dips and is particularly helpful for whoops and drones utilizing 48KHz PWM frequency on ESCs.
Word: Because it boosts PID at low throttle, you would possibly must decrease the grasp multiplier slider if motors get scorching.
TPA
TPA stands for Throttle PID Attenuation.
To positive tune TPA, carry out a throttle sweep and examine the frequency vs. throttle heatmap. When you get oscillations above a sure throttle stage, during which case TPA might help.
Within the newest Betaflight it solely attenuates D acquire above sure throttle stage (which is often the reason for the oscillations). Within the older Betaflight it attenuates each P and D, if you need you possibly can carry this again by typing in CLI: set tpa_mode = PD.
Usually I want to set throttle worth in TPA as excessive as attainable, so D acquire is extra fixed throughout a wider throttle vary. Be certain that to set the throttle worth somewhat decrease than the place the place the D time period associated oscillations begin to present up. For instance, if oscillation begins round 1800 throttle, I’d do one thing like this: TPA = 0.75, 1750.
Revisiting D Time period Filtering
After making the above adjustments, revisit D time period filtering to see if changes are wanted. Improve or scale back filtering as required.
I Time period Rotation and Absolute Management
These options are typically not wanted for FPV freestyle drones and are extra helpful for line-of-sight pilots.
Tuning Yaw
Yaw typically doesn’t require a lot tuning because the default acquire works nicely. The tuning window for Yaw is kind of large. Not like pitch and roll that are based mostly on thrust generated by propellers, yaw is predicated on the inertia generated by propeller rotation. Subsequently, yaw will inherently be too gradual to overshoot setpoint, and there’s little must tune yaw PID.
Yaw can also be too gradual for D phrases to have any significant impact and it’s typically not required. Nevertheless you possibly can allow it if you need, however it would possibly introduce extra drawback than it solves, like vibrations and many others. So we’re left with P and I phrases for Yaw.
You’ll be able to tune Yaw utilizing the step-response evaluation like we did with Pitch and Roll. Moreover, if gradual oscillations happen within the again a part of the graph, then I-Time period is just too excessive. If quick oscillations happen, then P-Time period is just too excessive.
When you have yaw shakes when doing throttle pump, you possibly can isolate yaw from the slider tuning, and set Yaw PID individually. To do that, go to the PID tuning tab, within the ‘Slider Mode’ dropdown record, choose RP (Roll Pitch), as a substitute of RPY (Roll Pitch Yaw). It will exclude yaw values from the sliders, and lets you enter PID numbers for yaw. For five″ freestyle and cinematic builds, strive 100 for each P and I’d be start line. It’s also possible to strive larger values as yaw tends to be fairly gradual reacting.
There is no such thing as a excellent tune
How good is nice sufficient? You’ll be able to all the time spend extra time taking part in with filters and PID numbers, and you may even see enhancements however it may be situational and the time you spend money on it won’t be proportional to the outcome. I usually simply cease when it appears “adequate” and go away it there until I’ve a particular drawback I need to resolve.
Troubleshooting Ideas
Dangerous Gyro
A 5-inch FPV drone ought to fly easily on default Betaflight settings. In case your quad experiences vibrations, it may very well be on account of mechanical or electrical points, or typically a nasty gyro on the flight controller (FC). Right here’s the way to diagnose a nasty gyro:
- Symptom: One axis is considerably noisier than the others, particularly within the decrease frequency spectrum beneath 200Hz.
- Analysis: Rotate the FC by 90 levels. If the noisy axis follows the rotation, the gyro may very well be defective.
Within the instance beneath, the pitch axis is way noisier than roll and yaw, with bursts of D time period noise attributable to the noisy gyro.
- Potential Causes:
- Excessive energy wires close to the gyro.
- Noisy energy provide to the FC.
- Poor board design.
Options:
- Eradicating any excessive energy wires close to the gyro .
- You’ll be able to strive utilizing a 1000uF low ESR capacitor on the ESC energy.
- If already utilizing a capacitor, strive soldering an extra smaller 220uF-470uF capacitor to the facility of the FC (VBAT/VCC pad).
- Defective Gyro, changing FC.
RC Smoothing
RC smoothing is crucial in Betaflight to keep away from points with feedforward. Correct RC smoothing settings rely in your RC hyperlink. It’s greatest to load the suitable RC_Link preset to keep away from errors.
The Auto Issue is maybe one of the vital vital values, decrease is extra twitchy and responsive whereas the next worth is softer and smoother however extra sluggish. Right here’s a normal rule I personally comply with:
- 20-25: Racing
- 30: Default worth, nice for Freestyle
- 50: Cinematic
- 90: Extraordinarily easy cruising (noticeable delay)
- 120: Highest smoothness with out hassle (important delay)
Dangerous gear/pilot require larger RC smoothing too, e.g. Low high quality radio management gear, worn out gimbals, pilots with shaky fingers, and many others. Principally something which may contribute to jerkiness in RC instructions.
If attainable, examine black field logs to substantiate you will have easy setpoints, if the setpoint isn’t easy (has steppings from RC instructions), merely enhance the smoothing barely.
When you have noise in setpoint that peaks round 50Hz, 150Hz, 250Hz or 500Hz, then there may be most likely an issue with RC smoothing. These frequencies are frequent packet charges in RC hyperlink. On this instance, it’s Crossfire 150Hz.
If you’re not utilizing sufficient filtering for the RC instructions, you won’t have smoothed out the RC sign sufficient and it may create noise on the frequency of your radio hyperlink packet price.
RC smoothing removes stepping and bumpiness in your set-point, it makes P time period hint much less jerky. Nevertheless it additionally provides delay to feedforward in addition to setpoint, so your quad would possibly really feel somewhat bit much less responsive. RC Smoothing is beneficial, however an excessive amount of smoothing defeats the aim of getting quick RC packet charges like ExpressLRS presents.
The objective is to easy out the steppings however not including an excessive amount of delay. If you’d like smoother RC enter, strive including some extra expo, it has comparable impact however it gained’t provide the latency penalty.
One of the best ways is to only load the suitable RC Hyperlink preset as I talked about right here. When you did not load the right RC_Link preset to your specific RC hyperlink and packet price, it may also trigger issues to Feedforward. On this instance, feedforward jitters because of the lack of stepping smoothing in RC instructions.
PID Sum too low?
If the PID_Sum hits the default 500 restrict (50%) as a result of PID settings are very excessive, you possibly can increase the restrict to 1000. To do that, enter the next command within the CLI: set pid_sum_limit=1000
. However it doesn’t all the time make a distinction in flight behaviour as motors would possibly saturate at this price anyway.
ADC Filter Jitters Inflicting Oscillations
When you expertise random vibrations and wobbles on account of feedforward jitters, even after making use of the right RC Hyperlink preset or rising RC smoothing, the problem may very well be because of the ADC filter.
Make sure the ADC filter is turned off in your radio’s system menu beneath the {hardware} web page.
Feedforward spikes seem within the Blackbox logs when the ADC filter is turned on, inflicting undesirable oscillations and vibrations.
Edit Historical past
- Nov 2022 – Information created
- Jun 2024 – Up to date to Betaflight 4.5