Jump to content

Logitech G940 Reversal Bug - v1.42 Firmware Update


Drakoz

Recommended Posts

Hi,

 

 

thanks for testing and reporting back. I am glad to read it works for you.

And i am happy to see that my work is finally useful for other peoples too.

 

 

If there are any firmware related suggestion/ideas for further improvement please let me know, maybe there is a way to do it.

Link to comment
Share on other sites

Hi,

 

 

thanks for testing and reporting back. I am glad to read it works for you.

And i am happy to see that my work is finally useful for other peoples too.

 

 

If there are any firmware related suggestion/ideas for further improvement please let me know, maybe there is a way to do it.

 

Fred - you are awesome!

 

I have been using the G940 since it came out and fixed the cable way back when and applied 1.42. Since then I have been using it as there are no other alternatives for us that reqire FFB (I naturally have an MSFFB2 in my closet). As an old IRL pilot of gliders and small prop planes I simply cannot live without FFB...

 

But after looking for new fw patches for years after 1.42 I realized that I had to live with the throttle reversal bug. Just yesterday I started thinking about getting a Warthog throttle and keep the G940 stick - and came to this forum to see what other alternatives that might be available. Found this thread and got your patch smoking from the oven :)

 

And it really does a big difference! Now the throttle is GOOD! To better see the input I loaded up IL2 where you see the % of throttle when changing. I have previously been trying to set it to exactly 80% for formation flying etc. It has been a royal pain in the ... Now I just sat there with a smile going from 70% to 80% to 90% and then quickly back to 70% And I can nail it directly. Sat like a silly child doing it for 10 minutes! And have not realized the problem with the hardware deadzone of the rudders. Love that you have removed that as well.

 

This REALLY needs a separate post in every flight sim forum for the few of us that still use the G940. But please - wait until I have bought a few on eBay that I can sell expensively after the news get out ;)

 

Again - a really big thank you for your effort! :worthy:

Ryzen 7800X3D | Gigabyte X670 Aorus Elite AX MB | 32GB 6000Mhz DDR5 | RTX 3080 GPU | Sound BlasterX AE-5 | Windows 11 Pro x64 | Virpil T-50 Throttle | T50 CM2 Grip + WarBRD | VKB T-rudder MK IV | Asus PG279Q 1440p | Valve Index VR | Samsung 980 Pro as system disk and DCS on separate Intel 665P NVME SSD

Link to comment
Share on other sites

Hey fred41!

 

 

That are really awesome news! For years I was holding out for the next force feedback stick. Last month I caved in and pre-ordered a VPC gimbal and bought a Warthog HOTAS. Now you are coming out with a fix for my main issue with the G940. Bad timing, story of my life! :doh:

Nevertheless I'm more than happy that the G940 finally gets that bit of love it deserved all along!

 

 

Now the only thing left to optimize is the center play. Any of you guys have a fix for that? Flying helicopters I mostly do all my movement within the center play of the stick. Curves and deadzones are now solution since DCS doesn't account for the moving center position when trimming, as far as I can tell.

 

 

Once again, great work Fred! :thumbup:

Rock 'n' Roll!

 

Henning

Link to comment
Share on other sites

Hey,

 

thanks for your feedback, even if the patch comes a bit to late for you.

 

Can you explain in detail what you mean with 'center play'?

 

I ask because i don't notice something wrong on the main stick, since i fixes the two ballbearings, responsible for the y-axis.

 

See here:

http://simhq.com/forum/ubbthreads.php/topics/3920858/get-rid-of-g940-stick-play-simple-way

Link to comment
Share on other sites

  • 2 weeks later...

... there is an updated version for my G940 firmware fixes ...

 

 

Apart from some code optimizations, there is a significant improvement for the main axis noice filtering function in this second iteration of my firmware-refresh patch.

 

 

The main axis of the G940 are now very precise (actually close to zero hysteresis) and the active area of the stick is increased (more sensible movement).

 

 

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

 

 

Enjoy :)

Link to comment
Share on other sites

@Mugue, thanks for reporting back again.

 

 

I hope the G940 is ready for fun with helicopters too, now.

 

 

As already said: If you guys have any suggestion, please let me know.


Edited by fred41
Link to comment
Share on other sites

Thanks a lot again! Works great for me as well.

 

Wrote a post in the IL2 forums about this patch by the way, other happy users there:

 

https://forum.il2sturmovik.com/topic/45585-new-april-2019-firmware-for-g940-and-the-throttle-works/

 

As you can see it unfortunately had the unexpected effect on me that I finally ordered a Virpil set that I have been considering...

 

 

- And a small code request ;)

 

Would love a small success message before return 0; in the end like:

 

 

printf("The file G940_Update_FW0142.exe was patched succesfully. Now run it to patch the firmware");

 

return 0;


Edited by mazex

Ryzen 7800X3D | Gigabyte X670 Aorus Elite AX MB | 32GB 6000Mhz DDR5 | RTX 3080 GPU | Sound BlasterX AE-5 | Windows 11 Pro x64 | Virpil T-50 Throttle | T50 CM2 Grip + WarBRD | VKB T-rudder MK IV | Asus PG279Q 1440p | Valve Index VR | Samsung 980 Pro as system disk and DCS on separate Intel 665P NVME SSD

Link to comment
Share on other sites

@mazex,

 

 

... oh, nice equipment you got (actually not really the goal of this patch).

 

 

But i am innocent, since i clearly stated:

 

 

"I (the author of this patch) am in no way responsible for anything that is caused by this patch." :)

 

Yoke aside, you are right there should be an success message after patching.

Link to comment
Share on other sites

Lol :)

 

And as I am starting to come with code requests, another one. As many people will not run the program in a cmd-window but just click it. How about this end so they see the success message?

 

printf("The file G940_Update_FW0142.exe was patched succesfully. Now run it to patch the firmware\n");

 

printf("Press any key to continue\n");

 

getch();

 

return 0;


Edited by mazex
Rusty c

Ryzen 7800X3D | Gigabyte X670 Aorus Elite AX MB | 32GB 6000Mhz DDR5 | RTX 3080 GPU | Sound BlasterX AE-5 | Windows 11 Pro x64 | Virpil T-50 Throttle | T50 CM2 Grip + WarBRD | VKB T-rudder MK IV | Asus PG279Q 1440p | Valve Index VR | Samsung 980 Pro as system disk and DCS on separate Intel 665P NVME SSD

Link to comment
Share on other sites

Hey,

 

thanks for your feedback, even if the patch comes a bit to late for you.

 

Can you explain in detail what you mean with 'center play'?

 

I ask because i don't notice something wrong on the main stick, since i fixes the two ballbearings, responsible for the y-axis.

 

See here:

http://simhq.com/forum/ubbthreads.php/topics/3920858/get-rid-of-g940-stick-play-simple-way

 

 

Hi Fred,

sorry for the late replay, I was on a little business trip.

I already did the steel sleeve mod a couple of years ago, but it didn't have the effect I was hoping for. It feels like the play comes from the cogs, like you have to move the stick a certain way until the motors finally put up enough resistance to stop it. If that makes sense.

I would have to measure it but I would guess it's around 5mm at the top of the stick. Flying helicopters that's a lot!

If you say that your stick doesn't have that play, maybe I should open mine up again and search for the culprit!

 

 

Anyway, thank you so much for your work, I guess you are making a lot of G940-owners very happy, me included! I owe you a beer!

Rock 'n' Roll!

 

Henning

Link to comment
Share on other sites

Lol :)

 

And as I am starting to come with code requests, another one. As many people will not run the program in a cmd-window but just click it. How about this end so they see the success message?

 

printf("The file G940_Update_FW0142.exe was patched succesfully. Now run it to patch the firmware\n");

 

printf("Press any key to continue\n");

 

getch();

 

return 0;

 

 

... no problem, done ...

Link to comment
Share on other sites

Hi Fred,

I already did the steel sleeve mod a couple of years ago, but it didn't have the effect I was hoping for. It feels like the play comes from the cogs, like you have to move the stick a certain way until the motors finally put up enough resistance to stop it. If that makes sense.

I would have to measure it but I would guess it's around 5mm at the top of the stick. Flying helicopters that's a lot!

If you say that your stick doesn't have that play, maybe I should open mine up again and search for the culprit!

 

 

... ah yes, i remember i have adjusted the motors a bit closer to the bearings (years ago), to reduce the distance between the clogs ...

 

 

Apart from this mechanical play, there is a fixed deadzone in the spring condition effect (implemented in firmware code). In my opinion that deadzone could be smaller and maybe i will address this in a future patch.

Link to comment
Share on other sites

The fixed deadzone for the spring effect is probably to prevent oscillation, where the motors will kick the stick to one side but overshoots, then the motors kick the stick back but overshoots again, and this continues on indefinitely until the motors burn themselves out from the constant and quick changes in polarity. I'd be careful lowering the deadzone and go slowly from its current stock value going down.

Link to comment
Share on other sites

@Ranma13,

 

 

thank you for this hint. Thats clearly an very important point to consider.

There are some protection mechanism implemented in the G940 (like deadman switch, temperature sensor), but they may be buggy too, so i will be very carefully, if i start to touch this area, of course.

Link to comment
Share on other sites

Hi Fred41,

 

I have just flashed your latest firmware to my modified G940, and it does make the helicopter flight in particular much easier. I do notice two interesting and nice things, that have been improved by your latest firmware:

 

1) I have always had (at least since I modified the stick) significant bouncing of the stick back and forward if I release the grip away from the force center. This is significantly reduced with your firmware. I only noticed it occurring when I deliberately tried to induce it, whereas previously I had to be careful about where the stick was if I was going to take my hand off it :joystick:

 

2) When I leave the grip hand sensor engaged, I don't notice the "grinding" feeling in SteamVR and DCS when I leave the grip sitting loose against one of the stops.

 

The modifications I have made are mainly adapting a Virpil grip to the base, and this does increase the length of the stick grip and the amount of weight up high on the grip. I've also put a switch in lieu of the hand sensor on the grip, and usually leave the force engaged when playing DCS (hence the note about the "bouncing" when releasing the stick). I have also put washers in to get the magnet closer to the sensor, but haven't played with the motor alignment.

 

Your firmware changes have certainly improved my G940! Thanks very much for your hard work :thumbup:

Do you use VR? Do you feel sad when you are just a dismbodied set of eyes floating in the cockpit? Check out my list of paid aircraft modules that support the visible virtual pilot body:

 

Link to comment
Share on other sites

Hi torc,

 

 

thanks for reporting back.

 

 

Thats interesting, i didnt touch the force feedback part of the firmware yet,

but the accuracy of condition effects (like spring and damper) depend on the precision of the x, y position.

 

 

May i ask, how did you connect the switches of your virpil grip? Do you use the original PCB from logitech's stick for that?

Link to comment
Share on other sites

Yes - I think the removal of the notch filtering might be allowing the controller to "see" the position of the stick around the force center better?

 

Regarding the Virpil grip, I took the easy way out and bought a joystick controller from Virpil as a loose part, which I have incorporated into the base just beside where the rotary "Trim 3" control used to live (the "Trim 1" position is where what is left of the original grip PCB lives - I needed to keep this to keep the grip sensor alive, otherwise it defaults to being in the "no hand on stick" mode). So I have two USB cables coming out of the stick base, but it does give me some more control over the setup of the grip, using the VPC configurator software.

 

I removed the three "Trim" pots and their PCB because they sit under the lip of my chair, so no use to me - and you hadn't fixed the hysteresis problem with these axis yet so I saw no need to try to keep them :)

Do you use VR? Do you feel sad when you are just a dismbodied set of eyes floating in the cockpit? Check out my list of paid aircraft modules that support the visible virtual pilot body:

 

Link to comment
Share on other sites

Ok, i started to research the force feedback related part of the G940 (firmware) and already figured out some interesting details.

 

For example:

The ff "deadzone" in the center position is rather large (~8mm at the top of grip) and goes close to zero at the max/min positions.

 

The interesting part is, there is no self oszillation, if the "deadzone" is at a minimum.

 

This means it should be possible to reduce the "deadzone" in the center, without serious problems!

 

On the other hand, i am not really sure, if a deadzone doesn't have advantages too (forceless fine control).

 

So i started a thread to discuss such questions before i start to implement anything (in assembler language / machine code), that finally nobody helps.

 

https://forums.eagle.ru/showthread.php?t=240114


Edited by fred41
Link to comment
Share on other sites

  • 5 weeks later...

fred41

 

Hello, I'm sorry for my English writing through a translator, the joystick and throttle axes work fine, but there are jitters and twitches on the axles of the pidals, the actin was not used, so the resistors should be normal. Is it possible to add a little smoothing on the pidal axis?


Edited by Evgeny 781
Link to comment
Share on other sites

Hello Evgeny_781,

 

the rudder axis (pedal) is special in respect to noice.

 

The rudder potentimeter is connected over a long cable and the 0..3.3V signal receives some addional noice because of that.

The noice of all axis is filtered already, by applying something like a 'deadband' around the signals mean.

But if the noice amplitude is bigger as the deadband, you will see some small variations in axis input values.

 

You have two options to reduce the noice seen by the analog digital converter (ADC), yourself:

 

1. improve the quality of the USB power supply (5V) by using a good USB-Hub

 

2. if you are able to solder a little condenser (SMD) inside the main unit, this would help a lot. Look for (C21..C25) one of this is filtering the signal from the rudder

(Logitech saved apparently a few cents for this condensers)

Link to comment
Share on other sites

  • 1 month later...

For the hardware it can be tried the Nyogel 767a and 3D printing/CNC of new gimbal with greater precision (the old gimbal is very simple design to replicate) or the addition of gearing and new gimbal design. The stick is decent as it is with this new firmware. Thank you for reverse engineering it fred41. Maybe it will be possible to use it to create a servo-based FFB stick in the future.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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