A missing basic feature ?

er9x is the best known firmware. It has a superb range of features and is well supported by the community. Well worth trying out.
Post Reply
Camboui
Posts: 79
Joined: Wed Feb 15, 2012 3:01 pm
Country: -

A missing basic feature ?

Post by Camboui »

I'm using my 9x quite basically since about 6-8 months. I just realized now there is a very basic feature missing: trims and/or subtrims (real ones, at least on my mind).
It looks like the trims and subtrims and offsets, etc, just move the servo neutral point but do not shift the whole servo travel range. I mean, when you trim the servos end points always remain the same.

It's me, my c**p servos, or really some missing feature on er9x ?
(I've been suggested to use open9x instead)
Thanks.

User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: A missing basic feature ?

Post by Kilrah »

Trim IS linear (it acts just after the stick input and offsets it).
Subtrim however isn't on er9x. I actually just updated the relevant section of the open9x French manual last night with a new diagram showing the different subtrim behaviors (er9x does like the red curve):

Image
bertrand35
9x Developer
Posts: 2764
Joined: Fri Dec 30, 2011 11:11 pm
Country: -

Re: A missing basic feature ?

Post by bertrand35 »

You will need open9x with symetrical limits and ppmca options enabled.
The default will behave as er9x does.
Bertrand.
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: A missing basic feature ?

Post by Kilrah »

BTW, just a few pointers to setup a model with er9x:
Limits are "hard", i.e a servo will never go further than the limit.

Let's say you want to adjust your elevator linkage:
- Start by setting subtrim to center the control surface if needed
- Set limits on the servo so that your servo never forces, and so that movement amplitude is the same on both sides. For example, if your elevator will mechanically force at +20 / -15mm throws, set lower limit to -15mm just before it binds, then set the upper limit to have +15mm throw.
- Set D/R to obtain the correct amplitude movement, for example +/-10mm if that's what your aircraft's manual says, i.e. about 70%.

Your trim will now behave as you expect, since it has those extra 30% of latitude to work in before being cut off by limits (trim is actually limited to +/-25%).

This will work in 90% of cases. The advanced open9x functions are not needed unless you need to mix several complex functions together, for example flaperons requiring assymmetric throws.
User avatar
MikeB
9x Developer
Posts: 17993
Joined: Tue Dec 27, 2011 1:24 pm
Country: -
Location: Poole, Dorset, UK

Re: A missing basic feature ?

Post by MikeB »

While servo pulses are 1500 at centre, and 1000/2000 at the ends, many commercial radios don't use this full range for the stick movement, often they only use 70-80% of this, and allow the rest for use by trims. So you might find the sticks move from 1150 through 1500 to 1850 with the trim at centre, but with 50uS of trim on they move from 1100 through 1450 to 1800. This way, you don't exceed the 1000 to 2000 limits for the servo.
Er9x (and other custom firmware) gives you the full 1000 to 2000 on the stick, when the mixes and limits are set to -100 and +100. If you apply trim, you will lose some throw on the side the trim is on, but you have so much throw already this doesn't usually matter.

Typically, to match commercial radios, set the WEIGHT to around 80%. Then the trims can use the other 20% and the whole servo movement does shift with the trims.

This is not so much a 'missing' feature, just er9x (and open9x) are different from commercial radios.

Mike.
erskyTx/er9x developer
The difficult we do immediately,
The impossible takes a little longer!

User avatar
jhsa
Posts: 19480
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: A missing basic feature ?

Post by jhsa »

you can also turn on extended limits. That will give you more throw. 125%
My er9x/Ersky9x/eepskye Video Tutorials
https://www.youtube.com/playlist?list=PL5uJhoD7sAKidZmkhMpYpp_qcuIqJXhb9

Donate to Er9x/Ersky9x:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHX43JR3J7XGW
User avatar
Rob Thomson
Site Admin
Posts: 4543
Joined: Tue Dec 27, 2011 11:34 am
Country: United Kingdom
Location: Albury, Guildford
Contact:

Re: A missing basic feature ?

Post by Rob Thomson »

Makes you wonder if the default value on a mix should be 80% rather than 100% ?
Slope Soaring, FPV, and pretty much anything 'high tech'
...........if you think it should be in the wiki.. ask me for wiki access, then go add it!
Camboui
Posts: 79
Joined: Wed Feb 15, 2012 3:01 pm
Country: -

Re: A missing basic feature ?

Post by Camboui »

Ok, it's not missing. Maybe "confusing" then :?

Let me give another point of view.
Assume I make a wing with ailevons so I need two identical servos with identical motion. Mine rotate so I speak "degrees".
One is OK with center point at 0° and limits at -45° and 45° (including trims, say +/-40° without them).
The other one has a mechanical offset of 10° so it moves from -35° to +55°. It's obvious to me that this needs to be corrected to range from -45° to +45° and not from -35° to +45°. Given it can not be done mechanically (assume it), it should be done electrically.

Now I understand we should use 80% for weight in the mixes (or maybe even 70%, as I noticed these might be Spektrum values, I checked with their linear microservos like AS2000, AR6400 etc). Maybe 100% shouldn't be the default value (same on templates).
One question though. If we activate the E-Limits to go from -125 to +125, do the timings go outisde 1000-2000ms range (so from 875ms to 2125ms) ? Actually I'm pretty sure most (rotational) servos accept limits outside 1000-2000ms range.

Kilrah,
I think your diagram should be one of these two.
The mixer output doesn't change, so your points should move only vertically (sorry for being picky ;) )
Attachments
OPEN9X-limits1.png
Camboui
Posts: 79
Joined: Wed Feb 15, 2012 3:01 pm
Country: -

Re: A missing basic feature ?

Post by Camboui »

Here is the second diagram.

Summary (er9x).
1) Trims shift motion range if mixes are 80% weight or less, otherwise trims are limited by Limits screen (assume 100%).
2) Subtrim (aka Offset in Mixes screen) acts differently, not sure how now... if it's not like a trim then it's useless IMHO (and shouldn't be called "subtrim").
3) Offset in Limits screen just sets the center point, End points are set by the other two values. It's like a 3 points broken line, or a 3 points curve ?
Attachments
OPEN9X-limits2.png
OPEN9X-limits2.png (38.8 KiB) Viewed 8656 times
Camboui
Posts: 79
Joined: Wed Feb 15, 2012 3:01 pm
Country: -

Re: A missing basic feature ?

Post by Camboui »

Or maybe this one ?
It means the stick action is null when 100% is reached.
Attachments
OPEN9X-limits3.png
OPEN9X-limits3.png (42 KiB) Viewed 8646 times
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: A missing basic feature ?

Post by Kilrah »

Camboui wrote: Assume I make a wing with ailevons so I need two identical servos with identical motion. Mine rotate so I speak "degrees".
One is OK with center point at 0° and limits at -45° and 45° (including trims, say +/-40° without them).
The other one has a mechanical offset of 10° so it moves from -35° to +55°. It's obvious to me that this needs to be corrected to range from -45° to +45° and not from -35° to +45°. Given it can not be done mechanically (assume it), it should be done electrically.
But the whole point is that on a real model you don't care much about how the servos actually move. You don't measure throw on the servo itself, you measure it on the control surface (because that's what matters).
Ideally, you:
- Set your servo to neutral
- Attach the control horn to be perpendicular to the linkage
- If the horn isn't exactly perpendicular, then you correct that with subtrim
- You adjust your linkage so that the control surface is flat
- You set limits to have symmetrical movement of the control surface (not the servo, it doesn't matter what it does anymore!)
Camboui wrote:One question though. If we activate the E-Limits to go from -125 to +125, do the timings go outisde 1000-2000ms range (so from 875ms to 2125ms) ? Actually I'm pretty sure most (rotational) servos accept limits outside 1000-2000ms range.

Yes. Some servos do, some don't.

Kilrah,
I think your diagram should be one of these two.
The mixer output doesn't change, so your points should move only vertically (sorry for being picky ;) )
Image[/quote]
The blue line doesn't apply to er9x, it's the "=" mode of the SYMLIMITS option of open9x.
When you subtrim the line moves vertically like I did, but the limit does NOT move by itself to 120%. Unless you change it yourself, then the output is clipped.
So if you have a 100% AIL mix, D/R at 100%, and your aileron servo has limits set to +/-100% with 20% subtrim, then when you move the stick left the servo will go only up to 80% (see my diagram), and when you move the stick to the right the servo will stop moving at 100%, so the last 20% of the stick throw will result in no extra servo movement.
To compensate for this, you'd lower D/R.
Camboui wrote:1) Trims shift motion range if mixes are 80% weight or less, otherwise trims are limited by Limits screen (assume 100%).

If you have your D/R and mixer ratio at 100%, then when you trim the output will be clipped (you'll reach the end of the throw before the end of the stick, as before). Remember the trim gets added in BEFORE the mixer.
Camboui wrote:3) Offset in Limits screen just sets the center point, End points are set by the other two values. It's like a 3 points broken line, or a 3 points curve ?

3-point broken line, yes.
Rob Thomson wrote:Makes you wonder if the default value on a mix should be 80% rather than 100% ?

I prefer Franck's approach to set it in the D/Rs.
- Limits = physical settings, servo and installation dependent.
- Mixer weights: "Logical" programming. Having a base at 100% makes it easy to set things, for example a second control that must move 60% of the first... you just set 60%, instead of having to calculate 60% of 87% that are in the first.
- D/R: The "control" part of it. This is where you set the actual control authority you need. As all the subsequent steps (mixer, limits) have been set to take account of any mechanical or logic differences, it makes sense to set the control properties before that, in a single place, not by editing weights in 12 mixers.
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: A missing basic feature ?

Post by Kilrah »

Camboui wrote:Or maybe this one ?
It means the stick action is null when 100% is reached.
Image
Yes this is it. Looks like my diagram wasn't clear enough. Corrected in manual.
Camboui
Posts: 79
Joined: Wed Feb 15, 2012 3:01 pm
Country: -

Re: A missing basic feature ?

Post by Camboui »

OK thanks.
I think I got it and will play with weights and limits.
Kilrah wrote:But the whole point is that on a real model you don't care much about how the servos actually move. You don't measure throw on the servo itself, you measure it on the control surface (because that's what matters).
Ideally, you:
- Set your servo to neutral
- Attach the control horn to be perpendicular to the linkage
- If the horn isn't exactly perpendicular, then you correct that with subtrim
- You adjust your linkage so that the control surface is flat
- You set limits to have symmetrical movement of the control surface (not the servo, it doesn't matter what it does anymore!)
While I understand this approach, I don't completely agree.
Servos have a short motion enough to reduce it even more (they barely reach 90° full range, all trims and limits to the max). For precision and torque we need to use most of their range. I try to construct my models to take the best of them, mechanical limits should be way beyond servo limits. Of course it's hard to be perfect while constructing, so minor corrections are welcome from the transmitter. Just my opinion of course :)
So, I should first find a better way to mechanically center the servo arm, or replace it, then play with er9x (I miss that epoca where servos could center themselves).
Thanks again to all.
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: A missing basic feature ?

Post by Kilrah »

Camboui wrote:Servos have a short motion enough to reduce it even more (they barely reach 90° full range, all trims and limits to the max). For precision and torque we need to use most of their range.
Again it's jsut the same thing, only a different way to see it. On a Futaba you leave the end points set to 100% and you're all good, but it actually leaves some margin, and on another menu you'll see the limit is usually 135%. So your 100% end points don't use all the available throw.

On er9x you set the limit, then reduce the D/R to leave a margin. 100% limit on the 9x corresponds to about 140% on the Futaba, and the 70% DR you'll set on the 9x to leave some margin (if you want to) will in fact give the same movement as the 100% end points on the Futaba...
User avatar
jhsa
Posts: 19480
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: A missing basic feature ?

Post by jhsa »

what I normally do is, adjust the limits to the maximum throw without forcing the control surface or servo.
Normally you don't need all that movement Extended limits enabled. then adjust the sub-trim if couldn't be done mechanically, and then adjust the weight... like this the trims will always work as they should and with no dead band.. easy.. at least it works for me..

Joao
My er9x/Ersky9x/eepskye Video Tutorials
https://www.youtube.com/playlist?list=PL5uJhoD7sAKidZmkhMpYpp_qcuIqJXhb9

Donate to Er9x/Ersky9x:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHX43JR3J7XGW
Camboui
Posts: 79
Joined: Wed Feb 15, 2012 3:01 pm
Country: -

Re: A missing basic feature ?

Post by Camboui »

Found a previous discussion on this.
viewtopic.php?f=5&t=717
At least I'm not alone to focus on the servo first and its installation on the model, then on control surfaces :P

Post Reply

Return to “er9x”