Jump to content

How does DCS talk to Force Feedback Joysticks?


Recommended Posts

I'm working on designs for a full deflection force feedback stick for use with DCS, but while I've mostly got a handle on the mechanical part, I honestly don't know where to start with the software side of things. Does anyone know what protocols or libraries DCS uses to send FFB signals to compatible sticks? Are any details published anywhere?

If you disapprove of this post, please feel free to give me negative rep. If you approve of this post, please feel free to give me negative rep.

Link to comment
Share on other sites

FFB in DCS (as well as other sims like IL:2) uses the DirectInput FFB API. The API consists of a number of force types with direction, magnitude, and frequency (whichever one applies to the force being applied). These settings are sent to the joystick and stored in 'banks' so that multiple forces can be layered on top of each other. The joystick must know how to interpret these commands and convert them to actual motor movements.

 

If you want to check out what the commands look like, you can install vJoy, then download their Feeder SDK:

 

http://vjoystick.sourceforge.net/site/index.php/download-a-install/download

 

In the SDK, there is an app called FfbMon under the apps folder. If you build it, the .exe will output all the FFB commands that are sent to the vJoy device. If you don't want to build it yourself, I have a pre-built version here:

 

https://drive.google.com/open?id=1IafRADoaqu7CqcpFOjALZ9mrKv_JYXlF

 

As an example of what the FFB commands look like, here's a screenshot from an app I'm currently working on. It's basically the same output as FfbMon, but more condensed:

 

oFlHzVTl.png

 

An easy way to test FFB without having to start up DCS every time is to download ForceTest.exe from the bottom of this page:

 

http://www.fs-force.com/support.php

 

It will allow you to apply a couple of force effects and see what the commands sent to the joystick are. The important thing to keep in mind is that the FFB commands aren't 'raw' commands that tell the motor what position they should be in, but are rather effect types like periodic, ramp, spring, friction, etc. You can see a list of the commands here, under section 5.3.1:

 

https://www.kernel.org/doc/html/v4.17/input/ff.html

 

The joystick must be able to interpret these commands and convert them to the correct motor movements.


Edited by Ranma13
  • Thanks 1
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...