Problems setting up TM Warthog
-
Trying to get my Thrustmaster Warthog joystick and throttle to operate in 4.33U1 with CH rudder pedals.
No matter how I configure them in setup only one will work, ie I can have joystick but not throttle.
Have seen posts about “Device ordering” but not clear if this is the problem and if so how to solve it.
Ant help appreciated.
Tailfin
-
In the setup where you select the controller in the drop down menu, select your pitch-bank controller (aka joystick) and leave it alone. The other axes (rudder, throttle) may not work immediately but don’t panic. Set them under flight control in advanced.
If you don’t see “Keyboard, Joystick, Throttle, Pedals” (4 items) in the drop down menu in whatever order then that’s a problem.
-
I’ve been having the same issues. I’ve checked the Manual and verified the order of my controllers in the DeviceSorting.txt. file. I tried to use some other TARGET profiles, but was not fully able to modify some keys. I went back to the BMS manual, which recommended just using the controllers outside of Target. This was great, and I was easily able to quickly setup my buttons/keys. Problem is that either the joystick won’t work, or the throttle won’t work. Once I go into the settings and re-verify, then the other controller doesn’t work. In settings page, everything looks good and all the settings seem correct.
I may just re-download the game and start from scratch. -
Thanks for this. Problem solved. Key point is to set joystick in the drop down menu in controllers (and leave it set) then adjust throttle and pedals in advanced menu.
Tailfin
-
Tailfin. One last question. When I adjust the throttle and pedals, (in the advanced menu), do I have to change the highlighted area on the controller page from joystick to throttle (make adjustments in advanced settings), then change highlighted area on controller page to pedals (make adjustments), then save? Or do I just made all of the modifications in the advanced menu with the joystick highlighted on the controller page? Hope this makes sense.
-
Tailfin. One last question. When I adjust the throttle and pedals, (in the advanced menu), do I have to change the highlighted area on the controller page from joystick to throttle (make adjustments in advanced settings), then change highlighted area on controller page to pedals (make adjustments), then save? ……
No.
Or do I just made all of the modifications in the advanced menu with the joystick highlighted on the controller page?
Yes.
In the setup where you select the controller in the drop down menu, select your pitch-bank controller (aka joystick) and leave it alone. The other axes (rudder, throttle) may not work immediately but don’t panic. Set them under flight control in advanced.
If you don’t see “Keyboard, Joystick, Throttle, Pedals” (4 items) [or however many devices you have] in the drop down menu in whatever order then that’s a problem.
-
Tailfin - Thanks for the advice. Kept joystick controller highlighted and changed throttle and rudder settings within the Advanced Settings Page. Finally - now I can get on to starting the training process and enjoying this sim.
-
I’m having a similar issue with my warthog. I have successfully mapped almost all my buttons and whatnots and keep joystick highlighted but cannot map the throttle hat switch (index finger button on throttle). It shows as hat switch 1 when throttle is highlighted but doesn’t respond when js is highlighted. I have the JS hat mapped to trim as it should be and it is named hat 1. Seems that the naming being the same is getting in the way. Anybody got a clue on how to fix this. Maybe there is a way to rename the throttle hat?
As always thanks in advance for the help.
-Climber -
Best way is to create new configuration in TARGET GUI, which contains throttle and stick, then you can assign hat switch as buttons. In the bms choose thrustmaster combined as a controller. It should work.
-
I’m having a similar issue with my warthog. I have successfully mapped almost all my buttons and whatnots and keep joystick highlighted but cannot map the throttle hat switch (index finger button on throttle). It shows as hat switch 1 when throttle is highlighted but doesn’t respond when js is highlighted. I have the JS hat mapped to trim as it should be and it is named hat 1. Seems that the naming being the same is getting in the way. Anybody got a clue on how to fix this. Maybe there is a way to rename the throttle hat?
As always thanks in advance for the help.
-ClimberWhen you say “is highlight” do you mean selected in the drop-down menu in SETUP? Because you cannot change which controller is selected on this drop-down menu. You choose the device which has your pitch and roll axes and leave it alone. All of the other devices in this menu are accessible regardless of your selection here. The exception for accessibility is that you cannot bind the POV hat on any controller except the primary in BMS.
For example if you have 4 joysticks: Joystick 1, Joystick 2, Joystick 3, Joystick 4. Pretend that pitch and roll axes are on Joystick 3. Then you must select this Joystick 3 in the drop-down menu. You can still use all 32 buttons and 8 axes for Joystick 1, Joystick 2, and Joystick 4. But only POV hat for Joystick 3 will work since it is selected as primary.
For using TARGET the coolie hat is CSU, CSR, CSD, CSL. If throttle controller isn’t the primary then you must bind the coolie hat to some function except DXHATUP, DXHATUPRIGHT, DXHATRIGHT,
DXHATDOWNRIGHT, DXHATDOWN, DXHATDOWNLEFT, DXHATLEFT, DXHATUPLEFT. -
Best way is to create new configuration in TARGET GUI, which contains throttle and stick, then you can assign hat switch as buttons. In the bms choose thrustmaster combined as a controller. It should work.
I am in similar situation since I use Warthog joystick and throttle without TARGET,
so the throttle hat switch does not work in BMS433.is there a tutorial how do you set up TARGET to make the hat switch works in BMS?
-
If you understand how to make a button give an arbitrary output in TARGET (GUI or plain script) then you understand how to make the coolie switch provide a BMS-readable input. For example in my script these are my CS_ output definitions:
MapKey(&Throttle, CSU, DX11); //COMM-IFF UHF SimTransmitCom1 MapKey(&Throttle, CSR, DX12); //COMM-IFF IN SimCommsSwitchRight MapKey(&Throttle, CSD, DX13); //COMM-IFF VHF SimTransmitCom2 MapKey(&Throttle, CSL, DX14); //COMM-IFF OUT SimCommsSwitchLeft
It’s pretty simple to see that they are bound to buttons 11-14.
TARGET configurations are either one of two types: both joystick and throttle are combined under the TARGET virtual device or only the throttle is. In the former case you can actually assign DXHATUP, etc. to the coolie switch if you want because it will be the primary controller. You wouldn’t also be able to assign the Hat1 on the joystick to DXHATUP, etc. if you do this. No matter what you choose all you must do is devise a plan where the physical controls on both controllers map in some way onto the 32 buttons, 8 axes, and 1 POV of the logical DX device and any keyboard emulation.
The other configuration, where only the throttle is included in the TARGET virtual device (the one I strongly recommend), your joystick will be the primary device and the TARGET controller output is limited to 32 buttons and 8 axes (POV not available). The reason I recommend this is that the joystick device doesn’t benefit from TARGET programming since its design match the F-16 so perfectly. The very limited resources of the single TARGET virtual device don’t have to be shared between two devices.
-
thanks for the reply, Frederf.
sorry I am really a noob about TARGET,
what is CS_ output definitions?so I need to use TARGET script editor,
let say I put only the throttle under target.
from “menu” I choose “new”,
then choose “tmc”
then I put:MapKey(&Throttle, CSU, DX11); //COMM-IFF UHF SimTransmitCom1
MapKey(&Throttle, CSR, DX12); //COMM-IFF IN SimCommsSwitchRight
MapKey(&Throttle, CSD, DX13); //COMM-IFF VHF SimTransmitCom2
MapKey(&Throttle, CSL, DX14); //COMM-IFF OUT SimCommsSwitchLeftexactly as you write it in the new tmc file?
then save it and run it?
is that all?ps. my drive c is almost full, is there a way to install TARGET to other drive?
-
Sorry I write CS_ to mean the collection of CSU, CSR, CSD, CSL. Those are the TARGET nicknames for the buttons on the controllers for the coolie switch. That is just me being lazy in typing.
New TARGET script looks like this (ignore colored text for now):
include "target.tmh" //program startup int main() { [color]Configure(&Joystick, MODE_EXCLUDED);[/color] if(Init(&EventHandle)) return 1; // declare the event handler, return on error //add initialization code here [color]MapKey(&Throttle, CSU, DX11);[/color] } //event handler int EventHandle(int type, alias o, int x) { DefaultMapping(&o, x); //add event handling code here }
First let us run only the black text, the blank new .tmc file. The first thing you notice is that buttons are having output even though there is no information about this in the script. This is a feature which will automatically create bindings if there is an absence of other script information. So you run the script with the green play arrow. If there is a problem with the script text it will fail and auto-stop, but if it is valid then it will keep running and you’ll see red stop square. Then there is a button DEVICE ANALYZER which brings up a window. In the upper left corner there is a round button. Press this and choose “Thrustmaster Combined” as device to look at. Then on the left side will be the input and on the right the output. It should look roughly like this: http://i.imgur.com/Eje7oBE.png
Inspecting the input-output relationship we notice that the joystick buttons take up the first 19 buttons of the output. Button 20-32 are being activated by the throttle buttons (in order): LTB, SC, CSU, CSR, CSD, CSL, MSP, MSU, MSR, MSD, MSL, SPDF, SPDB. All other buttons on the throttle have no function because 32 is the highest number in the universe.
Now we add the red text and check the device analyzer again. We notice almost the same behavior with 1-19 being activated by the joystick. Instead of “22” being illuminated by CSU as before now it illuminates the “11” square. We’ve bound CSU to “11” and not the automatic number. However we quickly realize that both devices trying to share the limited resources of the TARGET virtual device.
Now let’s add the blue text and look at the output again (note it has to be the if statement or it is ignored). As one would expect the joystick is excluded so the throttle gets exclusive access to all of those 32 buttons. Look at the output again. It’s the same results as before except that the joystick doesn’t illuminate buttons 1-19 on the output.
Now this is a solid foundation to create a script. It may be some work but you simply make a line for every input to every output until you’re satisfied. Let me know if there is any behavior you want that you don’t know how to do and refer to TARGET_SCRIPT_EDITOR_basics.pdf as well.
-
I am in similar situation since I use Warthog joystick and throttle without TARGET,
so the throttle hat switch does not work in BMS433.is there a tutorial how do you set up TARGET to make the hat switch works in BMS?
Same situation here. Why does that TQS hat switch not work through the BMX XL key configure?
-
Sorry I write CS_ to mean the collection of CSU, CSR, CSD, CSL. Those are the TARGET nicknames for the buttons on the controllers for the coolie switch. That is just me being lazy in typing.
New TARGET script looks like this (ignore colored text for now):
include "target.tmh" //program startup int main() { [color]Configure(&Joystick, MODE_EXCLUDED);[/color] if(Init(&EventHandle)) return 1; // declare the event handler, return on error //add initialization code here [color]MapKey(&Throttle, CSU, DX11);[/color] } //event handler int EventHandle(int type, alias o, int x) { DefaultMapping(&o, x); //add event handling code here }
First let us run only the black text, the blank new .tmc file. The first thing you notice is that buttons are having output even though there is no information about this in the script. This is a feature which will automatically create bindings if there is an absence of other script information. So you run the script with the green play arrow. If there is a problem with the script text it will fail and auto-stop, but if it is valid then it will keep running and you’ll see red stop square. Then there is a button DEVICE ANALYZER which brings up a window. In the upper left corner there is a round button. Press this and choose “Thrustmaster Combined” as device to look at. Then on the left side will be the input and on the right the output. It should look roughly like this: http://i.imgur.com/Eje7oBE.png
Inspecting the input-output relationship we notice that the joystick buttons take up the first 19 buttons of the output. Button 20-32 are being activated by the throttle buttons (in order): LTB, SC, CSU, CSR, CSD, CSL, MSP, MSU, MSR, MSD, MSL, SPDF, SPDB. All other buttons on the throttle have no function because 32 is the highest number in the universe.
Now we add the red text and check the device analyzer again. We notice almost the same behavior with 1-19 being activated by the joystick. Instead of “22” being illuminated by CSU as before now it illuminates the “11” square. We’ve bound CSU to “11” and not the automatic number. However we quickly realize that both devices trying to share the limited resources of the TARGET virtual device.
Now let’s add the blue text and look at the output again (note it has to be the if statement or it is ignored). As one would expect the joystick is excluded so the throttle gets exclusive access to all of those 32 buttons. Look at the output again. It’s the same results as before except that the joystick doesn’t illuminate buttons 1-19 on the output.
Now this is a solid foundation to create a script. It may be some work but you simply make a line for every input to every output until you’re satisfied. Let me know if there is any behavior you want that you don’t know how to do and refer to TARGET_SCRIPT_EDITOR_basics.pdf as well.
thanks for the very informative reply, Frederf !
it seems I have to do some trial and error in programming TARGET and read the basic.pdf,
but thanks to you now I get some idea how to do it.one more question:
if I want to turn led 1 on while I open speed brake, and turn it off when I close it.
how do you write the script for that? -
Strictly speaking the only way to surely have the light on when speedbrake is open and off when speedbrake is closed is to used a shared memory program and set the light based on that information. I’ve done the landing gear lights and it is possible but I found it a pain to always run the sharedmem program every time I flew and the 5 LEDs were a pain to see around the throttle handle. In the end I decided it was a gimmick and looked inside the cockpit.
If you want to do it it can definitely be done. First you download the sharedmem package https://www.benchmarksims.org/forum/showthread.php?24415. You include “FalconBMS/falcon.tmc” for the extra custom functions. Then you define a custom TARGET function which checks for the speedbrake state and sets the LEDs accordingly.
On the other end of the spectrum is something much simpler but isn’t a direct read:
MapKey(&Throttle, SPDF, CHAIN(DX1, LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1) ) ); MapKey(&Throttle, SPDB, CHAIN(DX2, LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1) ) ); ```That simply turns the light off with the switch pressed one way and on pressed the other. It doesn't know if you closed it all the way or if you opened it enough to stay open (F-16 SB close automatically if they are left open a small amount). They also don't know if the airplane is on or even if you're playing BMS at all. And there are coding solutions in between a simple light switch and reading sharedmem like a timer which decreases the longer the switch is left forward and increases when held back to do an approximate guess if the SB is open or closed.
-
thanks Frederf for sharing your experience.
so now what do you use the 5 LEDs for?
-
Absolutely nothing.
-
Frederf,
Where does this limitation of only one POV, regardless of the number of controllers with their own POVs,
come from (windows-DX or BMS)?“But only POV hat for Joystick 3 will work since it is selected as primary.”
When you say “is highlight” do you mean selected in the drop-down menu in SETUP? Because you cannot change which controller is selected on this drop-down menu. You choose the device which has your pitch and roll axes and leave it alone. All of the other devices in this menu are accessible regardless of your selection here. The exception for accessibility is that you cannot bind the POV hat on any controller except the primary in BMS.
For example if you have 4 joysticks: Joystick 1, Joystick 2, Joystick 3, Joystick 4. Pretend that pitch and roll axes are on Joystick 3. Then you must select this Joystick 3 in the drop-down menu. You can still use all 32 buttons and 8 axes for Joystick 1, Joystick 2, and Joystick 4. But only POV hat for Joystick 3 will work since it is selected as primary.
For using TARGET the coolie hat is CSU, CSR, CSD, CSL. If throttle controller isn’t the primary then you must bind the coolie hat to some function except DXHATUP, DXHATUPRIGHT, DXHATRIGHT,
DXHATDOWNRIGHT, DXHATDOWN, DXHATDOWNLEFT, DXHATLEFT, DXHATUPLEFT.