I am happy to present a completely rewritten force trim system!
Thanks to Sean Daniels, who pointed out a simpler and much better way of implementing it, the cyclic is now closer to being perfect than ever. After implementing his idea for the spring-loaded stick, I thought that nothing stopped me from doing it in a similar way for the springless cyclic, thus allowing me to finally unify the trim system between different stick types!
So, with a previous version, we had to either search for an initial trim position when releasing the trim for a springless stick, or to return controls to the same exact position for them to unlock with a spring-loaded one, which was sometimes problematic due to a possible drift of the mechanical center position with a long and heavy stick.
Sean offered to use a force trim button to determine the physical controls position, that is mapped to the current position of the axes cross indicator. So, there are 2 modes available:
#define FORCE_TRIM_BUTTON_MODE “HOLD”// “MOMENTARY” or “HOLD”
The “HOLD” mode assumes the use with a spring-loaded cyclic (though you can use any mode with any stick now!). When you press the force trim button, controls freeze, and remain frozen until the button is released. The position of the physical stick and pedals, in which those were released is then mapped to the current (trimmed) position of the controls on the screen, after that, controls are unlocked and move relative to their new center.
“ATT_TRIM” hat switch mode is recommended for use with this trim mode. You can precisely adjust cyclic trim position with the hat switch when the button is not pressed.
The “MOMENTARY” mode is meant for a non-centering cyclic. It works the same, except for the button has to be pressed and released to lock the controls, and pressed again to unlock them. The position of the physical stick and pedals, in which those were unlocked, is then mapped to the current (trimmed) position of the controls on the screen, just like with the “HOLD” mode. This allows you to let go of the stick and let it drop, and regain controls without any changes in attitude of the helicopter.
“BOTH” hat switch mode is the best one to use with this trim mode: it will work as a regular joystick hat switch when not trimmed and will move the cyclic trim position when in trim mode. Quite useful!
All this leads us to a few cool things:
- no more searching for unlock position in either mode!
- springs, rubber bands, whatever you have, is now suitable for use with force trim
- absolutely smooth trimming, without the slightest changes in attitude of the helicopter, at any time
- you can now trim without fearing of things going wrong because the center position has moved slightly after a 2-hour flight
- pedals and cyclic can be trimmed independently- just move whatever you want to move while holding the button and leave whatever is fine in place =)
- emergency trim reset is no longer needed, so hat switch click now only has one function left – that is – switching sensitivity setting
- FTCR button now serves as a trim reset
unifiedtrim operation for all stick variants – a lot of old options are no longer needed and have been removed.
Please update, as this one is really essential for the best user experience. The tutorial will be updated shortly!
Thanks again to Sean (Telemole) who made it better for everyone with a bright idea =)