Game controllers: A built-in dead zone...?

I want to check whether what I’m seeing is to be expected, if I may:

I’m finding that, if I use the “device tester” sample-program to examine my controller’s axes, there seems to be a small dead-zone near zero on all axes.

That is, if I carefully move one of the thumbsticks in a given direction away from the centre, there’s a small region in which there’s no response, and if I carefully move one of the thumbsticks inwards towards the centre there’s a point at which the response suddenly snaps to zero.

I presume that the device-tester isn’t implementing this dead-zone–and indeed, it seems to correlate with the results that I’m seeing in my game.

So, is this normal with controllers, that there’s a built-in dead-zone outside of any set in software? Or does this reflect the fact that I have a (very) cheap controller, with a more-expensive one perhaps lacking that dead-zone? Or am I doing something wrong somewhere…?

Usually, the opposite becomes an issue, too much sensitivity around the rest point – which calls for implementing some margin yourself.

I can’t say whether what you’re seeing is normal behavior, or perhaps something built into the controller firmware, or even low resolution sensing at the thumbstick array. That said I believe I’ve observed both behaviors amongst different thumbstick controllers over the years, too much dead zone and too little.

Hmm, interesting, and thank you!

I do indeed have a dead-zone implemented into the game itself. However, this other dead-zone that I’m encountering is interfering with the handing of the game: it seems to be axis-specific, meaning that when moving the stick in a circle the output tends to “snap” to the four cardinal directions.

I’m guessing, then, that it is indeed an issue with the controller itself!

1 Like

Update: Yup, at prompting from a friend I found a gamepad -tester and -calibrator for Ubuntu, and… it does seem to be a device issue. I don’t know enough about the values given in the calibration tool to know what I might set them to, but at least this seems to somewhat confirm the source of the issue!

It’s the Linux gamepad driver, not Panda, that is processing the raw data before it arrives in Panda. You can use jscal -c or other utilities to calibrate it.

Ah, I didn’t know about jscal–that does look useful, thank you!

That said, even after calibration I seem to be seeing the same behaviour. However, I do agree that it doesn’t seem to be a Panda problem. (If anything, I suspect that it’s a “cheap controller” problem–although I wouldn’t rule out it being a “keyboard-and-mouse-gamer trying to figue out how to set up a controller” problem… ^^; )

I have two game controllers with sticks. I can say, that I don’t see any dead zone. My OS is Windows.

That’s good to know, and reassuring! Thank you! :slight_smile:

1 Like