H_RSC_IDLE on electric heli

I have ready many places that H_RSC_IDLE should be zero on an electric in most of the time. My question is what is the reason or downside to setting H_RSC_IDLE to non zero on an electric heli?

The reason I want to do this is the throttle ramp goes from H_RSC_IDLE to flight throttle setting (ardu gov in my case) but the esc does not start turning the motor until a bit above 0 throttle. Maybe 15% or 20% throttle is is min to get the rotors turning. This means there are several seconds from throttle interlock to the rotors actually starting to spin. Id like to set the idle to juat before the motor starts so it ramps up like a non ardu heli.

@spova Did you calibrate the ESC?

I have but iv also reset things a bunch and so don’t know if its still “calibrated”.

Im not argueing with you but I dont understand what the calibration would do for the start up delay? My understanding is this just lets the esc know what 0% and 100% throttle signal look like. Im also not usong rc passthrough for rcs. Im using the ardupilot controlled governor instead. Even on my direct throttle controlled non ardu helis they dont turn the motor until probably 20% throttle or more.

My understanding is the throttle ramp goes from idle setting so if I set idle to 0 it takes time for it to go from 0 to where ever the motor starts so the true ramp up time is what I set ot to minus the 0 to actual start time. If I set it to just under the actual start (need to figure out precisly what that is) then ramp up will not have a long pause with nothing happening.

I just dont get why its suggested to not normally do that setting with an electric. As long as the rotors dont start when you arm and only turn when the interlock is switch it seems like it should be fine?

@spova normally you should not be required to go up to 20% to start the motor, rather around 5 to 10% without any stuttering.
Do you have any soft-start or super soft-start feature enabled in the ESC? That is likely the next culprit for the behavior you are describing. What model of ESC?

1 Like

Hmm I think I do have some soft start turned on. Im not sure what percent it really starts at but i just dont like the long wait from switch flip to rotor moving.

That’s a potential problem. Disable it and use ArduCopter soft start parameters instead.

Just checked, start up time was set to 0 on the ESC so no slow ramp up but start power was set to the lowest setting too. I have moved that to the highest setting to see if that helps. Otherwise its set for external gov so I don’t think it has any other soft start settings.

Turning the start power to max didn’t make a difference. I counted about 4-5 seconds from turning the motors on until the blades start moving. I only have a 20 second ramp up set. So idle could be moved to 20-25% of what ever power it uses for the gov. Maybe that’s not actually 20% throttle to the start point since its not ramping to 100%.

I cant think of any reason this would be a problem on an electric other than messing with the auto restarts and the danger of if its set to high that the rotor starts spinning at idle throttle when its armed instead of when the motor interlock is turned off.

Another part I don’t understand is what is the flight idle throttle when using the auto throttle? How does it decide what throttle to set when you are using a target RPM and not a Target throttle setting? It wont know (as far as I understand) what throttle setting will be required to maintain the desired RPM when it first starts so how does it know how to ramp up in the specified time? Does it target the external gov setup or the throttle curve setting for zero pitch until it has enough data to guess how fast the rotor will ramp to the desired RPM?

Now I am even more confused. I just timed the full ramp up and its only about 16-17 seconds. I have it set to 20 seconds.

From Interlock High to Gov Engaged though takes less than the set ramp up time.

I’m not sure if any of this is critical as long as the heli is safe and doesn’t damage its self when I turn it on.

I am wondering if some of this is from never going back and properly tuning the throttle curve settings. I know they are used for fall back but I am left wondering what else they are used for now.

@spova it is important to set the H_RSC_RUNUP_TIME greater than the actual time it takes to the rotor to reach nominal rpm. The logic behind all this does not look at the actual rpm progression during runup (yet), it relies on a counter that adds up at each cycle and declares runup completed when the desired time has elapsed. The H_RSC_RAMP_TIME defines how fast the actual throttle output is ramped up during spool-up. So you normally want to set the ramp time (for governed or throttle curve modes) to achieve desired throttle output without over stressing the gear train. Then you set the runup-time to be greater than the measured time to spool the rotor up. It would help if you post a log for a spoolup, so we can check both parameters and how it is behaving.

Yep, the strange part for me is the RAMP time is happening a fair bit faster than its defined time. I can grab a log later today.

Here is basically what happens. Ramp is set to 20 runup set to 21. Mode 4 auto throttle. Gov set to 3500 rpm.

I engage the motor interlock to start the rotor turning.
4-5 second elapse before anything happens.
after a few seconds the rotor starts turning and spins up to 3500 RPM, this takes only 16-17 seconds.
Then the Governor engaged message. Well before the 20 ramp up should take.

This means my true ramp up is only about 10 seconds even though I have it set to 20 and that 10 seconds happens just some place in the middle of the 20 seconds its supposed to take.

Yeah, as I said there is no sort of feedback in this phase, so you need to match your heli “times” with the parameters. This means in other words that even if you reach target rpm and governor state moves to “engaged” the fc will still wait for the runup-time to elapse before declaring runup complete. Which puts your setup on a safe side, the risk of the opposite happening-declaring runup complete with a rotor still spooling up- is that if you are in auto mode the heli would initiate auto takeoff with rpm non in range, potentially very dangerous situation.

Iv poked around in this but am not sure what all fields are important here. I’m trying to figure out how to better understand and investigate these things my self. This heli is not well tuned or setup yet but I built it as a small heli that I can play around with all this stuff and test in the back yard so that I can later apply that knowledge and experience to building some larger ones that I have in the works.

I can see HELI>DRRPM goes to 85 and that is the setting I have for H_RSC_SETPOINT but I didn’t this mattered for auto throttle mode and it doesn’t look like it does anything looking at the logs. I’m not sure if DDRPM means anything here.

Looking at the Throt line and the rpm1 it looks like there is no RPM detected until about .2 ish or a little under on the graph. So if I set idle to just under this I think it would start the throttle much closer to where it needs to be to start the rotor.

That just leaves the other end. Looking at ERRPM it seems to be targeting 100% and assuming that’s where it will hit the governor RPM. What dictates this top end or the start up so that it can ramp up correctly? Or am I just stuck having a few seconds after gov lock because ramp and runup have to be later than actual gov engaged?

Logs from just a rotor runup and shutdown here
https://drive.google.com/drive/folders/1w_2lAdTuh9i3wUlk2E1xvsB9UvJL0k-a?usp=drive_link

Looking at the code on github (Not a go idea at all of what I’m looking at there) it appears that the ramp up ramps from what ever idle is set to to 100% and is independent of the governor.

" float _rotor_ramp_output; // scalar used to ramp rotor speed between _rsc_idle_output and full speed (0.0-1.0f)" This is what I found.

No peram for what full speed is. However I did find some other post on here talking about setting the ramp to 1 and using the esc runup and or soft start settings to do the actual start up of the heli. Then just set runup to the actual time it takes to get to full flight governed rotor speed. As suggested here H_rsc_ramp_time - #6 by ChrisOlson. Its sorta the opposite of what I was trying to but sounds like it should have the same result.

Thanks for your help @Ferrosan !

Ill update this thread if I have issues with that method for some reason.

this is exactly what I wrote before, currently governor has nothing to do with the ramp-up function.

Don’t do this, setting H_RSC_RAMP_TIME to 1s with H_RSC_MODE 3 or 4 (in your case 4, since you are using governor) will slam your throttle from 0 to throttle curve in 1s only. The suggestion of setting H_RSC_RAMP_TIME to 1 applies only to ESC with governor function, so H_RSC_MODE set to 2. Indeed in this case the ESC will take care of smoothly ramping up the motor speed. In your case the autopilot is responsible of performing the ramp-up, not the ESC.

1 Like

@spova looking at the log, you have a flat throttle curve, set at 90%. I would again remark to not set H_RSC_RAMP_TIME to 1, it will open the throttle from 0 to 90% in just 1s!!
You can safely reduce this parameter to something like 10-13s, not below.
secondarily, what ESC is it?

1 Like

From what I can tell ramp up is to 100% no matter what anything else is set. I understand I think more what you are saying about it being independent of the gov but the gov does catch the throttle on the way up when it hits target.

I’m running the align rce-bl25a, a rebranded Hobbywing Platinum PRO V4 -25A.

I intend to set tune the curve eventually but it didn’t seem important. However so far in testing this it appears that when you start the motor it does not ramp to the 0 pitch curve throttle setting but instead ramps to 100%.

The problem isn’t so much wanting to reduce the time of the ramp up from 20 to 10-13 but that the gov catches a few seconds before the ramp up is done and I can not set runup to be shorter and closer to the actual ramp up time.

There is just a lot of time wasted in the ramp/runup on the way my heli is setup. The most annoying part being the 4 seconds of nothing happening after its started and wondering if its working. The wait after the gov catches is less annoying to me but since im in here trying to figure it out I am now messing with that too.

Ill tune the curve and ramp up in another mode then set it back since that’s apparently more important than I realized. Then report back here.

Also I already tried setting ramp to 0 and using soft start. Its awful and terrifying as you warned. In external governor mode it only has soft start not a timed start (not clear on the programmer and had to dig around to find out). Thankfully nothing broke. That’s why I’m using this relatively little Heli (T-rex 300x) to mess around with this stuff so I can make mistakes a little safer lol.

@spova I had a look at the manual for your gov, are you using it in fixed wing mode right?

Yes, that should be the very first step, so set H_RSC_MODE to 3 and tune throttle curve first.

1 Like

Also, look at the range the manufacturer recommends:

While you have your range set to 1000/2000us. So you are loosing time while ramping from 1000 to 1100. Please set the servo min and max as per the esc manual before trying anything else.

3 Likes