1

Modern game consoles are beset by "joystick drift" which is due to their potentiometer's readout being unbalanced when the pot is at its physical 50% point (that is, when no force is applied to the joystick). By unbalanced I mean the resistance from the wiper is no longer equal to the - and + pins.

It seems like this could be fixed by adding a resistor (or another pot, to make it adjustable) so that the wiper pin is electrically biased back toward being balanced. To give a concrete example, if a 10k pot reads a higher resistance to the + pin than it should at physical 50%, you could apply a 30k resistor between the wiper and + to reduce that resistance.

This works in the gross sense - I can find a resistor so that the physical 50% point is 50% between - and + electrically. But I find that it messes with the linearity of the joystick pot, such (for example) the physical 55-70% range maps to roughly the same joystick value when read out using a gaming console, with some non-monotonic parts of that range where pushing the stick to the left actually causes the joystick to report that it's been moved to the right a tiny amount. This could be noise in an electrical dead zone, but it's not a hardware defect - I've observed it multiple times with different xbox one analog joysticks. And if you push past that non-monotonic zone, the stick works right, so it's not (exactly) an issue of range reduction.

This fellow on youtube thinks he's solved it: https://www.youtube.com/watch?v=1yluzJre9D8&t=526s, but his solution makes no sense to me - he's hooking up two adjustment pots per analog stick axis, but it seems to me that electrically one should have the same effect as the sum of the two. Why (and if) that matters is where I'm stuck.

Below is a cartoon of what I observe. Purple line is ideal (x=y), blue is the distortion we expect from adding a resistor, and red is roughly what I actually get after adding that resistor. Looks a little like pot noise but it's consistent between controllers and only on one half the range, as diagrammed.

cartoon of what I'm seeing vs ideal

Here's a video of the odd behavior observed after adding the adjustment potentiometer: https://www.youtube.com/watch?v=0VSZVC4Xn2Y

Al Ro
  • 111
  • 3
  • 3
    Just a heads up, a diagram or schematic of what is being discussed is generally perferred over a link to a video. – Tom Carpenter Jun 03 '21 at 19:39
  • Whatever you decide, the cheapest and most efficient way is to buy a new controller. –  Jun 03 '21 at 21:05
  • 1
    cheapest AND most efficient? That's definitely false, as it's possible to get replacement analog sticks and/or pots for around $2. – Al Ro Jun 03 '21 at 21:12
  • +1 for referring to your graph as a cartoon, I like that. – Frog Jun 06 '21 at 04:45
  • Your controller is worn out. Buy a new one, or replace the joystick with a high quality mechanism that has mechanical centering adjustment. – Bruce Abbott Jun 06 '21 at 07:19
  • Bruce, the question isn't whether I should trash this, but why it can't be fixed by using an additional pot as suggested. – Al Ro Jun 06 '21 at 16:44
  • Note that your joystick is likely not going to remain fixed even if you do fix it. I don't know about the xbox ones, but I know the joystick drift in the nintendo switch is caused by poorly-made carbon potentiometers, where the wipers scrape up carbon dust after a while, and that (conductive) dust moving around in there is the cause of the problem. Since the dust isn't fixed, the drift isn't fixed, so any static fix wouldn't work. – Hearth Jun 06 '21 at 17:13
  • @Hearth, that's a good point, however it may be more applicable to the switch than the xbox one controllers. I tried taking the pot apart and cleaning the wiper and pads with isopropyl, and it made no difference, either to the drift or the odd non-monotonic behavior after applying the new resistor. There may be uneven wear, but I still don't see why that would only be revealed after adding the resistor. – Al Ro Jun 07 '21 at 04:37

1 Answers1

1

The solution to "stick drift" that the video presents suggests adding adjustable resistors \$P_{\text{hi}}\$ and \$P_{\text{low}}\$ like below to compensate for the resistance \$R_{\text{offset}}\$.

The goal is to make the voltage at the pot wiper equal to exactly \$\frac{1}{2}V_{cc}\$ when the wiper is positioned halfway.

schematic

simulate this circuit – Schematic created using CircuitLab

This goal can be achieved, but you will introduce non-linearilities in the relationship between the pot's wiper position and output voltage.

This Desmos interactive graph is just one way of modelling the problem and demonstrates the non-linearity issue:

https://www.desmos.com/calculator/ux37xve7e0

There are sliders for controlling P_low, P_hi and R_off. Look at the graph for values of x between 0 and 1.

For a given value of R_off you can adjust P_hi and P_low to have the graph go through the point (0.5, 0.5), but it will also introduce some curvature in the response. Whether this is acceptable is up to you, of course.

Transistor
  • 168,990
  • 12
  • 186
  • 385
ErikR
  • 4,897
  • 11
  • 18
  • Thanks that's helpful. It seems that both methods are going to introduce nonlinearities. What I don't understand is why have (for instance) p_low in the circuit, if the issue is that you need to bias the pot wiper toward Vcc. Is that helping with the nonlinearities somehow?" With the demo I'm unable to reproduce the kind of non-linearity I saw with my single resistor solution. – Al Ro Jun 03 '21 at 21:06
  • The offset maybe either above or below the middle point. In my schematic and in the Demos simulation I assumed the offset was above so when midway the joystick would read lower. If the offset was on the lower leg then the joystick would seem higher than it was supposed to be. Having both P_low and P_hi allows you to compensate for either case. – ErikR Jun 03 '21 at 21:09
  • You'll see more of the non-linearity effect when P_low and P_high are smaller relative to the pot resistance (10K). Experiment with R_off = 600, P_low = 12K and adjust P_high to get things centered. – ErikR Jun 03 '21 at 21:14
  • That makes sense and was my hunch it was for flexibility - but since it's easy to measure the offset before soldering, two pots is kind of overkill unless it also somehow improves the nonlinearity, which the author of the video claims it does. – Al Ro Jun 03 '21 at 21:14
  • That interactive graph is great; I modified it so that it was possible to see what would happen with just one bias and with the desired target value to compare: https://www.desmos.com/calculator/s4ew5hntm4. And what I see doesn't look much like my problem, which is something like an s-curve where you get an extreme flattening, and perhaps even to the non-monotonic level. I'll see if I can post a photo. – Al Ro Jun 03 '21 at 21:31
  • can only add figure to question, so that's where it is. Based on the interactive model, you can only make the nonlinearity worse by having two resistors/adjustment pots, not better, so the youtuber's claim is theoretically busted, though empirically it may still be correct. – Al Ro Jun 03 '21 at 21:55