Jump to content

G940 - Force Feedback - discussion


Recommended Posts

The primarily idea of this thread is:

 

- clarify some terms related to force feedback usage in general

- collect some suggestions in respect of a proper ff implementation

- considering the capabilities of the G940 in particular

- update and share my current G940 firmware patch

I am in no way an experienced pilot ( :pilotfly: ) and i am still confused if i read about things like: "magnetic break", "ff trim", "center play", ...

So i am trying to figure out, how a proper force feedback implementation should work and what features are most important.

Finally i hope to be able to improve the current firmware of the G940 later.

(the current state is available here https://github.com/fred41/G940-firmware-fixes)

 

Let me start, with some technical details about the G940 force feedback related hardware:

 

- STM32F103T6U6A, 32 bit, ARM Cortex M3, at 72 MHz

- MLX90333 magnetic position sensor (programmed in seriell mode - SPI)

- Timer 1 used for generating independend PWM's (35kHz) signals for the H-bridges

- 2 x H-bridge based on power-mosfet (3A) for x and y motor control

- 2 x powerful DC motors for x and y axis forces (SRS-555H)

- a gimbal with 4 ball bearings, build from steel and solid plastic (Polycarbonate - PC)

- optical sensor in grip for "hands on/off" detection

- thermal sensor and mosfet switch for internal DC disconnect

- power supply: 24VDC, 1,75A

 

firmware implementation related (1.42):

- 2 independent spring effects per axis, supporting: offset, deadband, coefficients, saturation

- 2 independent damper effects per axis, supporting: coefficients, saturation

- 1 constant force per axis (16 bit signed)

- 1 combined effect per axis, supporting spring coeffisient, damper coefficient, combined saturation

 

driver (windows) related:

- simulation of periodic effects (like sin, saw, square), via modulated constant force

- simulation of attack length, effect duration, fade length

 

The latest firmware patch can be downloadet here:

https://github.com/fred41/G940-firmware-fixes

 

 

For testing and finetuning all available condition effects, i use the well known simFFB tool (big thanks to auto_pilot, for this very usefull tool).

This version bellow is adapted to the abilities of the G940 device and tested with windows 7 64bit:

simFFB_64.zip

simFFB_source.zip

 

Please use this version of simFFB for testing both available condition effects: spring and damper and its paramaters: offset, deadband and saturation.

 

Any contributions, suggestions or questions are welcome. I will adapt this first page with the collected information book.gif

 

 

Here are some 'G940-Inside' pictures:

attachment.php?attachmentid=213685&stc=1&d=1563035931attachment.php?attachmentid=213686&stc=1&d=1563035931attachment.php?attachmentid=213687&stc=1&d=1563035931

open_overview.thumb.jpg.3c5f5bfdf08e46ed0a44db9ab171c20e.jpg

gear_closeup.jpg.576976db892789512a7d380daa91bb9b.jpg

motor_closeup.thumb.jpg.87b8f725772783d05853ba24f4caa40b.jpg


Edited by fred41
update
  • Like 1
Link to post
Share on other sites

Hi Fred,

 

Thanks for all your work on this! I have some limited experience in light planes (Cessna 152 & 172, Grumman AA5, and about a half hour in a Tiger Moth). I feel I can make a couple of comments on how the directly connected flight controls should feel (e.g. WWII warbirds, Christen Eagle, Yak-52 - but definitely not the jets like Hornet or Tomcat).

 

Assuming a properly trimmed condition, the yoke or stick is very easy to move a small amount, e.g. you may have heard of "flying with two fingers". I think a small ffb deadzone in the force center would simulate this nicely given the limitations of the hardware? As we discussed in the previous thread I am also concerned about the stick "bouncing" around the center for those of us who tape the grip sensor (or modify the stick to be always on ...)

 

As you move the control away from center the force should increase in what feels like a linear fashion - this is where the G940 at least is not living up well to reality, as it very quickly saturates to 100% of the force it can provide and cannot get any heavier.

 

Do you know how the "overall effects strength" setting in the logitech profiler works? I have left it set to 100% but it is just occurring to me as I type this that it might be a multiplier and that is leading to the saturation problem that I am experiencing. I might try reducing it and seeing if it improves the feel of the joystick if I can get some time in the sim this evening.

 

Thanks again for all your work on this, I hope some of this helps.

Link to post
Share on other sites

... thank you for explaining this.

 

So i will add the following info (for older fixed wings):

1. in properly trimmed condition, the forces at the control center are zero

2. the forces increases proportionally to the distance of the control, from its center position

 

The "overall effects strength" setting in the logitech profiler affects (scales) all effects set by a force feedback application (simFFB included).

 

This are:

1. all condition effects like spring and damper (condition effects are calculated by the devices firmware, because they require fastest access to position data)

2. all position independent effects (calculated by the driver) like: periodic (sin, square, saw...), ramp and their envelopes

 

Not affected by "overall effects strength" setting are the two instances of the damped centering spring effects:

- one for "hands on stick" condition and

- one for "no hand on stick" condition (with fixed parameters in firmware)

 

The first one can be disabled for force feedback applications (uncheck "Enable centering spring in force feedback games")

 

The second one is way to strong (imo) and i think this is the first ff-param i will change in the firmware.


Edited by fred41
Link to post
Share on other sites

There is a small update of my firmware patch for the G940:

 

https://github.com/fred41/G940-firmware-fixes

 

It should make the default "damped centering spring" effects, for both "hands on" and "hands off" condition feel less "angry".

 

As said, the "hands on" related effect can be adapted in logitech profiler or control panel. The parameters related to the "hands off" condition effect are fixed in firmware.


Edited by fred41
Link to post
Share on other sites

Thank you Fred41! The Holy Grail for the G940.

 

 

 

I just tried this out, wow what a difference it made.

 

 

 

Tested with the F14B, instant feedback holding a two finger stick. I had been having a problem with trimming forever. This patch has sorted a lot of the G940 problems out. Smoother more responsive set up on all of the axis.

 

 

Its like a completely different joystick!

 

 

I am using:

 

 

101% FFB

58% Spring

81% damper

 

 

0% Centering spring.

Link to post
Share on other sites

Thanks again for the "small" firmware fix - makes flying a lot more convenient, mini-axes usable and now my shiny mighty g940 doesn´t freak out like a monster vibrator when starting my OS or a mission.

Thumbs UP!

ASUS Z170 PRO GAMING, i7-6700k @ 4,00GHZ, 32 GB G.Skill DDR4 3200, GTX1080, TIR 4, unused Odyssey+, TM Warthog Throttle and Stick, TM Pendular Rudders, SupaDupa Saitek PC Dash 2

Link to post
Share on other sites

... thanks again for your feedback.

 

I think the term "monster vibrator" hits the nail (let this patch save us G940 users from an early heart attack :).

 

 

 

 

EDIT:

I forget to mention, there is again a "small" ffb related update available.


Edited by fred41
Link to post
Share on other sites

Hi Fred, the latest firmware is up and running on my modified G940 and working well. The revised weaker centering forces are not up to centering the stick from the corners when I have the grip detection disabled, but that's OK because I'm sure it is better without the lengthened stick.

 

I have been playing with the spring effect strength in the Logitech profiler, and have settled on 70 for the spring effect to prevent the stick oscillating around the center in game. I've been using the FS-Force Test application, which seems to be a bit easier to start the oscillation than simFFB (http://www.fs-force.com/support.php if anyone needs it). Damper and Overall Strength are left at 100, and centering spring is of course unticked and 0.

 

I think most of us are chasing good settings for the Tomcat here, as it's force feedback seems to be the most interactive of the modules I have at least, and these settings are bringing me some joy - you can feel the very slight buffeting at the good angle of attack when turning, and it becomes more extreme through the stick as it becomes more extreme through the airframe. I like it!

 

Still disliking the lack of proportionality in the spring effect, but otherwise greatly enjoying the Tomcat now.

 

monster vibrator

 

:megalol:

Link to post
Share on other sites

Hi torc, your detailed feedback is again a great help for me. Thanks.

 

The approach of my last modification, in respect to the spring condition effect (application controlled), was the following:

1. scale the spring coefficient so that: 100% force saturates at +/- 100% control position

(originally a spring coefficient of 100%, saturated at +/-12.5% control!)

2. minimizing the minimal deadzone, by increasing the minimal voltage (pwm duty cycle)

 

The 2. point is critical, because if overdone, the system tends to oscillate.

Maybe i have to back-paddle a bit here.

 

I use the tool 'ForceTest' for some tests too, but for adapting and testing condition effects, with its various parameters,

i clearly prefer my modified version of simFFB (attached it in the first page of this thread).

 

Just to get a feeling for all available parameters, try this version of simFFB and play with the coefficients,

saturation and deadzone of the spring effect and with coefficients and saturations

of the damper effect (let the 3 ffb profiler setting all at 100% for this test).


Edited by fred41
Link to post
Share on other sites

Fred, before changing anything please let me have a look and see that I am actually running the latest version of your firmware, something doesn’t sound right. I will also play with the simFFB from this thread. Thanks!

Link to post
Share on other sites

Hey Fred!

I think it would be helpful if You would add a version number to Your firmware files.

I will "downgrade" my g940 to the version You released on 02.05. because the centering force while not gaming (hands off stick, with and without lightsensor taped) kicks in almost all the time with Your last release.

Can´t wait for the "paddled back" release ;-)

 

S!

ASUS Z170 PRO GAMING, i7-6700k @ 4,00GHZ, 32 GB G.Skill DDR4 3200, GTX1080, TIR 4, unused Odyssey+, TM Warthog Throttle and Stick, TM Pendular Rudders, SupaDupa Saitek PC Dash 2

Link to post
Share on other sites
Now that the patent is up, I’m sure a lot of people would ay for a G940 V2, including me. My sidewinder has so few buttons...

 

 

... i think this would indeed be an surprising turn, but who knows ...

 

 

So, lets bridge the time with a bit DIY and have fun this way:smilewink:

Link to post
Share on other sites
Hey Fred!

I think it would be helpful if You would add a version number to Your firmware files.

I will "downgrade" my g940 to the version You released on 02.05. because the centering force while not gaming (hands off stick, with and without lightsensor taped) kicks in almost all the time with Your last release.

Can´t wait for the "paddled back" release ;-)

 

S!

 

 

Ok, point taken and paddled back. The last commit is reverted (removed from 'master') and can be found in the new 'ffb_experimental' branch now:

 

https://github.com/fred41/G940-firmware-fixes/tree/ffb_experimental

 

Everybody interested in a bit research can follow the ffb related development here.

As soon as it becomes stable, it will be merged in the default 'master' branch again.

 

 

@Doktor_Faustus, with 'kicks in almost all the time' you mean something like 'oscillation', right?


Edited by fred41
Link to post
Share on other sites

What I meant was: the motors of the stick are constantly trying to center the stick (with very little force but still noisy) unless it is in a perfect aligned position.

 

 

Gesendet von meinem ONE A2003 mit Tapatalk

ASUS Z170 PRO GAMING, i7-6700k @ 4,00GHZ, 32 GB G.Skill DDR4 3200, GTX1080, TIR 4, unused Odyssey+, TM Warthog Throttle and Stick, TM Pendular Rudders, SupaDupa Saitek PC Dash 2

Link to post
Share on other sites

... ok, thank you.

 

I observed this micro oscillations close to the center too.

This was caused by the increased minimal voltage in combination with an noicy position input.

This problem should be fixed now (by using a filtered position input for motor voltage calculation instead).

 

I uploaded an update here (for testing only):

https://github.com/fred41/G940-firmware-fixes/tree/ffb_experimental

 

Please try it and tell me how it feels/work for you.

Link to post
Share on other sites

Hey fred41!

Experimental firmware tested - for me the ff-effects are not strong enough.

Micro-oscillation disappeared but soft porn vibrator mode (hands off) starts upon starting OS.

No big deal to tame that thing by stopping the movement manually but still annoying.

I recently fly the Su-33 and the Shark, in those modules when You use the Autopilot (route following) the stick moves by itself (1.42 vanilla or fredfirmware 0502 ) when flight path parameters are altered, e.g. by passing a waypoint and using a new one.

With the exp firmware the stick didn´t move at all, so I switched back to Your second release (05.02.) and I am very happy with it.

Keep up Your good work - if there are any questions don´t hesitate to ask ;-)

S!

ASUS Z170 PRO GAMING, i7-6700k @ 4,00GHZ, 32 GB G.Skill DDR4 3200, GTX1080, TIR 4, unused Odyssey+, TM Warthog Throttle and Stick, TM Pendular Rudders, SupaDupa Saitek PC Dash 2

Link to post
Share on other sites

... thank you for testing.

 

There is a new version ready for testing in 'ffb_experimental' branch:

https://github.com/fred41/G940-firmware-fixes/tree/ffb_experimental

 

I reverted the spring coefficient downscaling (saturates now at 12.5% max./min. position again). Can you test it again please?

 

To help me to understand the unwanted vibration phenomenon better, could you answer the following questions, regarding your setup, please:

- did you any modifications on your main unit (grip, ball bearings, motor, clogs, lubrication)?

- what ffb settings do you use in the profiler?

 

Thanks again.

Link to post
Share on other sites

Servus Fred,

 

many thanks for all Your efforts - imho You are getting very close to a perfect firmware.

I just did a short test of Your 2nd exp-firmware, results are amazing!

Regarding Your questions:

There are no modification on the motors or bearings of my stick, the only thing i did is to glue 2 tiny magnets inside the grip above and below the light-sensor so I can easily cover it with a small metal strip. Weight of the 2 magnets and the metal strip is aprox. less than 15 gr.

In the profiler I use the default settings (100% all ffb-effects, centering off).

Ingame I use 70% trim force and 30% shake, but still playing around with those values.

 

Kind regards!

ASUS Z170 PRO GAMING, i7-6700k @ 4,00GHZ, 32 GB G.Skill DDR4 3200, GTX1080, TIR 4, unused Odyssey+, TM Warthog Throttle and Stick, TM Pendular Rudders, SupaDupa Saitek PC Dash 2

Link to post
Share on other sites

Hi Fred, Sorry for not getting back to you sooner. With both the master and experimental branch I am still not feeling a difference in spring force based upon stick displacement (this is meant to be a feature of your firmware, isn't it?)

 

I am running with 60% spring effect, 100% damper and shake, and 0% centering spring in the Logitech device settings.

 

Possibly a relevant mod (other than lengthening the grip) is that I have a washer shimming the magnet to bring it closer to the MARS board. I don't know if this is interfering with what your firmware is trying to accomplish, moving the stick seems linear in the "set up USB controllers" menu in Win10.

 

I will have more of a think about what could be happening and get back to you ...

Link to post
Share on other sites
Servus Fred,

 

many thanks for all Your efforts - imho You are getting very close to a perfect firmware.

I just did a short test of Your 2nd exp-firmware, results are amazing!

Regarding Your questions:

There are no modification on the motors or bearings of my stick, the only thing i did is to glue 2 tiny magnets inside the grip above and below the light-sensor so I can easily cover it with a small metal strip. Weight of the 2 magnets and the metal strip is aprox. less than 15 gr.

In the profiler I use the default settings (100% all ffb-effects, centering off).

Ingame I use 70% trim force and 30% shake, but still playing around with those values.

 

Kind regards!

 

... yeah, thank you. Maybe it is time to merge 'ffb_experimental' back to 'master'.

 

I think this 15g additional weight in your stick may explain the oscillation you observed, since i really can't reproduce this behavoir here.

Theoretical i could reduce the minimal voltage (pwm) further, but this would increase the 'center play' too.

If you open your device next time, you could apply a grease with higher viscosity for x axis slide bearings.

This would damp the stick and stop the oszillations.

Link to post
Share on other sites
Hi Fred, Sorry for not getting back to you sooner. With both the master and experimental branch I am still not feeling a difference in spring force based upon stick displacement (this is meant to be a feature of your firmware, isn't it?)

 

I am running with 60% spring effect, 100% damper and shake, and 0% centering spring in the Logitech device settings.

 

Possibly a relevant mod (other than lengthening the grip) is that I have a washer shimming the magnet to bring it closer to the MARS board. I don't know if this is interfering with what your firmware is trying to accomplish, moving the stick seems linear in the "set up USB controllers" menu in Win10.

 

I will have more of a think about what could be happening and get back to you ...

 

 

A feature of a former version was, to downscale the springforces,

in a way that it is proportional over the full control way.

But i had to revert this modification, because it turned out,

that many application adapted to the original behavoir (saturation at 12.5%, with 100% coefficient).

By the way, the spring condition effect is used not only for simulating a spring,

but for many other effects (by modulating the offsets, saturation, deadzone).

Thats why i recommended you, to use my simFFB version and play with all params,

to finally get a feeling for the flexibility of the spring condition effect and its params.

For example:

if you set the coefficient (called force in simFFB) of the spring effect to ~12% (spring saturation 100%),

you will get an almost proportinal spring, saturating exactly an the max/min of the control way.

Link to post
Share on other sites
... yeah, thank you. Maybe it is time to merge 'ffb_experimental' back to 'master'.

 

I think this 15g additional weight in your stick may explain the oscillation you observed, since i really can't reproduce this behavoir here.

Theoretical i could reduce the minimal voltage (pwm) further, but this would increase the 'center play' too.

If you open your device next time, you could apply a grease with higher viscosity for x axis slide bearings.

This would damp the stick and stop the oszillations.

Thanks for the advice with the lube ;-)

I will open it when I find the time cause I want to install an On/Off Switch for the electric power in the base (which has nothing to do with this thread)

Cheers!

ASUS Z170 PRO GAMING, i7-6700k @ 4,00GHZ, 32 GB G.Skill DDR4 3200, GTX1080, TIR 4, unused Odyssey+, TM Warthog Throttle and Stick, TM Pendular Rudders, SupaDupa Saitek PC Dash 2

Link to post
Share on other sites

Hi again Fred, thanks for clarifying that. It turns out I had the effects of the saturation and force mixed up in simFFB! Your recommended settings do indeed work exactly as you say.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...