Force Feedback Joystick

(Edmund Byard) #1

Greetings all. It was a pleasure to meet you all this evening.

As discussed at the shed I am working on building a open source FFB joystick and at present am trying to assemble a test rig so I can get started on programming the effects the final product will use.

If any one is interested the main discussion of the project is happening on the Eagle Dynamics forum (makers of Digital Combat Simulator):

The discussion is getting a bit lengthy now but on the whole it has been most encouraging, though lacking in some of the more practical details of how to actually build a prototype.

Here are a few concept renderings done by one of the contributors showing what we are thinking the final product will look like:

(sorry, I’m only able to upload one image)

Though I would dearly love to have such a joystick to work with at this stage the project is far from being realised so I will have to make do with a simple test rig in order to hone my programming skills, and it is this test rig I am hoping to be able to scratch together with the help of your workshop.

At this stage I am thinking a single axis lever should be enough to get the basic idea down and I’m hoping to make a basic joystick with a single stick that one can hold between their finger and thumb (much like an R/C transmitter gamble) that is both driven by a motor and read like a regular joystick.

Any thoughts or suggestions you have on how to achieve these first steps would be greatly appreciated.

All the best,
And thanks,


While looking for a screwdriver & a box at MHV last night realised there are quite a few stepper motors there for use, including on with gear system that would be an excelent start. Look in bottom right draw of electronics soldering bench.

(Edmund Byard) #3

Thanks Spanner. I’ll have a look when I’m there next.

Getting the actual stepper motors isn’t too much of a problem though. The main problem with steppers seems to be identifying motor controllers that would be appropriate to drive them. In particular I need to be able to control the amount of force directed to the motors at very precise intervals. While the individual steps of a stepper motor can be controlled with great precision finding a controller that will also allow one to regulate the force with which the motors steps is a much more challenging prospect (or at least it is for me).

Do you know of any controllers that would be available that will allow fine grained control over not only the individual steps but also the stepping force, something with which I could simulate a spring or rubber-band type sensation? This is the piece of the puzzle I’m really lacking at the moment.


Main point I was making about that stepper at the space was the gear train - might give you at least a good start on evaluating gear ratios required.

The changable step force, is what I was trying to talk about when I mentioned the variable current controllers.

One such is SureStepr SD2224 from
Take care to select the one with digipot.

There are probably others, but the only ones I can think of at the moment are built into a full 3D printer/CNC/PNP controller - ie not available as a separate controller module. Search on “digipot stepper” finds some more.

Just thinking now, you could also try with simple/common controllers and dynamically change the microstepping (which changes steppper torque). This can easily be done - just needs 2 or 3 digital pins to change the microstepping. My absolute guess is that common/cheap controllers can change microstepping fast enough to produce effect you need.

(Edmund Byard) #5

Fair enough. It will no doubt be worth looking at.

Just to begin with though I’m leaning toward simply using NEMA17 motor with a 100mm leaver.
I’ve been looking at these motors which claim to have 26Ncm of holding torque (which I hope is what I’m after). Correct me if I’m wrong but from what I understand a 26Ncm motor should be able to resist a 250g loading on a 100mm leaver. While that’s not particularly strong it should be enough to work with for the test rig. Even if the “pulling” force is less than the “holding” force I’m hoping it will still be enough to get away with not needing a gear reduction, but I’ll check out what you’ve come across there at the shed all the same.

I did spend an evening looking up “digi-pots” but it was all a bit beyond me at that stage. To be honest I’m still struggling to read the specs of the SD2224 controller you’ve linked to there, but if you think it will be appropriate I’ll be willing to take your word for it :wink: At the listed price it’s not disastrously bad if it turns out not quite to be appropriate. Are you able to workout how many levels of drive it has available, and are these levels essentially linearly proportioned? I’ve been trying to look it up but just don’t understand what I’m reading. 8 levels would probably be enough to get an idea but 256 (or 1024) would be a lot better if they are available. And does “digipot ready” mean it includes the “force controller” or will I still need to get one of those separately?

I also added these 5mm to 6mm shaft couplers to my order.

And then there’s the power supply as well:

I will also need a bracket or two, but I believe that should just about cover it.
Can you think of anything else I should order?


[quote=“Slartibartfast, post:5, topic:1497”]
26Ncm motor should be able to resist a 250g
[/quote]…that sounds about right, as does the rest of your discussion there. But there are a LOT of design factors, including behaviour/torque when at rest as well as when moving and the desired acceleration and speed and gear ratios and backlash impact and losses etc. I reckon much easier to just get something to start with, as you are doing, then work out more likely values for all the design details.

[quote=“Slartibartfast, post:5, topic:1497”]
And does “digipot ready” mean it includes the “force controller” or will I still need to get one of those separately?
[/quote] … in short digipot is a way of controlling the current into the motor, which is a way of controlling the power to the motor, thus controlling output holding/moving torque. The “digipot ready” is a confusing way of saying the stepper controller is ready to be controlled by a compatible/capable 3D printer or CNC controller, or in your prototype situation your Arduino/teensy.

[quote=“Slartibartfast, post:5, topic:1497”]
how many levels of drive it has available
[/quote] … it is analogue, so technically infinite levels. In practice it depends on how you create the analogue signal. A Teensy 2 and most common Arduinos can’t do this directly and need some simple components, or need an additional IC/shield, or you can pick and Arduino that can produce analogue output directly. for example Teensy LC, 3.3, 3.5, 3.6 all can produce 12 bit analogue.

Honestly I think you are trying to juggle too much design detail at the moment. Start simple (really really simple) and build up, you will have a lot less confusion, more confidence and progress faster. This will also help you focus on the different capabilities of a stepper and the different ways you can control it and the different variables that allow you to tweak behaviour etc.

Just start with what you already have, what is at the space and what has been offered to you on loan, get started and by the time your orders arrive, you will be well on the way to jump to next level and start making the system behave as an FFB!