Forum Replies Created
Superseded – here’s the latest:
I just ordered an F3Fc and PDB for my Baby Tri along with the “correct” servo. My servo is slow, and I can’t get 6 volts to it with the existing setup, so……
We’ve had some good reasonable success with the tail oscillations, still not perfect, but I’m looking at a few things. First off is trying to determine if pitch is exciting yaw, or yaw is exciting pitch, i.e. who’s driving the bus? I’ve got a high speed logger I’ll be adding to the Baby Tri when I replace the FC stack.
@Axiom34, the firmware/gcs mismatch is not normal, it means I likely messed up making the installer unfortunately. I haven’t done that in a while, so I’ll generate a new one from scratch and post it tonight. Sorry about that. Simply uninstall the current one, and reinstall the new one. Connect your F3Fc, and let it upgrade the flight firmware. The setup wizard should work then. That should help you with the basic tricopter setup (not too sure here – I setup everything manually, so no direct experience with the wizard). It would be a good idea to just setup the tricopter mixer and get that flying, then we can enable the triflight stuff.
If I recall correctly, the two versions of the F3Fc don’t setup the same, the gyro is 180 degrees out of phase between the two. What you will need to do is on the attitude tab, run the automatic yaw detection and the automatic level detection, this should bring the virtual model into the correct orientation. I’m hoping @Litterbug can jump in here and help – I don’t have an F3Fc board to help guide you here, he’s got the most experience with it.
As far as triflight goes, in the configuration pane, in the UAVObject browser on the right, under settings, you will find a TriflightSettings object. The EnableTriflight object defaults to Disable, you must Enable it and save it. This object will only be active when the Tricopter mixer is selected on the Vehicle pane, so make sure that’s done first.
The limits on the tail servo deflection need to be setup on the output pane, not thru the tailtune function. I simply find that easier and coded it that way.
Motors should be connected to PWM 1,2, and 3, the tail servo to PWM 4. This way you can set the ESC update rate and servo update rate independently. I should note that I’ve never tried this with any of the digital ESC protocols, I simply use SyncPWM.
I think the servo fdbk is on ADC2. Again, sorry to be so vague on some of this as I don’t have the F3Fc in front of me.
Tailtune will need to be assigned to a switch on the Input pane, under Flight Mode Switch Settings.
Once all this is setup, you can run the ground based tailtune by selecting the mode from your TX, and then pulling the pitch stick back. Once it has completed successfully, you should see the ServoSpeed object updated in the UAVO browser.
There is also a TriflightStatus data object in the UAVObject browser. This object gives insight to the status of many of the internal triflight variables. It will tell you if the module successfully initialized, what channel it thinks the rear motor and tail servo have been setup on, the Servo Angle, and a few others. Very helpful for diagnosing setup problems.
Like anything, it’s probably overwhelming at first, but once you understand the flow, setup goes pretty fast. It is very different from *flight setup.
We might consider either a new thread at this point, or possibly taking this offline. You can contact me directly at jihlein”at”hotmail.com.
@Axiom34 – Here’s an installer package created from myDronin branch. It includes an F3Fc target that has the triflight routines. You want to load the file EF_F3FX.hex that is in the dronin/build/f3fc folder. Loading this file will overwrite any existing *flight firmware. If you want to go back to *flight, you will have to short the boot pins to do the *flight reflash.
I think you can specify a hex file to flash from the *flight configurators. If so, that’s the easiest way to flash EF_F3FC.hex. If not, we can look at using the STM toolsets.
Start by running the installer package and seeing if you can run the dRonin GCS. Let me know how it goes.
Triflight on dRonin sets up differently, and has some additions over the betaflight version to help tune out the tail wags. It seems to work for me, we can go over the setup once we get you up and running.
Edit: I looked at the inav configurator and there is an option to “Load Firmware [Local]”. I believe this will allow you to choose the EF_F3FC.hex file and flash it.
@MadPoet unfortunately no, the BrainFPV Radix is not supported by dRonin. It needs to be the Brain RE1. I don’t have the link handy, but there is a list of supported boards on the dRonin website. The Seppuku is a good F4 based board. I don’t have any direct experience with it, but I know @litterbug does. It’s made by the same outfit that makes the DTFc, and that’s a very well made board, but only an F3.
I’m still swamped with other projects at the moment, but I’ve got some ideas on how to get both Linux and Mac based installers built…..
I’ll get that installer package built in the next day or so, in the middle of kitchen remodel and that’s taking all my time at the moment…. 🙂
Regarding the alienflight controllers, I’m not sure there’s a compatible dRonin for them, I’d have to do some research there. I know the BrainRE1 can support both *Flight and dRonin, so that’s a nice controller if you are unsure which way you want to go long term.
The F3FC is not officially support by dRonin, nor are the triflight enhancements. I maintain a private branch of the firmware that has both the F3Fc target and triflight. While the firmware still runs on F3 based targets, it won’t be long before the F3 processor no longer can support dRonin due to throughput issues. That being said, I just setup a DTFc F3 based tricopter last night and it flies just fine.
So my first question is what operating system are you using? If windows, I can create an installer package for you that will get you the dRonin GCS and necessary flight firmware for the F3Fc. Then you load the flight firmware onto the board with the STM DFUSE tool (you have to short the bootloader pins to enter DFU mode). After the inital flash, future dRonin firmware update can be done thru the GCS. I’ve never flown any of the *flight firmwares, but you may be able to use their config program to flash the dRonin firmware.
If you are running Linux, we might need to get @LitterBug to help, I believe he’s setup to build on Linux. He also has direct experience with dRonin on the F3Fc.
You could also setup a build environment, but that’s a lot of work……
After you get the firmware loaded, we can help you set it up. It’s pretty easy.
Tonight I’m going to setup my RCE Baby Tri with a Brain RE1 F4 controller.
While not on the F3Fc or a V4, I have inav v1.8 running on a Titan Tricopter (almost the exact same dimensions as the V4) on an AQ32 F4 flight controller (my own custom target) and it works extremely well. I have an older Ublox M6 GPS and external mag mounted on an upper deck I 3d printed. Don’t seem to have any mag issues. RTH works very well, as does position hold.
There’s no triflight algorithms in inav, but in my experience you don’t need them for the type of flying you want to do, particularly on copters the size of the V4.
I’ve got v1.9.1 firmware built for my target, but haven’t tried it yet. I see there is an RCExplorer3 target, so you should be all set.
I’ve got a V4 on the shelf, I really need to get it built……
“there is a “white” spacer of some sort between the motor holder and the back support”
They are simply two 3mm ID nylon washers. I tighten down the pivot screw until it slightly binds, then back of about half a turn or so.
BTW – just to get a little more prop clearance with the SunnySky 2204’s, I added two 3 mm flat steel washers between the motor and motor mount on each mounting screw.
Done! At least electrically and mechanically. My settings didn’t transfer so need to do a quick redo of the settings. Weather does not look like it will cooperate this weekend though.
Made some changes to triflight I will try and see if I can tame the tail a bit better.
@dkdarkness, I’ve got it printed. FWIW, I don’t know if it’s subtle differences in the different servos, but I could not make your rear mount work, it wasn’t tall enough. I went back to the original square one I threw together and it fits perfectly with my servo, no binding. The “half circular” motor mount i genius, now I don’t have to mess with the motor wires. Thanks for posting it!
Pictures to follow after I get servo wired back in….
Much more appealing! Will definitely print it tonight.
@Terje, certainly, see attachment. I should have attached it to the original post….
I think there’s a lot of misconceptions going on about what the tailtune does, and doesn’t do, and what’s causing the tailwag.
1)The static tailtune only configures the servo setpoint positions (left/center/right), and the servo speed. There’s a bit of a catch 22 here, as the servo speed needs the fdbk wire to be computed, yet the servo speed is only used in the virtual servo model when there is no fdbk wire. In fact, if you manually set the servo setpoints, there is no need to run the static tailtune. I’ve proven this with triflight running on dRonin firmware as it is setup somewhat differently. You also can see this by examining the code.
2)The dynamic tailtune is only used to set the motor thrust factor, and the only thing measured here is servo trim position in hover trim. To be in hover trim, you need to be off the sticks (inside a deadband), and also have the yaw rate within a certain deadband. The accelerometers don’t come into play here. If the dynamic tailtune does not complete, it’s because the prerequisite conditions for hver trim have not been met. Dynamic tailtune is NOT a substitute for proper yaw PID tuning.
3)The tailwag, in my opinion, is primarily due to a yaw loop gain that is too high. I won’t go into the gory details of the code, but there are calculations to increase the yaw force at low throttle settings, and I believe they are too aggressive, giving too much yaw gain at low stick settings. A lot of these calculations are relative to mid throttle stick. The situation is worse on the baby tri because it’s so powerful it hovers well below mid stick where the loop gain is increasing. On the latest triflight, there’s no easy way to adjust his that I’ve found. I’m flying a modified version of the 0.5 release where there are independent gain adjustments above and below mid throttle. I adjust my throttle curve such that the copter hovers at mid stick, and tune the yaw pid loop at that point. Then I adjust the dynamic yaw upper value for no tail movement on throttle punches, and the dynamic yaw lower value for no tail movement on throttle cuts. I’m not the most aggressive pilot, but this has worked, and still works, very well for me.
4)The dynamics of the thrust centerline wrt the IMU, while they certainly play a part, is very secondary to getting a proper pid tune, particularly with the small distances we are talking about. I don’t think there’s an issue wrt to the gyro rates at all, and the effects on the accels could be compensated for with some lever arm corrections, but if you look at the math, these corrections are very small. Add the way the most pilot’s fly these (rate mode for acrobatics), the accels don;t come into play anyway. With the modeling I’ve done, I agree with Terje that the rotational mass of the motor being lower is more important than the thrust line being a little higher.
As a side note, I mentioned I fly triflight on the dRonin firmware. dRonin has and autotune mode that works extremely well, but I’ve found one interesting artifact. If I use any D gain what so ever on the yaw rate loop, I get tail shakes. Setting yaw D to zero cures this and the tail responds very well with no shakes.
I’ve done some simulation work on this in Matlab, but it became too much like my day job. Maybe I’ll pick it up again someday….
Whew, it’s too early in the morning for these mental gymnastics…. 🙂