ESC Based Governor or Ardupilot with RPM Input?

Hi,
I’m at the point in my build that I need to setup the governor. The HobbyWing Platinum ESC has an internal as well as RPM output. I wired the RPM output to a GPIO pin on the flight controller. What I couldn’t seem to locate was anything telling me whether to use ArduPilot as the Governor, or use the internal in the ESC. What shall I do? Thanks.

@davidbitton It depends on how much setup you want to get into. Most ESC governors are pretty straight forward. You tell it the gearing ratio and the RPM you want it to keep and that is pretty much it. The internal ardupilot governor is a little more involved. You need to set up a throttle curve. Then you can activate the ardupilot governor and you’ll probably need to do a little tuning to get it to work well. Personally, if I have an ESC with a built-in governor then I will use that. I don’t know much about the HobbyWing ESCs. So I can’t say how well their governor will work.

@davidbitton also consider that commercial governors like Hobbywing take into account battery voltage input when setting the internal setpoint (besides the pwm “setpoint” you pass through). This means that actual governed rpm might differ a bit from the pilot desired rpm.
With Ardupilot internal governor instead, it will hold the desired rpm no matter if you take off with a full battery or half battery. This is important when you fine tune the rate controller for a specific headspeed or if you use notch filtering.
In terms of precision in headpeed “holding” Ardupilot internal governor works as good as commercial ones, it’s just a matter of spending some time in tuning it.

Which way have you gone with this, davidbitton?

FWIW I use CC Talon ESCs in my three helis and have only recently started using their governor mode, having previously relied (with non-Ardupilot FCs) on a throttle curve that increased as load increased. Setting up was simple, as described in Bill Geyer’s post above, and I found by experiment with a servo tester that the actual setpoint sent to the ESC by Arducopter doesn’t really matter so long as it’s above what the ESC’s setup screen says is needed – though obviously not above the setpoint required for the next governed speed, if you’re setting up more than one speed.

I don’t understand your point about full or half battery Ferrosan, for mine seem to keep a constant governed rpm until the battery voltage drops so low (too low!) that the motor hasn’t enough power to sustain it.

1 Like

@abenn1 read up at governor elf / store modes . By using AP governor (so ESC operating in normal airplane mode) things are a little easier in my opinion and RPM are always at the desired setpoint (once parameters are properly set).

@Ferrosan I also use Castle Creation ESCs. The set up of the governor is easy and I don’t have to mess with a throttle curve. I have nothing against the ardupilot built-in governor but given the choice, I would choose to just use the ESC built-in governor. As @abenn1 points out, I have not had any problem with it holding the requested rotor speed throughout the flight. I haven’t flown any other ESCs so I don’t have experience with how well their built-in governors hold speed.
I would recommend to a novice or someone coming into ardupilot that is flying an electric powered helicopter to just use the ESC built-in governor.

1 Like

But you are going to want to do most of the work anyway so you can get RPM telemetry if you are already using ardupilot.

@bnsgeyer I understand Castle requires the user to set-up the gearing and select actual RPM through (among other more adavenced params) the Castle-link. But Hobbywing works different and you don’t enter any gearing or rpm setpoint, you just pass through a PWM to the ESC.
The behavior of these ESCs is described here:
image

The problem is not throughout a single flight, it can happen to land, disarm switch off and restart with the same battery (provided there is still some reasonable charge left): in my experience there is some RPM difference even using “store gov”.
Since David is using HW ESC I thought could be helpful to mention paying attention to this detail, that’s it.

Thanks for that explanation Ferrosan. I can see now why you would recommend Arductopter’s governor mode when using a HW ESC.

HW is my first choice for my large fixed-wing models, but I’m glad I’ve got CC for my helis :grinning:

1 Like

@abenn1 yeah I didn’t have much luck with CC… smoked two of them during rotor spoolup, so I moved to HW. Right now I’m using a Flyfun V5 100A on my 600 test platform with Ardupilot Governor. Very reliable I have to say. Same goes with the Platinum version which I use on the Fpv heli.

Thanks as well for the explanation. Good to know.

1 Like

@Ferrosan would mind sharing your Ardupilot as governor parameters? Do I just turn off any rpm controls in the hobbywing esc? I’m interested in your throttle curve.

@davidbitton sure, these are the throttle curve values of my 600:
H_RSC_THRCRV_0 82
H_RSC_THRCRV_25 85
H_RSC_THRCRV_50 87
H_RSC_THRCRV_75 90
H_RSC_THRCRV_100 95

Governor parameters:
H_RSC_GOV_COMP 25
H_RSC_GOV_DROOP 10
H_RSC_GOV_FF 50
H_RSC_GOV_RANGE 200
H_RSC_GOV_RPM 1300
H_RSC_GOV_TORQUE 30

I’m currently testing a low kV engine, so the values for the curve are rather “high”.
ESC is a HobbyWing FlyFun V5 100A, set with soft start only (it’s a controller meant for fixed wing so it does not have any governor feature).
This is a plot from a recent test flight in which I was testing some new AP features, it can be seen how well it’s tracking the desired setpoint in relation to collective pitch changes:

This is a zoom of the power recovery maneuver and subsequent governor re-engagement:

How are you getting RPM data from the ESC? The HW Platinum v4.1 has an RPM output that I put on a GPIO port. Do you have any RPM1 settings? Thanks.

I’m not using rpm output from the esc. I have an external Hall sensor and two magnets on the tail drive crown. Never used/tried Esc rpm output, so I’m not much help on this aspect.

For the throttle curve, can i bring that down 10% across? That looks aggressive (to me).

I don’t think the throttle curve is used when in gov mode. It’s just for fallback incase the gov errors out and fails.

Tune the curve and the gov settings separately I think.

So, this is where I am at. I attached my last log during testing. I’m mentally missing one thing, and that’s max RPM. I read that the target RPM should be reached at 50%; is that correct? Is the purpose of the throttle curve to push the blades harder at higher pitch? Must I move the copter up and down in the sky to finish up setting the curve? Thanks.

Log: https://drive.google.com/file/d/11ZPEGDxpXP9H-639mi0YtDhW2rbvemDT/view?usp=sharing

@davidbitton the log is locked, could you change the privacy settings

whoops. sorry about that.