CMS Left doesn't work when HOTAS combined
-
CMS Left ( DX18 ) doesn’t work when HOTAS is combined with TARGET GUI nor TARGET Script Editor no matter if I assign a key or leave it as DX button. However it works in normal state when stick and throttle are separated. Other CMS directions (Up, Right, Down and Z-Axis) work with no problems in both states (separate and combined). Any one has an idea what may be wrong? :???:
BTW I have only TM Warthog HOTAS, Saitek Pro Combat Pedals and TIR4 connected to USB Ports (and mouse ofcourse).
-
Hard to say what specifically, but I would argue it is a problem in your setup, because I have a Warthog and CMS-Left as DX18 works perfectly here.
If you post your script and keyfile that might help to shed some light on the matter.
-
I would think you have it programed in Target which is interfering.
If so remove any reference for Button 18.
-
Thanks for trying. I changed default “BMS - Full.key” CMS assigns to:
HOME (CMS Up), END (CMS Down), PGDN (CMS Right), DEL (CMS Left).
But it doesn’t matter really because even if I don’t put HAT4 into the script at all or assign DX18 or DEL or USB[0x4C] it doesn’t work because even Control Panel doesn’t see this button being pressed…//CMS / H4 / Z-Axis
MapKey(&Joystick, H4P, PULSE+‘s’); // SlapShot - 1x Flare
MapKey(&Joystick, H4U, HOME);
MapKey(&Joystick, H4R, PGDN);
MapKey(&Joystick, H4D, END);
MapKey(&Joystick, H4L, PULSE+USB[0x4C]);Bellow is full TMC script:
include "target.tmh" //here we link this file to the file that contains the default Thrustmaster function code int EngageAP; //AutoPilot On/Off int APType; //AutoPilot Type //program startup int main() { //***** USE Warthog_DX.key in Falcon BMS for this Script to work properly ****// Configure(&HCougar, MODE_EXCLUDED); Configure(&T16000, MODE_EXCLUDED); Configure(&T16000L, MODE_EXCLUDED); Configure(&LMFD, MODE_EXCLUDED); Configure(&RMFD, MODE_EXCLUDED); Configure(&TFRPRudder, MODE_EXCLUDED); Configure(&TWCSThrottle, MODE_EXCLUDED); if(Init(&EventHandle)) return 1; // declare the event handler, return on error //add initialization code here EngageAP=0; APType=0; //script and function functions go here and before the } SetKBRate(25, 50); SetKBLayout(KB_ENG); SetShiftButton(0, 0, 0, 0, 0, 0); ////////////////// *************************************** ////////////////// ////////////////// *** TM Warthog HOTAS Axis Mapping *** ////////////////// ////////////////// *************************************** ////////////////// //Joystick Axis Modes MapAxis(&Joystick, JOYX, DX_X_AXIS, AXIS_NORMAL, MAP_ABSOLUTE); SetSCurve(&Joystick, JOYX, 0, 1, 0, 0, 0); //a small center deadzone for the joystick; feel free to rem out this line MapAxis(&Joystick, JOYY, DX_Y_AXIS, AXIS_NORMAL, MAP_ABSOLUTE); SetSCurve(&Joystick, JOYY, 0, 1, 0, 0, 0); //a small center deadzone for the joystick; feel free to rem out this line //Throttle Axis Setups MapAxis(&Throttle, THR_LEFT, DX_ZROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE); SetCustomCurve(&Throttle, THR_LEFT, LIST(0,0, 65,70, 75,70, 100,100)); //create a deadzone between 65% and 75% for AB MapAxis(&Throttle, THR_RIGHT, DX_Z_AXIS, AXIS_NORMAL, MAP_ABSOLUTE); SetCustomCurve(&Throttle, THR_RIGHT, LIST(0,0, 65,70, 75,70, 100,100)); //create a deadzone between 65% and 75% for AB // Idle Cutoff Code MapKey(&Throttle, IDLELOFF, CHAIN(D(1000), PULSE+L_ALT+USB[0x0C])); //Idle Detent ** USB I ** MapKey(&Throttle, IDLELON, PULSE+L_ALT+USB[0x0C]); //Idle Detent ** USB I ** //Throttle Slew Axis MapAxis(&Throttle, SCX, DX_XROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE); SetSCurve(&Throttle, SCX, 0, 14, 0, 7, -2); //Negative number at the end reduces the sensitivity of the cursor X-axis MapAxis(&Throttle, SCY, DX_YROT_AXIS, AXIS_NORMAL, MAP_ABSOLUTE); SetSCurve(&Throttle, SCY, 0, 14, 0, 7, -2); //Negative number at the end reduces the sensitivity of the cursor Y-axis //Throttle Slider Axis MapAxis(&Throttle, THR_FC, DX_SLIDER_AXIS, AXIS_NORMAL, MAP_ABSOLUTE); SetSCurve(&Throttle, THR_FC, 0, 0, 0, 5, 0); //Reduce sensitivity in the center ////////////////// ************************************* ////////////////// ////////////////// *** TM Warthog Stick Key Mapping *** ////////////////// ////////////////// ************************************* ////////////////// //Trigger - First Stage / TG1 MapKey(&Joystick, TG1, DX1); //Trigger - Second Stage / TG2 MapKey(&Joystick, TG2, DX6); //Pickle Button / S2 MapKey(&Joystick, S2, DX2); //Pinky/S3 //keyflie controlled //Paddle/S4 MapKey(&Joystick, S4, TEMPO(PULSE+USB[0x1D], DX4, 500)); // Short: Reset TrackIR with ** USB Z **; Long: Paddle Switch //Missile Step / NWS / AA Disconnect / S1 MapKey(&Joystick, S1, DX5); //TMS / H2 //keyflie controlled or //MapKey(&Joystick, H2U, DX7); //MapKey(&Joystick, H2R, DX8); //MapKey(&Joystick, H2D, DX9); //MapKey(&Joystick, H2L, DX10); //DMS / H3 //keyflie controlled or MapKey(&Joystick, H3U, DX11); MapKey(&Joystick, H3D, DX13); MapKey(&Joystick, H3R, DX12); MapKey(&Joystick, H3L, DX14); [b] //CMS / H4 / Z-Axis MapKey(&Joystick, H4P, PULSE+'s'); // SlapShot - 1x Flare MapKey(&Joystick, H4U, HOME); MapKey(&Joystick, H4R, PGDN); MapKey(&Joystick, H4D, END); [color]MapKey(&Joystick, H4L, PULSE+USB[0x4C]);[/color][/b] ////////////////// **************************************** ////////////////// ////////////////// *** TM Warthog Throttle Key Mapping *** ////////////////// ////////////////// **************************************** ////////////////// //Left Throttle Button (Also See Below: Autopilot Switch) MapKey(&Throttle, LTB, TEMPO(EXEC("EngageAPSL(1);"), EXEC("EngageAPSL(2);"), 400)); // Short: Alt & Off - Long: for Att //Coolie Hat //keyflie controlled or MapKey(&Throttle, CSL, PULSE+L_CTL+USB[0x3B]); //Radar Range Up ** USB F2 ** MapKey(&Throttle, CSR, PULSE+L_CTL+USB[0x3A]); //Radar Range Down ** USB F1 ** MapKey(&Throttle, CSD, TEMPO(PULSE+L_CTL+USB[0x3E], PULSE+L_CTL+USB[0x3F], 500)); //Short: Radar Tilt Down; Long: Radar Antenna Center MapKey(&Throttle, CSU, TEMPO(PULSE+L_CTL+USB[0x40], PULSE+L_CTL+USB[0x3F], 500)); //Short: Radar Tilt Up; Long: Radar Antenna Center //Slew Control Push / Cursor Button / SC MapKey(&Throttle, SC, TEMPO(LOCK+USB[0x4B], LOCK+USB[0x49], 500)); //Short: Cursor reset ** USB PAGE UP **; Long: Cursor enable ** USB INSERT ** //Mic Switch / MS MapKey(&Throttle, MSU, F6); //IFF In MapKey(&Throttle, MSR, '['); // VHF Transmit MapKey(&Throttle, MSD, F5); //IFF Out MapKey(&Throttle, MSL, ']'); // UHF Transmit MapKey(&Throttle, MSP, SCRLCK); // Map this key to anything you wish. I use it for Teamspeak NOT USED AT THE MOMENT //Speed Brake / SPD //keyflie controlled //Boat Switch: Dogfight/Missile Override / BS MapKey(&Throttle, BSF, PULSE+USB[0x10]); // ** USB M ** MapKey(&Throttle, BSM, PULSE+USB[0x06]); // ** USB C ** MapKey(&Throttle, BSB, PULSE+USB[0x07]); // ** USB D ** //ChinaHat/CH MapKey(&Throttle, CHF, PULSE+'u'); MapKey(&Throttle, CHB, PULSE+PGUP); // Pinky Switch - External Lights //Forward = Navigation Lights: Steady - Anti-Collision: On MapKey(&Throttle, PSF, CHAIN( LOCK+PULSE+L_SHIFT+USB[0x0C],LOCK, //Steady ** USB I ** D(), LOCK+PULSE+L_SHIFT+L_CTL+USB[0x12],LOCK, //Bright ** USB O ** D(), LOCK+PULSE+L_SHIFT+L_CTL+USB[0x18],LOCK, //Anticollision On ** USB U ** D(), LOCK+PULSE+L_CTL+USB[0x10],LOCK //Master On ** USB M ** )); //Center = All Lights Off MapKey(&Throttle, PSM, LOCK+PULSE+L_ALT+USB[0x10],LOCK ); //Master Off ** USB M ** //Backward = Navigation Light: Flash - Anti-Collision: Off MapKey(&Throttle, PSB, CHAIN( LOCK+PULSE+L_SHIFT+L_CTL+USB[0x0C],LOCK, //Flash ** USB I ** D(), LOCK+PULSE+L_SHIFT+L_CTL+USB[0x12],LOCK, //Bright ** USB O ** D(), LOCK+PULSE+L_SHIFT+L_CTL+USB[0x18],LOCK, //Anticollision On ** USB U ** D(), LOCK+PULSE+L_CTL+USB[0x10],LOCK //Master On ** USB M ** )); //ENG OPER IGN to Start JFS and open/close Canopy MapKey(&Throttle, EOLIGN, PULSE+L_CTL+USB[0x06]); //Canopy ** USB C ** MapKey(&Throttle, EORIGN, PULSE+L_SHIFT+USB[0x0D]); //JFS ** USB J ** //Autopilot Switch MapKey(&Throttle, APPAT, PULSE+L_SHIFT+USB[0x04]); // Short: Follow HSI heading - Long: Follow HSI & hold pitch ** USB A ** MapKey(&Throttle, APAH, PULSE+L_CTL+L_SHIFT+L_ALT+USB[0x04]); // Short Hold roll angle and altitude - Long: Hold roll & pitch angle ** USB A ** MapKey(&Throttle, APALT, PULSE+L_SHIFT+USB[0x11]); // Short: Follow Course to Next Waypoint - Long: Follow waypoint & hold pitch ** USB N ** //RADAR ALTM Switch = Landing Lights Toggle MapKey(&Throttle, RDRNRM, PULSE+L_SHIFT+USB[0x0F]); //Landing Lights On ** USB L ** MapKey(&Throttle, RDRDIS, PULSE+L_ALT+USB[0x0F]); //Landing Lights Off ** USB L ** //APU Switch = Alternate Gear Control MapKey(&Throttle, APUON, PULSE+L_SHIFT+USB[0x0A]); //Alternate Gear Reset ** USB G ** MapKey(&Throttle, APUOFF, PULSE+L_ALT+USB[0x0A]); //Alt Gear Down ** USB G ** //Landing Gear Horn = Alternate Gear Reset MapKey(&Throttle, LDGH, L_CTL+USB[0x0D]); //Emergency Jettison ** USB J ** USB J ** //EAC Switch = Parking Brake MapKey(&Throttle, EACOFF, PULSE+L_CTL+USB[0x13]); //Brake Off ** USB P ** MapKey(&Throttle, EACON, PULSE+L_ALT+USB[0x13]); //Brake On ** USB P ** //AP Engage / Disengage MapKey(&Throttle, APENG, L_CTL+'t'); //TFR Cycle ** USB T ** //ENG FUEL FLOW L MapKey(&Throttle, EFLNORM, PULSE+L_SHIFT+USB[0x06]); //Cat I ** USB C ** MapKey(&Throttle, EFLOVER, PULSE+L_CTL+L_ALT+L_SHIFT+USB[0x06]); //Cat III ** USB C ** //ENG FUEL FLOW L MapKey(&Throttle, EFRNORM, PULSE+L_SHIFT+USB[0x10]); //Master Arm On ** USB M ** MapKey(&Throttle, EFROVER, PULSE+L_CTL+L_ALT+L_SHIFT+USB[0x10]); //Master Arm Safe ** USB M ** //Turn All LED's Off ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1)); ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2)); ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT-LED3)); ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT-LED4)); ActKey(PULSE+KEYON+LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5)); //Turn Off Throttle Backlight ActKey(PULSE+KEYON+LED(&Throttle, LED_INTENSITY, 0)); ////////////////// *************************** ////////////////// ////////////////// *** Launch Falcon BMS *** ////////////////// ////////////////// *************************** ////////////////// //Launch Falcon BMS 4.33 U1 system("spawn -w \"F:\\Games\\Falcon BMS 4.33 U1\" \"F:\\Games\\Falcon BMS 4.33 U1\\Launcher.exe\""); } ////////////////// ******************** ////////////////// ////////////////// *** Extra Code *** ////////////////// ////////////////// ******************** ////////////////// // Autopilot Code int EngageAPSL(int time) { // Long press if (time==2) APAtt(); // Short press else { if (EngageAP) APOff(); else APAlt(); } } //Disengage AP int APOff() { ActKey(LOCK+PULSE+L_CTL+KEYON+USB[0x11],LOCK); // ** USB N ** EngageAP=0; APType=0; ActKey(PULSE+KEYON+LED(&Throttle, LED_INTENSITY, 0)); } //Set AP to Pitch: Alt Hold int APAlt() { ActKey(LOCK+PULSE+L_CTL+KEYON+USB[0x04],LOCK); // ** USB A ** EngageAP=1; APType=1; ActKey(PULSE+KEYON+LED(&Throttle, LED_INTENSITY, 50)); } //Set AP to Pitch: Att Hold int APAtt() { ActKey(LOCK+PULSE+L_ALT+KEYON+USB[0x11],LOCK); // ** USB N ** EngageAP=1; APType=0; ActKey(PULSE+KEYON+LED(&Throttle, LED_INTENSITY, 50)); } //event handler int EventHandle(int type, alias o, int x) { DefaultMapping(&o, x); //add event handling code here }
-
Wwhen you look at it with Target’s device analyzer or Event Tester, what happens when you press CMS-left ?
-
In TARGET Device Analyzer when I switch to “Joystick - HOTAS Warthog” and I don’t run script i see “Button 18” highlighted when I press CMS Left. But when I run the script and switch to “Thrustmaster Combined” - nothing with CMS Left. Other directions work ok as I said earlier.
In “Event Tester” nothing happens even if I run the script that i gave you on any CMS directions.[EDIT] Sry, forgot to post my keyfile:
http://speedy.sh/sjgkR/BMS-Full-Poko-4331-Warthog.keyMaybe it’s worth to mention I had Saitek X52 HOTAS and Logitech G25 (racing wheel and pedals) connected earlier, before connecting my brand new Warthog. I still have their drivers and profilers installed on my system. I’ll try to uninstall them and see how it goes without them.
-
You say “Control Panel doesn’t see this button being pressed…” but then affirm that Target sees button 18 being activated ???
What do you define as “Control Panel” ??
Edit:
"Maybe it’s worth to mention I had Saitek X52 HOTAS and Logitech G25 (racing wheel and pedals) connected earlier, before connecting my brand new Warthog. I still have their drivers and profilers installed on my system. I’ll try to uninstall them and see how it goes without them. "
Good idea.
-
Maybe it’s worth to mention I had Saitek X52 HOTAS and Logitech G25 (racing wheel and pedals) connected earlier, before connecting my brand new Warthog. I still have their drivers and profilers installed on my system. I’ll try to uninstall them and see how it goes without them.
Still no go.
You say “Control Panel doesn’t see this button being pressed…” but then affirm that Target sees button 18 being activated ???
What do you define as “Control Panel” ??
No, that’s not what I meant. Take a good look in what states it sees the button - separate OR combined when script is running.
By “Control Panel” I mean this (look at images):
Before running the script you can see joystick separate from throttle - button works.
After running the script you see joystick and throttle combined - button doesn’t work.
^ It’s exactly the same for DEVICE ANALYZER.
So as you can see it’s not a mechanical problem. IMHO it’s something with the system, registry I guess (?).
I’m on WIN10 x64 BTW. -
Then it has to be the script I would think ?
Have you tried just creating a Target GUI profile (.fcf ) that includes stick & throttle but no programed events ?
-
Consider the following .TMC code
include "target.tmh" //program startup int main() { if(Init(&EventHandle)) return 1; // declare the event handler, return on error MapKey(&Joystick, H4L, PULSE+'a'); MapKey(&Joystick, H4R, PULSE+'b'); //add initialization code here } //event handler int EventHandle(int type, alias o, int x) { DefaultMapping(&o, x); //add event handling code here }
This code compiles and runs. If I press H4R I get a “b” but if I press H4L I do not get an “a”.
I think you have found a genuine bug in TARGET. I am running TARGET Script Editor v.3.0.16.413 and have this issue. If anyone can get the above simple code to run and output ‘a’ and ‘b’ using current or older TARGET version that would be useful info.
Also I do not get a functioning Device Analyzer since upgrading to Windows 10 x64 from Windows 7 x64.
–-
OK I found the problem and fix. It turns out that both H4L and EOLMOTOR are not functioning in the latest TARGET software. Both are the “DX18” of their respective controllers under non-TARGET mapping. The fix is to replace the tmhidcontrol.dll with the one from the previous version of TARGET. I have a few friends with Warthogs and I’ll see about getting the DLL from them from the previous version and share it.
-
I got someone to send me the DLLs but I couldn’t get the service to run again with the file replacements. I did find a copy of TARGET 1.0 to download which avoids the problem (unless you have the new pedals). I uninstalled TARGET 3.0.16 and reinstalled the older 1.0.11.304 and the issue isn’t present in the older verison.
-
Thanks a lot Frederf! I’ll do that when I get back home. Thanks again.
-
I have used dx buttons in target, also have them mapped in key file. No problem here using cms left. I have just installed new target software as well. I would try a reinstall. Or go into Ui select key file and push cms left to see what it is mapped to.
-
Interesting find……
-
I have used dx buttons in target, also have them mapped in key file. No problem here using cms left. I have just installed new target software as well. I would try a reinstall. Or go into Ui select key file and push cms left to see what it is mapped to.
Ok, I’ll try reinstallation. If it still won’t work I’ll get back to versions suggested by Frederf.
Which Windows do You use sub101? - Win7 or Win10? -
Had exactly the same problem. Rolled target back to 1.0 and it’s now working fine.
-
Ok, I’ll try reinstallation. If it still won’t work I’ll get back to versions suggested by Frederf.
Which Windows do You use sub101? - Win7 or Win10?win 10 64 bit. But I don’t have mfd or pedals. I will check my profile again, just to make sure. then I will try and replicate your problem. It seems you are not alone with this.
-
I’ve tested it now couple times with exactly same results. I even tried plugging Warthog to other USB ports, unplugging my Saitek Pro Combat Pedals and updated TMHW Firmware.
1. Uninstalled TARGET 3.0.16 > Uninstalled TW Warthog HOTAS Drivers > Restarted > Installed again 2014_TMHW_1 Drivers > Restarted > Updated HOTAS Firmware > Installed TARGET 3.0.16 again exactly how instructions sais (TMWH unplugged under TARGET installation) > Restarted > Run TARGET GUI > Run Configuration combining Stick and Throttle = CMS Left doesn’t work (checked in DEVICE ANALYZER and CONTROL PANEL/CONTROLLERS)> Run TARGET Script Editor > Run Script = CMS Left doesn’t work (checked in DEVICE ANALYZER and CONTROL PANEL/CONTROLLERS)
2. Uninstalled TARGET 3.0.16 > Restarted > Installed TARGET 1.0.11.304 > Restarted > Run TARGET GUI > Run Configuration combining Stick and Throttle = CMS Left works > Run TARGET Script Editor > Run Script = CMS Left works
3. Uninstalled TARGET 1.0.11.304 > Restarted > Installed TARGET 3.0.16 again > Restarted > Run TARGET GUI > Run Configuration combining Stick and Throttle = CMS Left doesn’t work > Run TARGET Script Editor > Run Script = CMS Left doesn’t work
4. Uninstalled TARGET 3.0.16 > Restarted > Installed TARGET 1.0.11.304 again > Restarted > Run TARGET GUI > Run Configuration combining Stick and Throttle = CMS Left works > Run TARGET Script Editor > Run Script = CMS Left works
I’ve also noticed something else - TARGET 3.0.16 DEVICE ANALYZER shows many other HID devices. I don’t see them in TARGET 1.0.11.304 DEVICE ANALYZER…
Only thing I had to change in my script to work with TARGET 1.0.11.304 was deleting these lines:
Configure(&T16000L, MODE_EXCLUDED); Configure(&TFRPRudder, MODE_EXCLUDED); Configure(&TWCSThrottle, MODE_EXCLUDED);
^ Obvious reasons - TARGET 1.0.11.304 doesn’t know these newest TM controllers.
So I guess it’s time to contact TM support to look at this issue.Thanks to Frederf once more! :bowd:
[EDIT] I’ve just got the answer from TM Support:
@TM:
Thank you for contacting Thrustmaster Technical Support.
The issue you are experiencing is due to a bug brought in by the new version of TARGET.
Our programmers are working at the moment at an update to fix this.
In the meantime the only thing we can do is wait as there is no ETA for the release of a new version.
-
So I won’t be upgrading my Target Software, not that I normally would unless I had too…
Good info.
-
Interestingly I also had this problem. In addition I have Thrustmaster MFDs included in my Thrustmaster Combined set up. On both MFD’s OSB18 doesn’t work despite being set up in Target GUI. I’m using version 3.0.16.426.
I’ve since set up another profile that leaves the MFDs out and they are now programmed directly into BMS.
Defo need Target update. Trot on Thrustmaster.