Flying the Friendly Skies with A Hall Effect Joystick

There are plenty of PC joysticks out there, but that didn’t stop [dizekat] from building his own. Most joysticks measure position mechanically using potentiometers or encoders. Only a few high-end models use Hall effect sensors. That’s the route [dizekat] took.

Hall effect sensors are non-contact devices which measure magnetic fields. They can be used to measure the position and orientation of a magnet. That’s exactly how [dizekat] is using a trio of sensors in his design. The core of the joystick is a universal joint from an old R/C car. The center section of the joint (called a spider) has two one millimeter thick disc magnets glued to it. The Hall sensors themselves are mounted in the universal itself. [Dizekat] used a small piece of a chopstick to hold the sensors in position while he found the zero point and glued them in. A third Hall effect sensor is used to measure a throttle stick positioned on the side of the box.

An Arduino micro reads the sensors and converts the analog signal to USB.  The Arduino Joystick Library by [Matthew Heironimus] formats the data into something a PC can understand.

While this is definitely a rough work in progress, we’re excited by how much [dizekat] has accomplished with simple hand tools and glue. You don’t need a 3D printer, laser cutter, and a CNC to pull off an awesome hack!

If you think Hall effect sensors are just for joysticks, you’d be wrong – they work as cameras for imaging magnetic fields too!

12 thoughts on “Flying the Friendly Skies with A Hall Effect Joystick

    1. Wow, I just noticed it got on hackaday.

      Yeah, the cost wasn’t really a concern (although in the past, hall effect joysticks used to be expensive) – the main value for me is my own firmware where i can correct non-linearities and implement everything as I want it.

      I’ll release the firmware as open source when it’s a bit more fleshed out – plus as of now it is completely trivial as the USB joystick library takes care of all the complicated parts.

      For one thing I like to have absolutely no deadzone and linear spring response with no centering detent. Linear through the middle. I do like having a slight friction because this way I can leave the stick in position that trims the aircraft straight when imperfectly trimmed (which wouldn’t be very realistic).

      This is because I only play realistic simulators of WW2-ish era aircraft, and as such the airplanes do not fly straight with the joystick at zero, furthermore aiming requires very high precision.

      Also in the longer term I do want to perhaps proceed to building a force feedback joystick.

  1. A hint to [dizekat]: way back before there was such a thing as a 3D printer, I made custom shaped enclosures/controls using rigid foam (the green foam used by some florists and many crafters) carved to the approximate shape, finished with Bondo, then painted. You might try something like this over the stick.

    Funny coincidence, though: I just ordered my first 3D printer a few hours ago. The first project I was thinking of doing is a joystick handle for flight simulators. I hadn’t thought about Hall effect sensors, but they DO have a distinct advantage over pots, so I may try that.

  2. Nice work! The Sega Dreamcast controller used Hall Effect sensors for its analog inputs (the analog stick and the two triggers). I think the Xbox One controller may use them for its triggers as well. Hall sensors also have the nice benefit of not wearing out like potentiometers do.

    1. Unfortunately the joystick on the Dreamcast controller dies from age instead when the magnets slowly dies. If I don’t remember wrong, that is the most common failure point on the Dreamcast controller.
      In this case he can easily replace the magnets so it should not be a problem 10-20 years in the future + hobby project includes maintenance by default.

      1. I would say the most common isdue with the dreamcast controllers is broken trigger buttons, the plastic mecanism does easy get broken so the trigger wont respond and feels stuck. :/

    1. Another highend way to make a joystick is with staingauges. They don’t move when you push them, but measure force on two axises. They are also very tactile and accurate. Used for millspec drone txs and fighter jet sticks.

      1. Yeah I was thinking of trying out strain gauges. I don’t think I want a non moving stick, but they would be good in a force-feedback joystick to measure stick force and use closed loop control on the servos (which would allow to use cheap motors in the servos).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s