I don't know if here is right place to ask, but I wondered how FFB joysticks calculate the force.

At least it should work like this:
[Sim] ==(Speed, angle and some external force working on your plane) ==> [Some calculator] ==(Force on control stick and rudder)==> [Some function] ==(Target torque or rot speed of motor)==> [Motor Driver]
where
[ - ] : software or program
==( - )==> : data
As for software, at least we have
  • flight sim itself
  • device driver of joysticks
  • built-in software inside of the joysticks


And my particular questions are:
  1. What each of the software actually does? (For example, calculating the force can be done by flight sim, device driver and even in built-in software. I want to make clear which part does each of the software takes)
  2. Is there common format (protocol?) for the data? (I think there is, since we can use FFB sticks for several different sims.)


I will appreciate any information.