Response Curve in DevCfg appllied incorrectly

Moderator: AdminGroup

Sideslip
Posts: 40
Joined: Mon Nov 27, 2017 0:16
Has thanked: 5 times
Been thanked: 7 times

Response Curve in DevCfg appllied incorrectly

Postby Sideslip » Thu Jul 12, 2018 7:44

Gladiator Pro MKII with MCG
Firmware v1.94B
VKBDevCfg 0.87.0.5

So one problem let to the discovery of another. My left thumbstick scrapes the edge of the circle (not the mostly-square box) at the top right and bottom left positions. This means it doesn't quite get 100% of each axis at those positions. A deadzone of about 15% solves that. Looking at the stick it is only about 0.5mm left of center, which would explain how it travels further to the right before hitting the square stop giving it a greater "tilt" and causing contact on the circular edge. That is a really tight tolerance, so I can't see that being fixed, at least not by me unless I want to sand off some of the cap. Anyway, not a big deal, I can live with that.

GLDMK2MCG Bug 9.jpg

This however led to another problem. Using a response curve (in VKB software), the corners get REALLY screwed up. The problem is, the response curve correction should be the LAST thing applied to the axis value, but instead it is the first.

GLDMK2MCG Bug 7.jpg
GLDMK2MCG Bug 8.jpg


This is an example of what I believe is happening...

With no curve:
- Physical axis value = 90%
- 90% is given to the Logical axis
- Deadzone is 10% so full range = 0% to 90%
- 0.90/0.90=100%
- Logical axis value sent to Windows/Game = 100%
- All is well

With a curve applied:
- Physical axis value = 90%
- Response Curve is applied and determines that 90%=80% corrected
- 80% is given to the Logical axis
- Deadzone is 10% so full range = 0% to 90%
- 0.80/0.90=88.8%
- Logical axis value sent to Windows/Game = 88.8%
- Lost 11.2% of axis travel

What SHOULD happen with a curve:
- Physical axis value = 90%
- 90% is given to the Logical axis
- Deadzone is 10% so full range = 0% to 90%
- 0.90/0.90=100%
- Response Curve is applied and determines that 100%=100% corrected
- Logical axis value sent to Windows/Game = 100%
- Get full axis range as intended

So basically, the deadzone and response curves are in the wrong place. The deadzone should be applied on the Physical axis, and the response curve should be applied to the Logical axis. Or if both are on the Logical, deadzone should be performed before the curve.

User avatar
AeroGator
Posts: 827
Joined: Wed May 31, 2017 7:40
Has thanked: 378 times
Been thanked: 479 times

Re: Response Curve in DevCfg appllied incorrectly

Postby AeroGator » Mon Jul 16, 2018 6:33

Sorry for the delay; we will reply in a day or two.
Best Regards,
AeroGator

Ron61
Posts: 3246
Joined: Tue Jan 15, 2013 23:56
Location: г.Минск
Has thanked: 44 times
Been thanked: 634 times

Re: Response Curve in DevCfg appllied incorrectly

Postby Ron61 » Mon Jul 16, 2018 13:14

A huge request - take screenshots with the Alt key. Difficult to read your current.

Sideslip
Posts: 40
Joined: Mon Nov 27, 2017 0:16
Has thanked: 5 times
Been thanked: 7 times

Re: Response Curve in DevCfg appllied incorrectly

Postby Sideslip » Tue Jul 17, 2018 23:45

Sorry, I don't quite understand what you mean by taking screenshot with the alt key. My screenshots are about 1900X800 and 1900X1000 respectively (native pixel for pixel). I think it is your forum that is reducing the quality.

Here is a link to them on my google drive.

The wear marks:
https://drive.google.com/open?id=1rdLGcfKCa91P8VsodIJCapEwWpOdpFfU

The axis positions at the corners without a curve applied:
https://drive.google.com/open?id=1sdSfnzaQkR6FruBEXGPOJaw8bAx0-P1h

The axis positions WITH a curve applied.
https://drive.google.com/open?id=1DsxXwIF3bWGUN0n5_dZEKF2cfRIHVwI_

Ron61
Posts: 3246
Joined: Tue Jan 15, 2013 23:56
Location: г.Минск
Has thanked: 44 times
Been thanked: 634 times

Re: Response Curve in DevCfg appllied incorrectly

Postby Ron61 » Wed Jul 18, 2018 1:09

I advise you to reset to default, make calibration of all axes. Configure again for your needs (without loading the saved profile) and compare the screenshots.

Sideslip
Posts: 40
Joined: Mon Nov 27, 2017 0:16
Has thanked: 5 times
Been thanked: 7 times

Re: Response Curve in DevCfg appllied incorrectly

Postby Sideslip » Wed Jul 18, 2018 2:15

I just did as you suggested. I reset to default and the only settings I touched were:

- changing "external axis 3/4" to "controller 1 axis 7/8"
- enabling axis 8 (+ visible in HID |axis with center |auto centering | auto calibration | input - virtual)
- Setting the deadzone to 10 low and 15 high for both axis 7/8

I performed calibration, and it worked perfect WITHOUT a curve applied. I then enabled the response curve and set it just by using "linked q-factor" and dragged the 10% slider to 0 for both axis 7 and 8. Same result as before, I was loosing a few thousand off the limits of both axes when moving the stick to the top-right corner. Again, with the deadzone of 15 at the top and without a response curve it reaches 100% in all corners.

Same result as before (Just RotZ and Slider2 because I didn't change them around like before):
GLDMK2MCG Bug 10.jpg



This is with an EXTREME curve to magnify the effect. Curve applied is 0-0-0-0-0-0-0-0-64-128
GLDMK2MCG Bug 11.jpg



This with the exact same settings as above except the deadzone has been increased to the maximum 25%. The yellow boxes are the exact same boxes from the last screenshot. The red marks the difference. If it were working properly and it was just a matter of needing 5% more deadzone (it doesn't), this should have achieved close to if not 100% of the axes maximums.
GLDMK2MCG Bug 12.jpg



P.S. I figured out what you were talking about with using ALT

Sideslip
Posts: 40
Joined: Mon Nov 27, 2017 0:16
Has thanked: 5 times
Been thanked: 7 times

Re: Response Curve in DevCfg appllied incorrectly

Postby Sideslip » Wed Jul 18, 2018 2:36

If you want to test this on one of your sticks yourself:

- Calibrate your thumbstick
- Tape some small slices of paper behind a corner of the hat where it is closest to hitting (top or bottom left would probably be easiest)
- Check what values you get at that corner and then increase the top deadzone until you can achieve 100% at that corner
- Now set an aggressive response curve and see if you can still hit 100%

Like I said before, it's not a hardware issue. It's probably just the order of operations are wrong. A response curve has to be applied AFTER the deadzone is taken into account.

Ron61
Posts: 3246
Joined: Tue Jan 15, 2013 23:56
Location: г.Минск
Has thanked: 44 times
Been thanked: 634 times

Re: Response Curve in DevCfg appllied incorrectly

Postby Ron61 » Wed Jul 18, 2018 12:28

Unfortunately, I could not repeat it by your settings. At me all works 100%. :)

I now understand - you want to move to the right-upper, right-bottom, etc., that is, diagonally, it worked all the same at 100%. Or not? Why would suddenly?

Although in the curve settings, you can do this if you set the rightmost slider above the green line, which indicates 100% (corresponds to 128).

Sideslip
Posts: 40
Joined: Mon Nov 27, 2017 0:16
Has thanked: 5 times
Been thanked: 7 times

Re: Response Curve in DevCfg appllied incorrectly

Postby Sideslip » Wed Jul 18, 2018 19:43

I didn't even know the green line was there, lol. So I can manually correct for the deadzone by setting the final value to 138 (and smoothing the rest of the curve) and now achieve 100% X and Y in the problematic corners. That solves my problem, but I shouldn't have to exceed 100% to get it to register 100% if I am using a deadzone already. That is the whole point of the top deadzone after all.


I now understand - you want to move to the right-upper, right-bottom, etc., that is, diagonally, it worked all the same at 100%. Or not? Why would suddenly?


Yes, diagonally. The cut-out for the thumbstick is square as it should be (so that without a deadzone you can reach 100%... almost... in both X and Y at the same time just like with the X and Y of the joystick base). Because the corners are farther away from center, the stick actually tilts to a greater angle at the corners. Because the tolerance is so tight, the bottom of my thumbstick cap hits the main stick body before the shaft of the thumbstick does. That means with close to 0% deadzone, I cannot get the maximum X and Y values at those corners (only a problem for top-right and bottom-right for me).

I don't know why it doesn't do it for you. If you are doing it right (I have to use 4 or 5 pieces of very thick paper at the good corners), without any curve you should not be able to get 100% in that corner without applying a larger (10%-15%) deadzone. Then after applying a steep curve you should not be able to get anywhere near 100% input values even with a 25% deadzone. Oh and DON'T CALIBRATE after you place the paper obstruction. Otherwise you are bypassing the problem by assigning a new 100% position.

Just to check my theory, I tried to reproduce it with the X axis only by moving the stick straight left with no paper or obstructions. I set the deadzone to 0% and of course I only get an input value of 0 at about 270 degrees (using compass headings as reference). If I move the stick to roughly 260 degrees I start getting non-0 input in the 300-1000 range (Interestingly the Northwest area is less sensitive, maybe just due to how the sensor is positioned/rotated). So I increased the deadzone to where it stays 0 until closer to 230 or 240 degrees. With the deadzone now at 2% I apply a curve, and now the input value starts increasing above 260 degrees again even though I WAS able to get 0 up to 240 degrees with the curve disabled. I should not have been getting >0 until at least 240 degrees.

If I had a teleporter I'd come over and just show you guys, lol.


Return to “Technical Support”

Who is online

Users browsing this forum: No registered users and 16 guests