Encoder setup to adjust heading/course etc.

Moderator: AdminGroup

Viking
Posts: 24
Joined: Fri Sep 17, 2021 9:52
Has thanked: 1 time
Been thanked: 1 time

Encoder setup to adjust heading/course etc.

Postby Viking » Thu Dec 11, 2025 15:42

I would like to use the encoders of my STECS to adjust the heading bug and omnibearing or course selectors in DCS.

Currently the encoders are set up as discrete buttons. However, the output is much too slow. I already adjusted the T_EN value to 2, but still the output is lagging heavily behind the input.

I would like to achieve a behavior that resembles that one of a mouse scroll wheel.

How can I do that? In DCS there is the option to use an axis for those knobs, but I do not know how to setup the encoder as a virtual axis for that. Would that work?

Any help would be greatly appreciated!

User avatar
fallout9
Posts: 5551
Joined: Wed Oct 03, 2018 20:37
Has thanked: 230 times
Been thanked: 1283 times

Re: Encoder setup to adjust heading/course etc.

Postby fallout9 » Thu Dec 11, 2025 23:55

Check out this guide.

Viking
Posts: 24
Joined: Fri Sep 17, 2021 9:52
Has thanked: 1 time
Been thanked: 1 time

Re: Encoder setup to adjust heading/course etc.

Postby Viking » Fri Dec 12, 2025 14:01

Great, thx a lot!

I managed to setup the two Axis which are linked to the Encoder and are toggled with a Modal Switch. That works so far.

Encoder.png

Profile_Axes.png


However, Axis 8 won't go beyond 25087 (see screenshot). Axis 7 works fine. Might that be a bug? All settings are equal between Axis 7 and 8.

Test_Axes.png

One more question: is it possible to start the Axis again from 0 after exeeding 35017 (and vice versa)? That would be perfect for a HDG dial.

User avatar
Alex Oz
Posts: 1367
Joined: Mon May 12, 2008 9:10
Location: Минск
Has thanked: 38 times
Been thanked: 165 times

Re: Encoder setup to adjust heading/course etc.

Postby Alex Oz » Sun Dec 14, 2025 0:27

Since you haven't posted your profile in accordance with the forum requirements, I'll give you some general recommendations.
Please update fw & configurator.
If you have any issues, let me know.
Крайние прошивки и софт / Latest firmware & software
https://www.njoy32.vkb-sim.pro/home
http://alex-oz.strana.de

jukelo
Posts: 95
Joined: Fri Aug 18, 2023 0:25
Has thanked: 6 times
Been thanked: 22 times

Re: Encoder setup to adjust heading/course etc.

Postby jukelo » Fri Jan 02, 2026 13:53

Viking wrote:Great, thx a lot!

I managed to setup the two Axis which are linked to the Encoder and are toggled with a Modal Switch. That works so far.

The attachment Encoder.png is no longer available

The attachment Profile_Axes.png is no longer available


However, Axis 8 won't go beyond 25087 (see screenshot). Axis 7 works fine. Might that be a bug? All settings are equal between Axis 7 and 8.

Screenshot 2026-01-02 114858.png

One more question: is it possible to start the Axis again from 0 after exeeding 35017 (and vice versa)? That would be perfect for a HDG dial.


This is symptomatic of a trimmer that is shifting the value of an axis bound to a physical sensor. Trimmers set up like that can't shift the axis value more than 50% either direction: if the sensor is centered, the encoder can give you the full range of values. Otherwise you'll be limited by the position of the sensor +/- 32767 (that's expected, you don't want your trimmer to overshoot). In your case that's most likely the Up-Dn lever on STEM that is the underlying sensor. It is not calibrated, so probably sending some value outside the expected range and limiting how far the trimmer can go.

Your options are to either:

  • change the Trimmer options for physical axis 8 to Input instead of +, and change MPL to 5 and make sure kdhi and kdlo are set to 255. This makes the trimmer the 'virtual sensor' - my preferred method.
  • or disable whatever sensor is bound to axis 8 in Global > External Devices so only the trimmer acts on that axis.
  • or assign the encoder to trim a different (unused) physical axis.

jukelo
Posts: 95
Joined: Fri Aug 18, 2023 0:25
Has thanked: 6 times
Been thanked: 22 times

Re: Encoder setup to adjust heading/course etc.

Postby jukelo » Fri Jan 02, 2026 15:10

As for making the axis loop around, there is no built-in option for that (it would be a nice feature).
It's possible to scrounge something like it together with some heavy boolean use, but it's kind of janky and I have instead found that simply playing with the additional encoder options is usually good enough to avoid having to turn your encoder into an axis:

Screenshot 2026-01-02 123206.png


Mode defines the way encoder 'ticks' are processed:
* Standard produces pulses of length equal to the T value. ALL 'ticks' of the encoder are accounted for and queued internally. Turning the encoder fast can produce a very long queue since the T pulse duration is strictly enforced.
* G1 produces pulses of length equal to T. There is no queuing: if pulses are coming in faster than T, they are merged together and stop when you stop turning the encoder.
* GT+: pulses are merged AND queued into a single long pulse if they come in faster than T. Min pulse length = T, max = T * number of ticks.

The default T value is equal to T_Enc defined in Global > Common. The default T_Enc value is 50ms, which is fairly high. It's a conservative value to ensure Windows doesn't get confused when button pulses come in too fast (they'd be seen as one pulse).

For the Course and Heading knobs in BMS I use T_Enc = 20ms and Standard mode as a better compromise: the number of missed pulses is reduced. G1 due to no queuing would be ideal, but BMS treats each pulse as a singular event.
I believe DCS can interpret a single long pulse as several ticks of the knob/bug so G1 should work well.


Return to “Manuals and Howtos”

Who is online

Users browsing this forum: No registered users and 19 guests