I'm trying to work with an Arduino and Analog thumb stick to get values for a simple differential drive robot I'm working on. The Keyes_Sjoys Arduino Joystick Module I have in my possession is giving me some strange numbers.

Following axises Data I have:

  • X-axis range of 0 to a shaky 470-520 with a center value of 40.
  • Y-axis range of a solid 4 to solid 1023 with a center value of 605.


I haven't used analog sensors before but it seems pretty obvious that my X-axis ranges should feel somewhat similar to the Y-axis but they don't. In addition, the X-axis hits zero way way before even coming close to the edge for its operating range.

Is my sensor broken (it's new), or is there some way I can recalibrate the potentiometer?

Note, I also asked this over on Electrical Engineering Stack Exchange.


It certainly sounds like the joystick is broken, but in Robotics, nothing is certain. Some things to try:

  • Swap over the X and Y wires going to the Arduino. Which axis exhibits the problem now?
  • Disconnect the joystick from the Arduino, and power it up on its own. Using a multimeter, measure the voltage on the X axis wire as you move the joystick. Does this make more sense? If so, then there's something wrong with the way it's connected to the Arduino, or something wrong in software.
  • Disconnect the joystick completely from its power, and use the multimeter to measure the resistance between the X axis signal wire and the GND wire. If this doesn't make sense, then there's likely a fault in the joystick. Possibly a failed solder joint. This could be fixed by simply re-heating the solder joints on that pot.
| improve this answer | |
  • $\begingroup$ Strange, joystick isn't broken, just that Arduino analog pin. When I shifted everything over two pins, worked like a charm. $\endgroup$ – Monte Carlo Sep 2 '13 at 14:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.