Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RC Throttle doesn't go to motor idle, but goes to zero when disarm #10750

Open
funnybrum opened this issue Mar 11, 2025 · 3 comments
Open

RC Throttle doesn't go to motor idle, but goes to zero when disarm #10750

funnybrum opened this issue Mar 11, 2025 · 3 comments

Comments

@funnybrum
Copy link

funnybrum commented Mar 11, 2025

Current Behavior

Servos that get their input by the RC Throttle goes to 1000us when disarmed.

Steps to Reproduce

  1. Configure servo mix for a servo to be RC Throttle
  2. Arm and observe how servo moves correctly with RC throttle.
  3. Disarm and servo goes to 1000us.

Expected behavior

RC Throttle should go to the configured value for Reversible Motors Neutral. This is usually 1500 for reversible ESCs/motors.

Suggested solution(s)

Use Reversible Motors Neutral instead of the 1000us when disarmed.

Additional context

I need precise RC Throttle output directly to an PWM controlled ESC. Without all the filtering that the motor output does. Using the RC Throttle seems to be one way for this, but when I disarm the rover goes in full reverse.

Why as a bug - seems to be such. The idea for setting the throttle to 1000us makes full sense if this is a non-reversible motor. Likely the case for reversible motor has not been considered. Though I suspect I may be missing something here and this may not be a bug, but more like a feature request.

  • FC Board name and vendor: SpeedyBee F405 v4
  • INAV version string: INAV/SPEEDYBEEF405V4 8.0.0 Jan 21 2025 / 16:16:11 (ec2106a)
@sensei-hacker
Copy link
Collaborator

Yes, that's a known issue. It had been addressed, then not.
Maybe we will address it again.

For now, a workaround you can use is to set a global variable to the throttle value (in the Programming tab), then use the global variable in the servo mixer.

@funnybrum
Copy link
Author

funnybrum commented Mar 11, 2025

Thanks @sensei-hacker! Tested the proposed solution, but something seems to be off.

Here are a few screenshots to show what I've configured. For some reason the 2nd servo is always to 2000, not to the GVAR 0 value.

Image

Image

Image

@funnybrum
Copy link
Author

funnybrum commented Mar 11, 2025

The approached worked after a few more experiments. Global variable to servo PWM mapping is not 1:1. To control servo PWM with global variable, you need the global variable to be in the -500 to 500 range. GVAR value of -500 maps to 1000us PWM and GVAR value of +500 maps to 2000us PWM. The math required to get this working was: (RC throttle - 1500).

Or as follows:
Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants