Does Feed Forward Make You Faster

Introduction

In recent versions of BetaFlight (3.5.1 and above), an idea called “feed forward” was introduced into the PID loop. A simple way to think about Feed Forward is that it’s an interruption to the PID loop. Basically, Feed Forward’s job is to understand “fast stick movement” and push quicker inputs to the front of the PID loop, causing an earlier reaction before waiting for error. Essentially, the faster you move the sticks, the sooner the quad responds to the movement, and the faster it accelerates to that ideal movement. That being said, at full deflection, the RATE of rotation will remain the same, but the drone will achieve that rotation rate sooner if you have feed forward enabled.

Learn more about Feed Forward on the Betaflight Wiki. https://github.com/betaflight/betaflight/wiki/3.5-tuning-notes#hello-feed-forward

Updates:

  1. This post is NOT about BF vs F1 or anything like that — tests for that will come later. Instead, the test is about “what am I used to and stuck on” vs “what alternatives COULD show for me.” I.e. I’m very used to and stuck on BF 3.3 with no sort of feed forward sort of thing. However, I flew F1 the other night and was amazed that a different stick feel made me faster around a track. Thus, the test is about my old stick feel vs 3 other stick feels (BF3.5.1 low FF, BF3.5.1 high FF, and F1 Sim Mode). It’s NOT about Low FF vs High FF vs F1. DON’T TAKE IT THAT WAY. BF vs F1 will happen later. 🙂
  2. I just went out and flew with a double FF of 300 on PR, and the feeling that I was experiencing was magnified, which has me intrigued. I’m not sure if this is where I will end up staying, as I think I was starting to see bounceback (as if I had too high of a D value), so I might have to lower it back towards 250. That being said, I’ll make a follow up post where I try higher and higher FF values to get the feeling that I want.

Disclaimers

  • THERE ARE FLAWS IN THIS TESTING – IT’S NOT INTENDED TO BE SCIENTIFIC, COMPREHENSIVE, OR DETERMINATE, the simple goal was to explore ( Sim Mode/High Feed Forward ) VS Low FF
  • The test was all flown on one day, but weather did change slightly through the day, becoming less windy towards the end of the session
  • The two quads pictured are two different quads, but they are nearly identical weight and have the same components/props/etc. Only real difference is that one has a Runcam Racer camera, and the other one has a micro runcam swift.
  • This post is NOT Flight One vs Betaflight. In fact, the reason that I’m doing this experiment was because I flew a Flight One quad that had a certain stick feeling that I thought was really impressive, and I’m attempting to recreate that stick feeling with Betaflight, so that I can see how to make it fly fast. Gabby Chaves’ video was what inspired me to start tinkering around with all of this.
  • The two drones were flown with two different radios, but I personally am intimately familiar with both. The RaceFlight drone is flown on my Futaba T18sz, and the second drone was flown on my Taranis 9xD with CRSF. Both have a latency within 1 ms of each other, and I can fly the two radios confidently interchangeably, so the impact that this would have on the test is negligible.
  • The drone that we were using to test Flight One Sim Mode had a vtx issue most of the way through our testing phase, so some data is missing, but I believe that enough is in place to prove the point.
  • A further test will be done to determine Sim Mode vs Betaflight 3.5.1 high FF
  • That being said, Chaves’ video was about 3.5 vs Sim Mode, but that’s not the approach that I’m taking.

Test Overview

The purpose of the test is to see if different settings/setups correlate to different laptimes around a consisent course. The featured IndyGP track was set up for around a week, and I’ve easily flown 100 batteries through the track, on my betaflight 3.3 drone, which, until now, has been my primary drone. The goal of flying this many packs PRIOR to testing was to be extremely familiar with the track, so as learning the track would have minimal impact on the results of the testing. At the end of my last day of practice, I set benchmarks with the Betaflight 3.3 drone. While we did not track every single battery, over about 10 packs, I was running an average lap time of around 23.5 seconds, with a fast lap of 22 seconds. We hand-timed this, so there could be some error, but it’s all going to be relative of an error margin of .25 seconds, which is very generous. Thus, for the purposes of testing, there were 4 different setups flown:

  • Control: Betaflight 3.3
  • Test 1: Flight One, Sim Mode
  • Test 2: Betaflight 3.5.1 low Feed Forward settings
  • Test 3: Betaflight 3.5.1 high feed forward settings

The drone that was running Betaflight 3.3 was disassembled, and the ONLY thing that was swapped on the drone was that I added a Flight One Board.  As an interesting first point to make, simply swapping to Flight One sim mode from that drone improved my time on average by over 1.5 seconds, with a fast lap being 1 second faster than my fastest lap on BF 3.3.

With each drone, I flew around 10 batteries, and we gathered data for around 4-5 batteries each. Some less, and some more after some warmup. The drones were not always flown back to back, and we often interchanged one drone to the next without a warmup period, to keep me from getting super used to each drone, so as to keep the focus on stick feel, rather than direct familiarity with a given drone.

The same drone for test 2 and test 3 were used, and we changed feed forward settings simply by using two PID profiles, which allow us to raise/lower the settings as needed. The control and test 1 were also based on the same drone, but over two days: overnight I swapped the flight controller from a Hobbywing F4 (non G2) to a RaceFlight/FlightOne Revolt.

The data that you’ll see shortly will show many more laps on the betaflight 3.5.1 drone, but batteries were flown interchangeably, and when we concluded the test, we continued gathering data on time improvement throughout a course.

If you’re interested in watching back to back runs and DVR from the testing, see the following. We used the DVR to get the official timing. All clips were conformed to 29.97 (30 fps drop frame), and then timed based on timestamps within dropframe. The information you’ll see on screen is not, for example, 21.23 seconds, but instead 21 seconds and 23 frames. We convert to frames and seconds at a later step.

Test Results

See the full detailed results attached on this spreadsheet: http://bit.ly/2Rtt5nx

Remember, information is in frames. To get full seconds, just divide the number by 29.97

Control Flight One Low FF High FF
23.5 658.37 702.31 719.28
635.37 669.34 671.34
680.34 699.31 639.37
642.37 660.34 709.31
740.28 664.34 693.31
660.34 709.31
682.34 644.37
640.37
650.37
637.37
615.4
620.4
599.4
697.31
613.4
625.4
646.37
656.37
635.37
655.37
625.4
580.43
600.4
593.43
Frames
Average 671.34 679.13 644.95
Worst No Crash 740.28 702.31 719.28
Best 635.37 660.34 580.43
Seconds
Average 22.40 22.66 21.52
Worst No Crash 24.70 23.43 24.00
Best 21.20 22.03 19.37

From the data, you can again see that there is much more information available from the BF 3.5.1 with High FF, and again that’s because the test concluded but we continued gathering data. Skip the last half of the data or so if you want to compare high FF and Flight One directly, but for the sake of this post, it would be a safe assumption to say that high FF and Flight One Sim Mode.

The most interesting result to me personally is the difference of averages. FlightOne sim mode and High FF Betaflight both outperformed low FF betaflight and 3.3 betaflight. With the control being established around 23.5 on Betaflight 3.3, all tests were a dramatic improvement above 3.3 whether on Flight One or on Betaflight 3.5.1. 3.5.1 with a high FF performed the best in terms of raw data, but I believe that this is slightly skewed because of a lack of practice and experience with Flight One.  But again, the most important thing is to notice how the difference in STICK FEEL created a faster average score than low FF, and a dramatically better “BEST” time was achieved on both High FF and F1 by a full second.

 

Personal Conclusions

  • FlightOne and Betaflight 3.5.1 with High FF have a very similar stick feel
  • Whatever stick feel is created by this allows me to feel more confident than I did on 3.3 with no feed forward settings
  • I personally have preferred high FF BF over F1, but I reserve final conclusions until after more testing
  • Flying BF 3.3 is a bad choice no matter what
  • Flying with a Low FF feels worse, and generally appears to give worse times around the track

 

My BetaFlight Settings

Because I know you’re going to ask for them. 😉 SEE HERE!

Settings Overview here:

Direct dump here:

2 thoughts on “Does Feed Forward Make You Faster

  • October 5, 2018 at 6:12 pm
    Permalink

    So if I’m looking at this right, it took you a second, the longest, to get used to high feed forward but once used to it, by far was the best option.

    Reply
    • October 5, 2018 at 6:36 pm
      Permalink

      That is a perfect understanding.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *