Build Your Own Force-Feedback Joystick

Force feedback joysticks are prized for creating a more realistic experience when used with software like flight sims. Sadly, you can’t say the same thing about using them with mech games, because mechs aren’t real. In any case, [zeroshot] whipped up their own stick from scratch for that added dose of realistic feedback in-game.

[zeroshot] designed a simple gimbal to allow the stick to move in two axes, relying primarily on 3D-printed components combined with a smattering of off-the-shelf bearings. For force feedback, an Arduino Micro uses via TMC2208 stepper drivers to control a pair of stepper motors, which can apply force to the stick in each axis via belt-driven pulleys. Meanwhile, the joystick’s position on each axis is tracked via magnetic encoders. The Arduino feeds this data to an attached computer by acting as a USB HID device.

We’ve seen some other great advanced joystick projects over years, too. Never underestimate how much a little haptic feedback can add to immersion.

12 thoughts on “Build Your Own Force-Feedback Joystick

  1. Cool project, its quite complicated with force feedback. Do other joysticks (COTS ones, Logitech, thrustmaster etc) also have force feedback?

    I’ve been thinking of making something like this for my little cousin. He’s really into aircraft sims.

    1. I wish! I feel NO JOY when using my Logitech g x52 hotas. I think one of the biggest joys I got when I was forced to switch to joystick controllers because of shoulder issues, was this immersion factor that you just don’t get with a non vibe motor augmented device. I wouldn’t even be that mad if your standard hotas setup came with a basic vibe motors like the standard game pad. Plus I’m a sim racer with way too much invested in racing wheels, so it’s just such a joyless feeling for me to have this very dead feeling stick when I’ve been used to FEELING most of my games in one way or another for the few couple decades or so now. I even shelled out that extra cash for the solenoid enabled sunder light gun despite the fact that it’s a very surface level effect activated by the trigger pull rather than any game settings. The joys of my bargain n64 rumble pack with poorly soldered joints is all coming back to me now too 😂

  2. There are some pretty fresh force feedback joysticks and flight yokes out there now, coming in from the usual sim racing vendors. Yeah it’s expensive – FS related, I heard that Microsoft Flight Simulator had data for control surface forces (that is, the ailerons on the wing), but not for the human control levers. I’ve only flown small GA that are fully manual, but it seems easier to map than large aircraft with hydraulics, etc.

    I’ve also heard of (but not tried) these force feedback joysticks acting as gated shifters for the sim (car) racing people. And flight sims too, DCS, etc.

    Maybe less of a dead concept, more of something that’s time has come. Up until now, the visuals have been the real deal breaker for immersion.

  3. I have an old gameport Microsoft Sidewinder Force Feedback Pro joystick, and built an usb adapter for it using adapt-ffb-joy (https://github.com/tloimu/adapt-ffb-joy/blob/wiki/README.md). The adapter already handles adding more analog inputs for additional axes, and I think it should be possible to implement a full HID compatible force feedback joystick directly in the AVR code, perhaps ripping away the MIDI conversion code to save some memory.

    1. The unstable centering, and the deadzone that compensated for it, is what made me stop using that. Try putting a finger in the lightbeam and letting the handle go. Watch the stick dance.

    1. Biggest one I can think of is brushed motors generally have a preferred rotation direction, and this needs to go either way. But you certainly could with the closed loop controls design the gear ratios and calibrate the response to use any motor technology – I’d suggest steppers were selected as they are well defined on the data sheet and easy to drive relatively accurately to a rotation while usually being packaged in a much easier way to attach than other brushless – with the stepper you can test the movement works and the gear ratio selected looks good without needing to worry about the closed loop immediately.

  4. Showing that it is very difficult it attach a magnet to the back of the stepper motor shaft is fun, but it’s very frustrating not to see how this problem was actually solved…. ahhh… why isn’t that part shown?!?!

    1. Sticking the feedback on the motor shaft seems fundamentally flawed. External forces won’t be registered until the motor shaft moves, which implies that the motor skipped steps. It probably doesn’t feel very good. The feedback needs to be closer to the joystick, and there needs to be some amount of compliance so that the external force can be measured independent of stepper motion. A set of torque transducers would be best. This project would have panned out a lot better with a couple brushed DC motors instead of steppers.

Leave a Reply to JeffCancel 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.