Exploring The Hall Effect For Haptic Feedback PS4 Joysticks

Modern gaming console controllers aren’t without their annoyances — Joy-Con drift, anyone? The problems might stem from design deficiencies, but we suspect that user enthusiasm and the mechanical stress it can introduce might play a significant role as well. Either way, [Marius Heier] decided to take a look at what would be required to build a better joystick and came up with some interesting results.

The first video below lays the basic groundwork, with a bunch of experiments with 3-axis Hall effect sensors, specifically the Texas Instruments TMAG5273 and TMAG5170. They’re essentially the same sensor with different interfaces — SPI for the 5170 and I2C for the 5273. Using just one of these sensors, he was able to build a joystick with the usual X- and Y- axis control, but also with a rotary axis. What’s more, he built a motorized version using two NEMA 17 steppers to mechanically drive the stick back to center.

The joystick is bulky, but it looks like he’s got plans for a much smaller one with [Carl Bugeja]-style PCB motors that should fit into a PS4 controller. That’s the subject of the second video below, which uses a different Hall sensor — an Allegro A1304 — and is mainly concerned with getting the output of a non-motorized but considerably miniaturized joystick stick talking the language that the controller expects. It’s not a simple process, but it seems to be coming along nicely, and we’ll be watching progress closely.

10 thoughts on “Exploring The Hall Effect For Haptic Feedback PS4 Joysticks

  1. I just want to know how he got force feedback on the stepper joystick. Does it drive the steppers as servos? Is there a compliant sensor of some kind between the stick and the coupling to the steppers? Or is it something else?

    1. I’m guessing it uses the hall sensor as feedback and drives each axis closed loop with the gains set to give reasonable springiness that changes in torque/strength the more off axis the stick gets (can be tailored to linear or even non-linear response since it’s all up to the gains set in the control loop).

      1. Stepper motors are usually driven with a high current to guarantee enough torque that they will move regardless of the load. Driving them with variable torque would require variable current, and therefore a more sophisticated controller than is typically used. Of course, these are not uncommon, just less common. In addition, you would need a sensor to provide closed-loop control. Of course, in this application, the joystick could give you that feedback. But for easier prototyping, you could just use a closed-loop add-on for stepper motors.

  2. ive done my own testing and ive come to the conclusion that hall sensors don’t automatically make your stick better. not nearly as much as a really high resolution adc does. i had better linearity with a vintage made in the u.s.a. milspec potentiometer than from any hall sensor ive tested. a high quality hall sensor and a good adc together can get really good results. or a higher end sensor with a purely digital interface (vector halls dont count, but thats more of a personal preference, as i like good axis isolation).

    and then you lose out on all that gained precision by making it a thumb stick. a good grip on a long stick with perhaps six inches of throw in any direction makes a good flight stick.

    i do like the force feedback stick design though. reminds me of the old sidewinder ff that had 2 big dc motors (technically servo motors as it gets feedback data via the optical sensor in the base). the optical sensor used was just the same kind as an optical mouse sensor (perhaps with different dsp firmware). id love to see that kind of setup on a modern high dpi mouse sensor.

    1. You’d have to wear a magnet as a ring. Sure if you stick magnets on the device it can cause issues, but magnetic fields are incredibly weak. So much so that even something like this requires very close spacing to the sensor to work in the first place.

  3. 1 they don’t have a high resolution ADC reading the PS4 joy toys (0-255 should be a hint), side hint you can’t change this
    2 mechanicaly resistive joy sticks wear out, the ones on the PS4 in particular are terrible compared to old Sony joy toys, this appears to have started with the PS3 joy toy design (I think hands free added enough cost, they cut the most important part’s { the joy stick } quality). Why is this important? The crap pots wear out all the time, with only 1 year of normal use I’ve found. Why do you think so many replacement parts are available? It’s a big problem and very annoying. For such an expensive device the joysticks are utter shiest.
    3 The reason for the hall devices, these don’t have the wear factor to worry about. Or better put you only need to replace them once and they aren’t likely to be drifting weird directions like the mechanical replacements because the springs are cheaply designed.
    Remember replacing those things is not an easy task.
    I had this idea since I lost my first PS4 joy stick I have 4 with 3 that need repair yes lazy and I didn’t want to mess them up without studying. Too bad I spend more time designing analogue electronics? (more fun).

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.