Servers by jDrones

Velos 880 pixhawk build

(.) #1

Good afternoon everyone!

I am brand new to ardupilot and I have the eventual goal of full autopilot missions with my Velos 880. This helicopter was originally designed for 3d flight and is the largest 3d capable heli available. It swings 850mm blades on the head and has a tri blade tail running 138mm blades. The big deal with the Velos is that it has a redundant powertrain. It uses 2 complete 12s 700 size power systems that can run independently. It has 2 motors, 2 escs, and 4 x 6s 5000mah lipos. It also has a 4 servo swash and some have found out if one cyclic fails they are still able to fly and land safely. I find these features a big advantage over multirotors which as far as I can tell have zero redundancy. I can also run anywhere from 1000 to 2100rpm and get up to a 30 minute flight time. I am going to build a 500 size multirotor to first learn the system on and then switch it to my 500 size heli, and eventually to the Velos. I decided it didn’t sound good to learn a new flight control system on a $5k heli. I will be using the pixhawk 2.1 with here gnss. I will keep this page updated along my way learning, here are some pictures to show this incredible heli.
Velos album

(.) #2

Here is a short video of it flying as well

(.) #3

Velos Rotors has now switched focus to the UAV community and has released a new version. Biggest difference is it now has a 3 blade head. Here is a link to the website which points out the advantages of a traditional heli instead of a multirotor for UAV use.

Velos UAV

(Chris Olson) #4

Hi Chad,
I’m actually pretty familiar with the 880. I helped Aris at Velos Rotors get the Pixhawk functioning in the Velos UAV.

If it is possible, I would suggest learning the ArduPilot setup on a smaller helicopter instead of a multirotor. The setup is significantly different enough on heli that you’ll be “relearning the ropes” on heli setup. At present you’ll be using a downstream FBL unit on the 880 to handle both the four-servo swashplate and the dual governor function for the twin drives, as well as rate control. The Pixhawk will handle navigation and attitude command - the downstream FBL unit will handle the rest.

If you contact Aris at Velos Rotors I’m pretty sure he will be happy to provide you with the parameter file for his setup (or I might have a copy of it here). As the setup with a downstream FBL unit is also different from traditional setup and tuning. He will also have a suggestion on what downstream FBL unit to use for best results.

(.) #5

Hi Chris,

Thank you for the reply! I want to learn both platforms for future reference. After the quad I will go to a Gaui NX4 that I have stretched to 550 and am running an OS .50 on. Then after I learn the traditional helicopter aspect I will try on the Velos. Very cool to find the one that helped Aris. He was telling me the different systems he has tried. He ended up on another system so he didnt need 2 different controllers. I like the price tag on this system much better than what he is now using though! I am going to try 2 different fbl controllers, first the 3digi, and also the Bavarion Demon Axon. Both of these units handle a 4 servo swash. I am trying to find more information on running the fbl downstream as I type this, not too much information on it that I can find.

(Chris Olson) #6

There is no documentation on using a downstream FBL unit. But it is pretty straight forward. We just set the Pixhawk to provide feedforward and let the FBL unit handle the rate commands. It will be important to select a FBL unit that allows remapping of the S.Bus channels, since ArduPilot uses a non-standard channel mapping for the SERVO outputs.

It is actually probably easier from a tuning standpoint to use a FBL unit downstream, as it eliminates have to tune the rate PID’s in Pixhawk. When you get there, just contact me and I’ll run you thru the setup, and how to do it.

Since you are already flying a 880, I assume you have the speed pickup for the governor, and are using a y-cable to the ESC’s from the FBL unit throttle output. That part will stay the same. It is important on the twin-engine helicopter to get the load balanced on the two drives. Then we will deal with the throttle setup in Pixhawk to get it to play nice with the governor.

This is one I just did with a Synergy 806 gasser with a downstream CGY750. The video isn’t all that good due to the brightness of the display on the FBL unit, and not being clear. But you get the general idea.

(.) #7

Seems pretty simple to do, both of these units allow remapping of the channel assignments and sbus or in my case with Graupner it is SUMD

On the Velos I am using 2 x Castle Creations 160 escs that have a built in gov signal wire. I just run one of them to the gov port on the fbl units. I do run the esc connection to a Y. Both sides of the system return with identical power usage. My motor builder, Copper Doc, even made my custom motors identical KV to help.

I will posy back when I go to the heli setup. I will likely just order another pixhawk unit and get it going on the heli at the same time.

(Chris Olson) #8

Right. So you are using the back EMF signal from the ESC for the governor input to the FBL unit in lieu of a magnetic pickup. Then use a y-cable from the FBL unit’s throttle output to the ESC throttles. That will work as long as you are able to set the governor in your FBL unit for Condition Normal. With the FBL unit and Pixhawk we have the option of using some idleups with RSC MODE 1. With piston I recommend using fallback to a throttle curve in the event the governor drops out because it is very easy to over-speed a piston engine in a dive if you start tossing the heli around. So if the governor hits its overspeed limit and cuts the throttle to the overspeed setting you may want wide open throttle if you pull full pitch at the bottom of the dive. And the governor gain setting is normally too “loose” for this, so fallback to the throttle curve is handy to snap that throttle wide open.

With electric with the ICE HV-series ESC’s the governor won’t overspeed the motors and it will let the head overrun with the auto gear in a dive. So governor drop-out is not a big issue with electric.

The only problem with your setup for redundancy, is that if you lose the drive with the speed signal on it, you have no governor.

(.) #9

Good point, I wonder what effects it would have using a Y on the signal wires as well. I do run flat lines in my transmitter so I would imagine if I lost gov they would take over.I also have curves on the nitro in case the gov ever gave out. The fbl unit can also see the curves and react quicker to stick inputs instead of reacting only to changes in head speed.

On a side not I am hoping there are no “dives” taking place lol

(Chris Olson) #10

No, will not work. The two ESC’s will not agree. It would be best to use a mag pickup off the auto gear with a hall effect sensor compatible with your FBL unit. You can have only one speed input. It’s just a matter of where it comes from.

The throttle handling in ArduPilot is WAAAY different from what you’re used to :grinning:

Well, you never know. ArduPilot can do basic sport aerobatics without blowing up the EKF state estimator. And with a downstream FBL unit in Acro you got total bypass of the Pixhawk so you can do 3D with it if you want. So if you throw 'er into a nice dive to build airspeed and pull the perfect loop with your nitro you might experience the governor dropout issue. Piston engines don’t respond quite as fast as electric does. That’s why most people tend towards the good old throttle curve with pistons :grinning:

(.) #11

I would definitely like the ability to still do 3d if I decide to.

(Jon Caves) #12

Hi All,

I’m not sure if this is the right place to post this and my apologies if I’m hijacking the thread, but I am struggling to find people with trad-heli FBL experience.

I too am looking to prototype a Pixhawk/FBL solution on cheap trad-heli rig before transferring to a larger setup

Development has been progressing well and I now have a flying aircraft although there are the usual development tweaks still ongoing. Mindful of the risks involved, I have been testing control systems (Pixhawk etc.) on a basic Trex-450 based RC helicopter. Things have been going reasonably well and I now have the 450 flying with a Pixhawk although there are still some fairly serious issues (major tail wag). Much of this I am hoping I can tune out during the PID tuning process. But before I do this I would like to clear up some uncertainties.

My main query is in what parameters are used in Arducopter (specifically in the trad-heli setup) to set the control limits.

As I understand it, Ardupilot seperates its input signals from its outputs. Inputs limits are set using RCX_MIN, RCX_MAX, RCX_TRIM to tell arducopter what the bounds are of the incoming signals from the hand TX controller. These are then translated into an output range using SERVOX_MIN, SERVOX_MAX, SERVOX_TRIM which controls the outputs from the Pixhawk. In this way the whole control loop is calibrated so that the full range from the radio input is mapped correctly to a the full range of servo outputs. In my case however the outputs are actually adjusted to map to the Flybarless controller to achieve a neutral position and a full range of movement and then the FBL is further tuned to map its outputs to the control surfaces/servos.

There are a couple of problems I’m unclear about. In the trad-heli setup many of the SERVOX_MIN, SERVOX_MAX outputs parameters seem to be redundant and changing their values accomplishes nothing. Instead the same behaviour seems to be accomplished with the H_CYC_MAX (aircraft pitch, roll) and H_RSC_PWM_MAX (rotor pitch). Am I correct in this deduction? I can’t find anywhere where this is explicitly documented.

Secondly, in my case by changing the H_CYC_MAX and H_RSC_PWM_MAX parameters, I am changing the range of the PWM outputs for each of these control channels. By this I mean the difference in the top and bottom signal values (or the window size). I have been unable however to find a way of changing the upper and lower bounds (to move this range/window up or down) or the midpoint without tweaking the RCX_MIN, RCX_MAX and RCX_TRIM values for each channel. This seems wrong to me. Much of these RC values I am assuming are set during radio calibration and I feel that tweaks to the output should be accomplished independently of the input signals.

Any advice anyone could give to clear things up or point me in the direction of a good Trad-Heli explanation would be very much appreciated.



(Chris Olson) #13

Yeah, that’s right. When you’re setting up a FBL unit downstream of the Pixhawk treat the PIxhawk like you would treat the settings in your radio going to a FBL unit, as far as the SERVOx_ parameters. The RC IN is only to calibrate the RC so it matches what your radio does.

We got rid of some of those H_ specific servo adjusting parameters with a change @bnsgeyer made. However, that change is not merged to master yet, much less in the stable release. But it is in my custom helicopter builds:

When you set up a downstream FBL unit set the VFF for pitch, roll and yaw to 0.5. Set all the ATC_RAT_ PID’s to zero. Set all the limits for collective pitch (H_COL_MIN/MID/MAX to full travel (1000 min, 1500 mid, 2000 max). The swash ring won’t matter because you set your H_SWASH_TYPE to 1, which is an H1 with straight output - no CCPM mixing takes place in the Pixhawk - that’s done in the FBL unit. Set H_FLYBAR_MODE to 1, which gives you straight-thru control to the FBL unit in Acro flight mode. Then set up the head limits, swash ring, pitch limits, all the PID’s, etc. in the FBL unit. From that point forward setup of the heli is whatever your FBL unit uses for setup, and set the FBL unit to rate-only control mode, don’t use attitude control in it.

The only oddity is that ArduPilot puts out its collective pitch signal on SERVO3, and the throttle on SERVO8. (same on the RC, which which makes using all the traditional throttle hold, throttle/pitch curves, etc. hard to use in your radio). Since the radio is going to be WAAAY more advanced than what ArduPilot has for throttle handling, use a Heli setup in your RC with a straght H1 swash and collective pitch. Hopefully your RC radio then will allow mixing of the collective pitch signal (Channel 3) to the throttle signal (Channel 8). I’ve been meaning to do a video to show folks how to “hack” this phenomenon in the RC so you got a traditional throttle hold and Idleups.

You enable the BRD_SBUSOUT by setting the frequency of the S.Bus signal in ArduPIlot The only connection from the Pixhawk to the FBL unit is from the SBUS OUT port on the Pixhawk to the S.Bus in on the FBL unit. All the servos hook to the FBL unit as they normally would. Your FBL unit will have to support S.Bus mapping so you can map the FBL unit’s throttle signal to Channel 8 and it’s collective pitch signal to Channel 3. Otherwise all FBL units use Channel 3 for throttle and Channel 6 for collective pitch.

So it’s a fairly simple setup on the ArduPilot side, takes a couple hacks in the RC for using throttle/pitch curves and idleups, all the tuning and setup is done in the FBL unit. The Pixhawk provides navigation, stabilization by merely providing attitude command and passing pilot control inputs to the FBL unit, the FBL unit handles the rest. It is actually a quite popular setup for a lot of users because modern FBL units are considerably more advanced than what ArduPilot is for helicopters.

(.) #14

Cant wait to get this going! The things youre saying are like a foreign language I cant wait to learn! I just got the cube in today. You should make a video walking through complete setup with using a fbl downstream from wiring to flying. The information is so spread out here and there thats its hard to get it all together especially if you arent familiar with ardupilot set up and pixkawk.

(Chris Olson) #15

Well, here’s a little vid tutorial on one way you use to set up a more traditional throttle hold with a Condition Normal and Idleup1 with a throttle/pitch curve using the ArduPilot flight stack and a downstream CGY750 on a gas heli.

(Jon Caves) #16

Thanks so much for the response Chris. I think I get the jist of most of that and I’m not far off that configuration already. The problem I’m facing is I’m trying to adjust my SERVO/H_ outputs to the FBL so that they match the full FBL input range (neutral stick maps to 0, full stick up/down maps to FBL +/- 100%). I would assume this is accomplished by adjusting the SERVOX_MAX, SERVOX_MIN, SERVOX_TRIM values in Ardupilot. And this seems true for throttle. But in trad heli at least the majority of the SERVOX_ values do nothing and are I think ignored/replaced by H_COL_ and H_CYC. Adjusting the min/max/ trim values of these doesn’t appear to help me tune the output to the FBL. The only way I’ve accomplished this is by tweaking the RCX input values which is cheating.
Do you know how I might accomplish this or if I even need to tune the FBL inputs to map to its full range?

Thanks again,


(Chris Olson) #17

Yeah, thats the caveat. The cyclic range is set with corresponding H_ params. The throttle and rudder servo range is set with the corresponding SERVOx_ params to match the range to your FBL unit. ArduPilot does not support switching the cyclic range for Condition switching, but depending on the firmware in your FBL unit, most do. So you may be able to still use Condition switching by mapping the FBL unit’s DG1 or DG2 (Futaba systems) on the S.Bus and do the Condition switching with the S.Bus pass-thru. Otherwise you’ll be stuck with a Condition Normal setup. Since Condition Normal is all that is usually needed for UAV flight, that should work fine. But if you wish to use your FBL unit for 3D flight, you’ll want at least one Idle up condition.

Once you get the cyclic and pitch range set in the Pixhawk, then you can use the H_SV_MAN parameter in ArduPIlot to capture swash neutral, and min and max in the FBL unit to finish setting that up. So the ranges you would normally set in the radio are set in ArduPilot instead.

ArduPilot only supports a single static setup. FBL units support multiple setups so you can put a different setup in the heli with a flip of a switch. That’s the caveat.

(Jon Caves) #18

Thanks Chris,

Gimme a few days to digest all this and if its ok with you I will probably get back to you?

(Chris Olson) #19

Sure, that’s fine. I think once you play with it, you’ll figure it out. The main thing is don’t try to do any tuning with the ArduPilot system - do all that in the FBL unit for the rates. And make sure to set H_FLYBAR_MODE = 1 so it works properly.

(Jon Caves) #20


Would you be available for a chat sometime over the next few days? What time zone are you in?