Part review – Sparkfun Thumb Joystick

Hello readers

Today we examine an inexpensive yet fascinating little input device – the thumb joystick. Many people would recognise this as similar to the joystick in various types of gaming consoles, and they would be right. Let’s have a look:

joysticksmall

In the image above the joystick has been soldered into the matching breakout board. Unless you are making your own PCBs, you will want the breakout board:

bboard

The joystick consists of two 10k variable resistors, spring-loaded with centre return; also a SPST button that is activated by pushing down on the joystick:

joysticksidesmall

In order to use this joystick, we need an idea of the values that it can return. I have done this in three ways:

First of all, I connected a multimeter and measured the resistance of each axis. For the vertical axis, dead centre was 3.77k ohms, maximum up was 4.7k, with a maximum of 5.9k between centre and maximum – very odd. The vertical minimum was 83 ohms. For the horizontal, dead centre was  around 3.73k ohms, full left was 4.78k, via 5.38k; full right was 180 ohms without any odd high values in between. However, those values didn’t feel right.

Secondly,  I have recorded a visual representation of the horizontal and vertical axes’ effect on the supply voltage, using my little oscilloscope. With regards to the following two video clips, the supply voltage is 5V; the ‘scope display is set to 1V/division, with 0V at the bottom of the screen.

The horizontal axis:

and the vertical axis:

Finally, I connected the horizontal and vertical output to  analog inputs on my Arduino, and used analogRead() to see how the joystick returned analogRead() values. The following video clip demonstrates this using an LCD to display the values. Furthermore, here is the sketch used for the following demonstration: demo sketch.pdf

It would seem that there is a lot of ‘dead area’… postions where there is no change in reading, where one would assume there to be a change. Again, this can be programmed out in your sketch by a little calibration and measurement.

Now we know what values it returns, we can start to understand how to control things. When it comes to use the joystick in your own projects, it would pay to recreate a measurement circuit and note down the values your joystick returns; in order to be able to calibrate your software to use the joystick appropriately you may need to compensate for the hardware irregularities of the joystick.

Overall however, it is an interesting and easy product to integrate into your projects. This post today is just an introduction, later on the joysticks will be used in other projects and so on. High resolution photos are available on flickr. And if you enjoy my tutorials, or want to introduce someone else to the interesting world of Arduino – check out my new book “Arduino Workshop” from No Starch Press.

In the meanwhile have fun and keep checking into tronixstuff.com. Why not follow things on twitterGoogle+, subscribe  for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other –  and we can all learn something.

The following two tabs change content below.

John Boxall

Founder, owner and managing editor of tronixstuff.com.

11 Responses to “Part review – Sparkfun Thumb Joystick”

  1. Mats Engstrom says:

    Yea, I noticed the same thing. There’s a huge dead zone in the middle that is exaggerated by the spring load action. It’s really annoying….

    I’ve got a bag with 10 or 15 of them here, maybe I’ll find a good user for them some day. Or else they will be put in a box joining so many other odds & ends that I’ve bought in the hope of possibly make something cool some day.

    Maybe my wife is right when she tells me not to get so much crap without actually knowing exactly for what I’m going to use it. But I like buying stuff dammit! :-)

    • John Boxall says:

      Hello Mats
      Thank you for dropping by. You and I share the same problem… Farnell were clearing out non-RoHS parts here in Australia, I now have about 10 kg of capacitors…
      However from a positive outlook, the more stock you have, the easier it is to make something without going out :)
      cheers
      john

  2. Jeff ò¿ó says:

    Hello Guys,

    I’ve been trying to wire a secondary pot to a Xbox 360 joystick pot with poor results. I used a 10K slide pot with 65mm of travel. The on-screen object does not move until the slide is either all the way right or left and then the on-screen object races to the edge of the screen. (I’m using Kaboom in Arcade on Xbox 360 as a test program). Should I try using a 5K pot instead of a 10K? Also, are both exterior posts used with the wiper or should I only use one of the outside posts and the wiper?
    Is the joystick pot linear taper or audio taper?
    I know this is a lot of questions, but it’s getting very frustrating trying to do what should be a simple task.

    Thanx,

    Jeff ò¿ó

    • John Boxall says:

      Hi Jeff
      Interesting questions. To be honest I haven’t been one to use an XBox, but we’ll have a go. When wiring up your pot, use the centre pin and one of the outside ones. With regards to which pot to use, I cannot help you. However a few months ago I had a conversation with Colin Fogle from http://www.reflectzyn.com who is very interested in the type of things you are doing, perhaps you should contact him.
      Thanks for dropping in!
      cheers
      john

  3. Jeff ò¿ó says:

    Hey Guys,

    I’ve looked over the web site (http://www.reflectzyn.com) as well as following some of the links to http://slagcoin.com/joystick/pcb_wiring.html which is very descriptive. Everything seems to indicate that using a linear 10K pot should work for either axis (I’m working with the horizontal axis).

    So far, neither a rotary or slide pot has worked. And I’ve switched the wires around as well just in case the center post is not the wiper. I’m still getting no variance. The position is either all left or all right with no stopping in-between.

    The joystick still works as an analog positioner when I check it, so nothing should be damaged. But soldering wires to the joystick posts on the PCB and then attaching those wires to a pot (rot or sld) gives nor variability.

    The joystick is a Mad Cats Arcade Game Stick which uses a 10K pot. The PCB seems straight forward with no weird wiring going on around the joystick. So far, all I’ve done is line the pockets of Mouser while getting no where.

    Jeff ò¿ó

  4. aurelrica says:

    hi to all, i’m building a controller for my robot and i started to look at the playstation joystick. the problem with this non originall parts from sony is that are crap mostly. the original sony joystick has the potentiometers build for that purpose if you do’nt belive me look at this guy tutorial on how to interface the ps2 joystick. now i’ve tried a joystick no name and i try an originall sony on the console game…. there is no need to tell you witch performs better.
    http://sites.google.com/site/mrdunk2/ps2controlleronanavr
    source code included

  5. jorge says:

    You are certain that aren’t puting them in paralel???

    Seems to, gives wrong reading :)

Trackbacks/Pingbacks

  1. [...] Your joystick contains two parts called “potentiometers”, one for the x-axis and one for the y-axis.  As you move your controller off center, the potentiometers will send different voltages to your console to tell it where you are aiming.  The “Dead Zone” occurs because the potentiometers aren’t seeing any change in your positioning until you move the stick past a certain point.  Notice at the beginning of this video how far he moves the stick before it measures a change (for those interested, he reviewed the part here): [...]


Leave a Reply

Receive notifications of new posts by email.

The Arduino Book

Arduino Workshop

Für unsere deutschen Freunde

Dla naszych polskich przyjaciół ...

Australian Electronics!

Buy and support Silicon Chip - Australia's only Electronics Magazine.

Use of our content…

%d bloggers like this: