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

Extended Limits Unnecessarily Affects Inputs, and When Applied Are Not Reflected in Servo Menu #539

Closed
borland1 opened this issue Jan 16, 2014 · 6 comments

Comments

@borland1
Copy link

Background:

The purpose of Extended Limits is to accommodate extended range servos by expanding the absolute limits set in the Servos menu. However, the OpenTX implementation of Extended Limits, while expanding Absolute Limits, also increases input resolution by 25%.

With increased input resolution, input values range from -125% to +125% instead of the default -100% to +100%. With Extended Limits enabled, Weight% and Offset% values are applied to higher input ranges.

Normal servos operate between 1000ms and 2000ms, with 1500ms as center or neutral position. Servos menu Min/Max defaults are set at -100%/+100% of center (1500ms). Some users may require extended range servos.

Problem:

The OpenTX implementation unnecessarily increases input resolution by 25%. This adds unnecessary complexity to user and to programming OpenTx since there is a new X-axis scaling basis (125% vs. 100%) for programmed calculations.

With Extended Limits enabled, user/programmer must consider the effects of higher input range when applying Weight% and Offset% values.

Recommendation:

Keep input resolution the same when enabling Extended Limits. The user/programmer can still apply higher Weight% and Offset% to arrive at the same output values up to Extended Limits of 125% (e.g., input value of 100% x Weight% 125% yields output of 125%).

When enabling Extended Limits, Servo menu Min/Max values should be reset to the higher values. User could be prompted with popup asking if he/she wants to reset Min/Max absolute values. If confirmed by user, the Min/Max would be set to -125%/+125%.

@kilrah
Copy link
Member

kilrah commented Jan 16, 2014

Input resolution is not affected, but output scaling is. Input is still the percentage you give, mixing ratios are unchanged, but this is then multiplied by the limit.
So a 100% input, * 100% mixer ratio, * 125% limit = 125% travel.
Extended limits on its own doesn't change anything, it only allows you to set limits higher than +/- 100%.
The reason why you'd use extended limits is to have more throw in the first place - so why reduce it at the input again?

@borland1
Copy link
Author

OK poor choice of terms. What I meant by resolution is the X-axis range changes from 200% (-100% to +100%) to 250%. There are now more increments (250 vs. 200) to get from one side of the gimbal stick to the other.

No, the inputs are changed. When I say inputs, I'm referring to gimbal sticks, switches, sliders, knobs. These Source inputs are used in the Mixer menu. When the Extended Limits are enabled, the Source inputs are rescaled from 100% to 125%. The Weight% and Offset% in the Mixer menu must now be descaled to accommodate the rescaling.

Limits are just that 'limits'. Regardless of whether they are Extended or Normal, they can't be exceeded. Regardless of the 'rescaling', the limits can't be exceeded because OpenTx programmatic flow has the Servo Inverse/Limits being applied after the mixer.

There's really no good reason to rescale the inputs from sticks, switches, sliders and knobs.

@borland1
Copy link
Author

Besides the rescaling of the inputs from sticks, sliders, knobs, let me restate the other problem.

When the Extended Limits are enabled from the model Setup menu, the Min/Max limit values in the Servos menu are not set to extended values (-125%/+125%). The user must manually set them in the Servos menu after enabling Extended Limits.

@kilrah
Copy link
Member

kilrah commented Jan 17, 2014

Some radios have separate "end points" and "limit" adjustments. End points serve as a gain and affect throws after mixing. Limits don't, but just clip the output if mixing 2 controls makes the output exceed them. These are commonly misunderstood and misused.
On openTx there is only one number for both, Limits serve both as end point and as a limit that can never be exceeded. Clipping will only occur with >100% mixer output. This was partly due to the origins of the firmware being the Turnigy 9x radio on which it was simply not possible to handle separate setting due to memory constraints.
It has been extensively discussed about a year ago and it was decided to leave it as is as it does not limit (no pun intended) possibilities, it only requires to think a bit differently, which is the case for the entire firmware's operation anyway.
The Symlimits option has however been introduced to cover cases where 2 mixed controls that act on a servo output must have very different effects like flaperons, so that you can use subtrim to deliberately center a servo off of the of the ailreron control.

If you have a problem because of the limits system you're simply not configuring your models how you should. Extended limits should usually not be needed. They are ony there for special cases where you need more throw out of a servo for some reason, but it isn't likely as 100% already corresponds to what other radios usually put out only if you set both limits and end points to their maximum of 140% or so. For example for the pan camera on FPV setups you want anything you can, and on some model I might have -112/+105 adjusted. But again inputs are NOT changed, only servo output gain is, whether you set limits below or above 100%. If you have 2 aileron servos and set one to have +110% / -87% limits, the other one is NOT affected.

Have a look at the "Setting up a model" section of the manual:
https://docs.google.com/document/d/1qlh09LzxtpPt7j_aqG8yiOu2yoYMzP9XA-PJA81rDJQ/edit?pli=1#heading=h.oeidj7mt3r0j

If you follow those guidelines you should have no problems.

@borland1
Copy link
Author

Since you want to talk about other radios. I think the way the DX-18 handles absolute limits is a superior implementation. It instead of using percent notation for limits, it uses the actual servo signal notation as the limits.

The issue has nothing to do with 'symlimits' or endpoints or how useful extended limits are. It is about the unnecessary rescaling of the user inputs (sticks, switches, sliders, knobs), and the fact that the Servos menu Min/Max limits are not reset when enabling Extended Limits in the model Setup menu.

The rescaling implementation is an unnecessary feature that creates excessive complexity.

@kilrah
Copy link
Member

kilrah commented Jan 17, 2014

You can have the units displayed as us if you want with the ppmus option.

Anyway it's just a question of preference and of getting used to it. You can do anything you want with both approaches, just in a different way. With openTx you simply know that whenever you have 100% output from the mixer the servo will touch the limit you defined. As a result as explained in the manual you set your control response not using the "end point adjustment" that is not there, but with the inputs screen.

Again the "Extended limits" checkbox is only an enable that allows you to set higher limits for some servos if you need to. You'll typically have to do it only on one or 2 servos, so if all limits were set to +/-125 by enabling it you would jsut have to go back and reset most to what they were before. And just the fact of ticking the box would permanently screw up all your servo throws.

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

No branches or pull requests

2 participants