Ultrawipf / OpenFFBoard

OpenFFBoard is a universal force feedback interface for DIY simulation devices
https://hackaday.io/project/163904-open-ffboard
MIT License
543 stars 115 forks source link

Implement missing FFB effects #16

Closed Ultrawipf closed 3 years ago

Ultrawipf commented 3 years ago

Most effects are not used by most games but all effects reported as supported should be implemented in some way.

Supported are currently (edited with current devstate): Constant force Sine Square Spring Damper Friction (Needs tuning) Deadbands for spring and damper Inertia effect (Needs tuning) Triangle Envelope (kind of) Sawtooth Always on damper

Missing: Optional custom force (or remove from descriptor as its not really standard anymore) Testing multi axis effects Always on filter and inertia

arilink-tech commented 3 years ago

I did not find the relevant calculation formula in the USB PID document. Does the force feedback calculation formula need to be implemented by myself?

Ultrawipf commented 3 years ago

I did not find the relevant calculation formula in the USB PID document. Does the force feedback calculation formula need to be implemented by myself?

There are some examples how to implement the conditional effects. But its already being worked on in the active development branch.

arilink-tech commented 3 years ago

How long will it take to perfect these force feedbacks? I will upload a document later, which contains the types of force feedback output by different games.

Ultrawipf commented 3 years ago

Well. Perfect depends on the game and hardware. But the goal is to make it as tunable as possible and provide a good feel with most setup. Overall i think it is pretty good when tuned properly but it needs a lot of testing and comparing to further improve it.

Having a list of games and which effects they use would be great. Maybe also for what scenario a different effect is used if possible (like spring only in menu, or sine for extra rumble) and at which rate updates are sent if known.

arilink-tech commented 3 years ago

test result: image

arilink-tech commented 3 years ago

From the results, Friciton needs to be supported. Traingle SawtoothUp SawtoothDown is unnecessary.

jonlidgard commented 3 years ago

All effects apart from custom are already implemented, although there is stills some tweaking to do with a few of them (friction, inertia - rarely used). If you use the latest dev version (rtos_multiaxis branch) you can run a game & then, using the Configurator app, issue the 'effects' command & it will tell you which effects the game used. Essentially any game that respects the official FFB spec should work, some work better than others but that is down to how the game is coded & not something we can change.

jonlidgard commented 3 years ago

Friction is supported but we're still experimenting with different gains & filteringt to improve the feel.

arilink-tech commented 3 years ago

Ok, I will try the rtos_multiaxis branch. I am currently modifying the code in the Configurator and the main branch to get the effect of the game.

jonlidgard commented 3 years ago

One thing that isn't implemented yet is assigning an effect to a button e.g. pressing 'fire' button gives feedback which might get used in some games like DCS

arilink-tech commented 3 years ago

Does the program need to adjust the gain and filtering for different motors to improve the feel?

jonlidgard commented 3 years ago

Ok, I will try the rtos_multiaxis branch. I am currently modifying the code in the Configurator and the main branch to get the effect of the game.

No need, that functionality is already implented in the dev branch. (You'll need the rtos_multiaxis branch of Configurator too)

jonlidgard commented 3 years ago

Obviously different motors will require different tuning according to user prefs, etc.

arilink-tech commented 3 years ago

Okay, got it

arilink-tech commented 3 years ago

Obviously different motors will require different tuning according to user prefs, etc.

I see that the project in your warehouse is about flight simulators. I am very interested. Can I leave my contact information to learn from you?

jonlidgard commented 3 years ago

Yes, I've been helping with multi-axis support & testing with XPlane - still early days though, a few issues to solve re having multiple driver boards attached

arilink-tech commented 3 years ago

是的,我一直在为XPlane提供多轴支持和测试方面的帮助-尽管仍处于初期阶段,但仍需要解决一些问题,以解决是否需要连接多个驱动器板的问题

discord --->arilink#4555

arilink-tech commented 3 years ago

@jonlidgard Hello, I am trying to use rt_multiaxis configurator and running run.bat prompts No moudle named ‘intelhex’. I tried to install intelhex on windows but failed. Could you please ask for your help?