Jump to content

Thrustmaster Warthog Extension And Absolute Aim


13 replies to this topic

#1 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 25 March 2016 - 03:13 AM

I have been reading a lot about using joystick for aiming in MWO.

I know that it is an inferior setup when compared against e.g to left hand joystick and mouse. I also know that the joystick absolute input fixes released way back, didn't solve a thing because of stupid deadzone and other issues.

Loc Nar explains in this post why mouse works better in MWO than stock joystick. It is a good read for anybody wondering why it is hard to use joysticks well on MWO.

But I still wanted to try. Reason being it is sad if my Warthog sits in the corner gathering dust. Furthermore, I know some people play MWO with stock and pretty awesome custom joysticks, so why not me? And for me, the immersion is more important than my field performance or K/D ratio, as long as playing is fun of course.

There is many joystick related threads in the forum but none about making an extension for Thrustmaster Warthog, and very few about configuring the stick to use absolute aiming. Absolute aiming can be done e.g with Thrustmaster's own TARGET software or with FreePIE, but evilC got me believe that AutoHotkey is the most flexible of them all, so I'm using it.

The extension is in post two, whereas the latest absolute aim script will be in post three.

But first I want to thank three persons whose posts and comments helped me a lot along the way. Thanks Loc Nar, Foust and evilC!

Edited by mclang, 07 April 2016 - 10:01 PM.


#2 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 25 March 2016 - 03:27 AM

Here are the parts needed for the extension pipe

Posted Image

The three leftmost items on the back row are from Biltema garden hose connector that has the same M36 thread that Warthog uses. Gardena 39035, which can be found from amazon, can be used instead. As seen from the picture, I had to cut the upper portion of the plastic part in order to fit the handle properly. In addition, the center hole must be drilled about 13mm wide so that PS2 cable can be routed through without cutting the cable. Soldering thin wires is a pain so I'd rather avoid it.

For the extension rod I used 22mm copper pipe. I think a pipe with outer diameter of 19mm could also work but that requires different sleeve than what I used. Tape in the picture is for fitting purposes only, because the sleeves on the right corner are not tight fit over the copper pipe. It was removed before gluing things together.

The sleeves are two similar pieces but the lower one had to be shortened so that the extension could be fastened properly to the joystick base. The outer diameter of the washer is about 30mm and the hole is wide enough that the copper pipe fits snugly.

Posted Image

Pipe parts glued together. Here the garden hose connector is still loose because I wasn't sure if I have to drill the center hole even wider than 13mm in order to fit PS/2 connector through it.

Posted Image

Old style PS/2 connector is almost exactly the same that Warthog uses. All extension cables that I found were too long but fortunately I found this PS/2 splitter cable that I could fit inside the extension pipe without tedious soldering job.

Posted Image

The changes needed to the male and female connectors are pretty minor. Here the plastic center leg and one of the pins need to be cut out. Be careful not to snap wrong pins.

Posted Image

On other end there is two possibilities: Either cut the plastic center leg on Warthog side, or drill the hole of the connector wider. I chose the latter one and used 2.5mm drill bit.

Posted Image

Here is the finalized extension cable. Some knife work was needed to fit the connectors inside the extension pipe, but the result looks surprisingly good, to my eye at least.

Good thing that I didn't cut the other leg before testing things though, because something went wrong with the first try. Maybe I drilled too deep or snapped a pin, I don't know.

Posted Image

Looks nice and feels great. With larger throw it is much easier to do minor corrections and maybe even use joystick with absolute aiming script in MWO. Also the center detent isn't problem anymore even when using the big stock spring.

Feel free to comment and ask questions, I will answer the best I can.

Edited by mclang, 25 March 2016 - 01:22 PM.


#3 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 28 March 2016 - 10:15 PM

Here is the AutoHotkey script that I use for aiming with joystick.

It is heavily based on more advanced one envisioned by evilC, but because the calibration has problems in Windows 10, I decided to find X/Y axis ranges and twist speed limit by trial and error. Both of these are affected by Windows and ingame mouse settings, so I put my current ones here:
  • Sensitivity: 0.3
  • Smooth: 0.0
  • Acceleration: 0.0
  • Windows Pointer Speed: 40%
It is important to note that both UNITS_RANGE and MAX_TWIST_RATE values used are calibrated for my HGN-733p that has basic level Twist X and twist speed skills, and that the MAX_TWIST_RATE of 48 seems to be good when the arms lock is disabled. If I want to play with arms lock on, the right value is probably somewhere near twenty.



Spoiler


Things I still want to implement are:
  • Automatic torso centering when joystick is centered Using 'C' or joy button directly is enough.
  • Reduced movement range when zoom is activated
  • Reduced movement range when button is pressed
  • On/Off logic for absolute mode so that I could use joystick better also in mechbay
  • More mouse button emulation things when not in absolute aim mode (something like this)
  • Fix cursor jump that happens when going out from reduced movement range mode.
In addition it could be nice to be able to use same range for both axises so that the excess Y axis motion would be dropped in a way that it would not drift like when real limit is reached

Currently it feels better to play when the X and Y axis ranges are setup in correlation to the real movement ranges.

Edited by mclang, 04 July 2016 - 09:56 PM.


#4 Bill Lumbar

    Member

  • PipPipPipPipPipPipPipPipPip
  • Death Star
  • 2,073 posts

Posted 30 March 2016 - 04:11 PM

This is great! Keep us updated please!

#5 Napoleon_Blownapart

    Member

  • PipPipPipPipPipPipPipPip
  • Shredder
  • Shredder
  • 1,167 posts

Posted 02 April 2016 - 10:42 AM

i use a T16000m hall effect joystick and a tflightx hotas, looking your stuff up, it looks like it has a hall effect hat on the throttle.I wondered could you steer with that and just use the stick for aim, can the split throttle levers turn or torso turn you?looks like a fun set up to play with.

years ago i used to play MW2 netmech with thrustmaster top gun joystick throttle and rudder pedals.

#6 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 03 April 2016 - 12:27 PM

Yes, you could steer with the hat switch on the throttle.

At least Mystere is doing that, but unfortunately I don't own Warthog throttle and probably never will because of the price. I'm planning to buy either Trustmaster T.Flight Hotas X or Hotas 4 because they seem to be the only throttles with neat lever switch, with which I don't need to buy pedals if I don't want to. In addition I probably ditch the joystick and replace the circuit with either Teensy++ or Leo Podnar board as evilC has done. This solves the deadzone issues and makes it possible to update the sensors later if I choose so.

#7 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 03 April 2016 - 12:33 PM

I have started doing button layout diagram for Warthog

Posted Image

It is still missing final button decals, labes and things, but it is already usefull for me.

Edited by mclang, 03 April 2016 - 09:19 PM.


#8 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 03 April 2016 - 09:48 PM

Here is my current Absolute Aim script:

(Moved into third post)

Edited by mclang, 07 April 2016 - 10:17 PM.


#9 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 03 April 2016 - 10:05 PM

One, maybe crazy idea, came to my mind:
What if I made a metal or plastick slit that limits Y axis movement so that the joystick cannot move up or down more than, lets say 50 degrees? The joystick base has screws that could be used to attach this slit easily, as seen in this DIY dust shield picture:
Posted Image

Can anybody comment if this is a viable option? I'm wondering if this kind of slit will increase some forces inside the gimbal that could then break it... Altough the extension itself can already do it if I'm not carefull Posted Image

#10 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 05 April 2016 - 09:53 PM

I tested playing with equal X/Y axis ratios.

It works quite well even without any up down limit but the movement of course got a lot less exact. The drift wasn't a problem, I could just hit my center torso button on my left hand joystick as I have to do sometimes anyway but I think it was easier to play when the ratios were calibrated according to the movement range.

I have to test some more and implement zoom mode ratio reduction before making decision about this. I'm wondering if I should make the reduction using X/Y ratios or max twist speed value... And I have to research if AutoHotkey can read numbers from the screen so that the reduction amount could be calculated from the zoom multiplier.

#11 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 07 April 2016 - 10:34 PM

I updated my absolute aim script and moved things into the third post.

I think it is easier to see where I'm going when there isn't several versions of the script all around the place!

New in this vesion is reduced movement speed when zoom is enabled. It was easy to do in princible, but there is one problem: When you zoom while aiming somewhere other than dead center, the aim jumps because of the range changes. I tried to solve this issue like this
desired_value := round( (axis_in - JOYSTICK_OFFSET) * JOYSTICK_MOUSE_RATIOS[A_Index] * rm ) + rm * JOYSTICK_MOUSE_RATIOS[A_Index]

But sadly this does not work Posted Image

If I instead reduce the max twist speed it works, but it isn't as good as solution that reducing range would be.

Update - Figured it out. I need to save the cursor position where zoom is activated and use it like so:
    if (zoomedin) {
        desired_value := 0.5 * (desired_value + zoom_origin[A_Index])
    }

Edited by mclang, 08 April 2016 - 12:39 PM.


#12 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 11 April 2016 - 09:52 PM

I have been playing.

Absolute aim works really well, I even got one game with almost 500 damage that is almost unheard-of! Normal games seems to settle around 100-200 damage which is about the same I managed before when using mouse for aiming. So I think my biggest problem currently is lack of situational awareness and overall skill rather than using joystick.

Fortunately both improve by playing, so I will do that and probably stop messing with the script for a while.

One note about the reduced range zoom mode though. It works really well but has two problems: One, you have to zoom in and out more often when target moves sideways, otherwise the movement range may end too soon. Two, it makes it more difficult to pull up alpha that is about to hit in the backside of an ally. Found out this in the wrong way Posted Image

May be I should assign a 'pull up dodge fire' button that would twist my torso up as quickly as possible in situations like this! Hmm, I could also make a button that twists torso left and right automatically to armor roll damage... Joystick would thank me Posted Image

#13 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 21 April 2016 - 09:43 PM

I got some very good matches with this setup while using HGN-773p.

Or they vere good in my book at least! Then I jumped in one of my firestarters, and things weren't so good anymore... It is another thing altogether to aim from medium to long range in slow moving mech than in fast moving mech :(

But again I think the problem is more on the side of my situational awareness and such than me using joystick. Time will tell after I get more matches under my belt.

#14 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 04 July 2016 - 09:49 PM

Using joystick aim with lights is hard Posted Image

It just seems that I can't keep up with the quick movement needed when using e.g Firestarter, so I started to use mouse again but *only* with lights. I'm still pretty bad at aiming so all is not joystick's fault though!

I have also improved the absolute aim script. This was needed when I noticed that 'zoom mode' didn't work if the range factor was anything else than 0.5. In addition I added same kind 'reduce DPI' logic that can be activated with another button if needed. Haven't tested this yet though.

Current version can be seen in my github repo.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users