Home Forums Everything about everything else dRonin for Tricopters! (TriRonin)

Viewing 15 posts - 1 through 15 (of 634 total)
  • Author
  • #60252

    This is a thread where we can share our Tricopter tunes, setups, tips and tricks.

    Download the Triflight version of dRonin here:
    PC: 20190113
    Mac: 20190113

    5/4-19:Broken link fixed and new info by @jihlein #61130

    Currently none.

    Explanations/tips on the setup parameters:
    Tuning your coper using the Autotune feature in dRonin:
    It’s a fantastic way of getting a very respectable tune to start out with. The tail can be a bit strange but putting the D-term on the yaw to 0 makes it feel a lot better. Then you can tune from there, if you feel a need for it. Try to remove as much vibrations from your copter as possible before performing the tune. Balance props if need be. This will produce a much better result.

    Remember to not run autotune twice in a row as it does not work well when the pids are too close to optimal. Autotune needs the gains to be off by a bit to be able to perform the tuning well.

    Advanced tuning of the tail;
    The dRonin we are using has Triflight code integrated, which offers features to improve the tail performance. There are parameters that you can change that helps tune the tail greatly during hard punchouts and fast dropping of the throttle.

    Explanation of the different parameters:

      Dynamic yaw output:
      On a Tricopter the yaw output is based on the servo angle and the speed (thrust) of the tail motor. Dynamic yaw output takes the motor speed into account, increasing yaw authority on low speed and decreasing it on higher speeds.

      Dynamic yaw gain when the tail motor is spinning at min throttle. The default is 290 (%).

      Example values:
      1.00: Dynamic gain disabled. Yaw output is same as in mid throttle.
      1.50: Yaw output at min throttle is 50% greater than on mid throttle.
      3.00: Yaw output at min throttle is 300% (3 times) greater than on mid throttle.
      Values between mid and min throttle are linearly interpolated.

      Tuning tips:
      To gain more low throttle authority, increase the value. Remember that there’s a limit on how much yaw can be produced at min throttle. Extremely high values reduce the resolution of PID output and cause oscillations.

      Dynamic yaw gain when the tail motor is spinning at max throttle. The default is 100 (%). This is the opposite of tri_dynamic_yaw_minthrottle, it reduces the yaw output at high tail motor speeds. It’s possible to increase it, but usually not preferred. By default, this parameter has no effect as the value is 100 %.

      Example values:
      1.00: Dynamic gain disabled. Yaw output is same as in mid throttle.
      0.75: Yaw output at max throttle is 25% lower than on mid throttle.
      0.50: Yaw output at max throttle is 50% lower than on mid throttle.
      0.25: Yaw output at max throttle is 75% lower than on mid throttle.
      0: 100% reduction of yaw output at max throttle. This means no yaw output at all.

      Values between mid and max throttle are linearly interpolated.

      Tuning tips:
      Reduce the value if you are experiencing yaw oscillation at higher throttle values.

      This value is based on at what throttle percent your copter is hovering at during normal flight. This, in turn, decides at what point DynamicYawMinThrottle and DynamicYawMaxThrottle have as a common starting point. A higher throttle than the value will engage the DynamicYawMaxThrottle and a lower throttle will engage the DynamicYawMinThrottle.
      This hover percentage can be obtained from the systemident object in the system tab after completing an autotune session. Simply copy that value.
      If you significantly change the weight of your copter or make a big change in motor / props, then it’s a good idea to redo this procedure.

      Getting it linear at zero throttles was not possible without increasing the correction which is applied to the pitch axis according to servo deflection angle. There simply wasn’t enough thrust at zero throttle. A new parameter, YawBoost controls the gain for this correction. The default value is 1. Increase the value in order to get more rpm boost at low throttle. Decrease value if you’re not interested in low throttle yaw authority or are experiencing pitching of the copter when yawing.

      Motor acceleration from min throttle to max throttle (and vice versa for deceleration) in seconds. The default is 0.18 (180 ms). The speed is used to calculate virtual motor speed feedback.

      This value will change after doing an in-air tail tune. It’s the value of how much the tail needs to be tilted during normal hover, providing a good reference point for other parameters.

      If you wish to have more or less throw on your tilt setup. Change this value and match the angle of the servos during servo setup.

      Needs a feedback enabled servo. This value is obtained in the unarmed-tail tune. It’s a value of how quickly the servo can move side to side. If you are using a normal servo without a feedback wire, ignore this value.

      AdcServoFdbk___ is the raw value of the feedback input pin correlating to the min,mid and max position of the servo. These parameters are determined during the unarmed-tail tune.

      The pin on the flight controller you have connected your servo feedback wire to.

      If disabled the firmware will expect a feedback enabled servo to be connected. Leave enabled if you are using a common servo.

      Pretty self-explanatory.

      A general note on perfecting the tune of the tail;

    PLEASE BE AWARE, Tricopters do not work the same as quadcopters. Due to the uneven number of propellers on the tricopter, there is a force generated that is trying to spin the copter on the yaw axis. This is why the tricopter has a tilting motor in the back, this is to generate thrust in the opposite direction, canceling out the force generated by the spinning propellers.

    This creates some unique properties and downsides. The tricopter “swooshes” when it flies. It kind of makes coordinated turns on its own, which is a very nice feeling and it creates a unique video style.
    However, the downside is that quick throttle changes the thrust generated by that tilting back motor is either increased or decreased along with increased yaw rotation force generated by the propellers.
    The servo compensates by changing the angle of the motor to direct the thrust, but if the throttle is rapidly increased to the max and then very quickly is reduced to a low value you will experience yaw spin. Physics just isn’t very forgiving in this case. The way up is fine. It’s easy to tune the firmware to compensate for this as you have plenty of yaw authority. However when you kill the throttle the available thrust available to compensate also dies. This on top of the hard braking of the motors making the copter now generate a huge yaw force in the opposite direction to what it did before. The servo has to rotate all the way over to the other side, which takes more time than shutting down the motors. So almost no thrust being generated plus the little thrust generated not pointing in the right direction fast enough equals uncontrollable spinning.
    If you do this while in fast forward flight the copter will tumble as well as the disc area on the tail changes depending on the angle of the servo and it will immediately be changed to the minimum which makes the copter fall forward followed by a whole lot interesting flops and flips. Increasing throttle again will get you out of trouble again.
    The smaller the copter the more pronounced this problem becomes. The V4 barely suffers from this whereas it’s very obvious on the baby tricopter.

    BUT, you can by throttle management get around this. Just don’t kill the throttle all the way and crazy fast and you’ll be good. You’ll get used to it quickly but it is a different experience to a quad. Not a bad one, just a different one.

    That being said, you can still get a very, very good tune with the help of the P, I, D and the triflight parameters above. Racing with tricopters is fantastic as the cornering abilities are superb and drag is lower.

    All values and tunes in this particular post were made with stock electronics kits

    Baby Tricopter:
    Official tune coming. In the meantime, please try to use the autotune feature.

    Mini Tricopter:
    Official tune coming. In the meantime, please try to use the autotune feature.

    Tricopter V4:
    Official tune coming. In the meantime, please try to use the autotune feature.


    Please let me know if I made any errors in the text or video 🙂



    Watched it a few times, looks pretty good overall.

    Note: I E-mailed you a few minor FYI’s.



    Can you explain the bl_f3fc.bin file in this release?
    Is this “Any” F3 Flight controller like the sp racing F3? (not Evo)

    Kind Regards,


    “Can you explain the bl_f3fc.bin file in this release?”

    That file is the bootloader binary for the RCExplorer F3Fc Racing flight controller.

    There is a dRonin target for the SPRF3e controller. I don’t know much about that board as I’ve never used it. At the moment it can’t support the triflight routines, there’s not enough flash space the way the board is currently configured.


    Can you provide a Linux version of the software? Or a repo link so I can compile the GCS myself? It seems you cannot just copy the hex from the PC and use it (git revision mismatch). :/

    EDIT: Is it this one? https://github.com/jihlein/dronin


    This is the branch you want:


    Not sure I understand what you are trying to do and why you got the mismatch. I can load my FC from my Windows based laptop, and connect to the GCS on either the laptop or my MACOS desktop just fine, as long as the GCS has been built from the same git repository/version.

    Unfortunately I don’t have a Linux machine……


    …as long as the GCS has been built from the same git repository/version

    I was trying to do exactly that, use the GCS fron their downloads section with your firmware. 😉 Based on the fact that I can run any version of CleanFlight/BetaFlight/iNav with any Configurator I expected dRonin to be as tolerant, but it’s not.

    I got it compiled, but now I have a problem with wiring – that is, I have a setup with the Kakute F4v2 already soldered (and working with BetaFlight) and there seems to be no illustration of what dRonin expects. @David you just skipped that step. 😛


    Yeah, that’s the one issue with dRonin that people don’t like, the firmware version on the FC and the GCS version must match, or it’s unhappy. My version of the GCS has extra functionality for the triflight module that does not exist in the “stock” dRonin releases.

    As far as wiring goes:

    M1 – motor channel, I make it front left
    M2 – motor channel, I make it front right
    M3 – motor channel, I make it rear
    M4 – LED string output
    LED Output – Tail servo (Acts as M4)

    *Flight firmware and dRonin firmware handle output assignments differently. *Flight might be a little more flexible, but it’s very cryptic and poorly documented for the average user. dRonin is the opposite, it’s clearer to the user, but not quite as flexible.

    The above wiring will work for both, you need to changes resources somewhat in *Flight, and define things accordingly in dRonin.

    Hope that’s all clear and helps.


    Thanks @jihlein! I got everything but the servo working and I was wondering how am I supposed to put the servo on M4 with the timer conflict – well, you still can’t. 😉

    BTW, is ESC telemetry implemented in dRonin? Can’t find an option to assign an UART for that…


    Yeah, we need to make do with the hardware as designed……

    No ESC telemetry at the moment, but I believe someone is/was working on it.


    That’s a shame. I also can’t get Voltage/Current metering to work, although it is configured – GCS just shows zeros, and Telemetry lost VFAS sensor (it was configured fine for BetaFlight).

    BUT I have to admit that Triflight is doing a great job, and my machine is as stable as it ever was. It just hovers like on rails! 😀


    Have you enabled the battery module in the Modules tab?


    Ah, I did, I think I power cycled too. After coming back to the computer after a test flight the current readings were visible in the GUI, the voltage too. The voltage didn’t show up (or read aloud) in the receiver because it changed name from VFAS -> Cels and the new sensor wasn’t registered. Current sensor was named the same so it was updated and displayed as I expected. So it might have worked after all. 😉

    I tried Tailtune, the tail servo moved to one side, returned back, and then everything started to beep at me. It certainly did not move like in the video. It also didn’t change the servo speed value. I might have checked out a particular revision and not the HEAD of the branch, I’ll check after it compiles again I guess..


    Almost sounds like either the virtual servo model has not been disabled and/or an incorrect ADC has been specified (use ADC2), which will cause the tail tune to fail.

Viewing 15 posts - 1 through 15 (of 634 total)
  • The forum ‘Everything about everything else’ is closed to new topics and replies.