BMS2Target: BMS to Thrustmaster HOTAS LED Controller (Viper Mission Pack and Viper Panel)
-
What Is BMS2TARGET?
With the recent release of the new Thrustmaster Viper Mission Pack and Viper Panel, many users have shared their dismay that the landing gear and other indicators are not working/integrated with BMS. This isn’t a fault of the product or Thrustmaster as there are far too many applications of which each has its unique style of exposing simulation data. It isn’t fair to expect Thrustmaster to support all of those applications and this is where the community fills the gap.
Along with BMS2TARGET, you will also need TMHotasLEDSync. Together, they enable the LEDs on the Viper Mission Pack and Viper Panel to relay the indicators in the cockpits of BMS. There is a caveat though as I will explain below.
For the Viper Mission Pack and Viper Panel, there are LEDs that can be used to relay the indicators of the F-16 landing gear, the landing gear handle and the threat warning auxiliary panel. It also has two columns of five user-programmable LEDs. However, the LEDs in the threat warning auxiliary switches do not fully mimic those of the real aircraft. Specifically, the “altitude” switch can either be illuminated red or green on the Viper Mission Pack / Panel as opposed to “LOW” in amber and “ALT” in green. Also, the ACT/PWR switch can only be illuminated fully as opposed to individually for “S” and “POWER”. Therefore we have to accept some compromises in the way in which the indicators of the F-16 can be shown on the Viper Mission Pack / Panel.
For now, BMS2Target only supports the F-16. In the future, I may expand it to the Warthog for the F-18 and F-15.
How it works:
BMS2Target.exe is a console application for 64-bit Windows. I have not built a 32-bit version and I would expect 99.99% of users will not be on Windows XP!
BMS2Target.exe reads data from the Falcon BMS shared memory and sends the relevant lamp data to the Thrustmaster TARGET software that is running the TMHotasLEDSync.tmc script. The data is sent via TCP and only if the data changes. The TARGET script handles each packet through an event. Thus it is fairly efficient and should introduce any significant load on your CPU.
BMS2Target.exe reads the Falcon shared memory every 100ms (that’s ten times a second). It’s not too taxing on the system yet fast enough so that we humans shouldn’t notice any lag.
The TARGET script does not configure your ViperTQS for use with BMS. It merely controls the LEDs of the ViperTQS. If you are using a TARGET script to map your device to BMS, I advise you to use the Alternative Launcher instead. However, if you wish to use a target script to map the ViperTQS to BMS, well, you’ll have to try to figure out how to combine this script with yours. Please don’t ask me to help with combining scripts, you’re going to have to figure that out on your own.
Installation:
Download the bms2target.exe file from the releases section of the BMS2Target GitHub repository put it anywhere on your PC.
Download and unzip the TMHotasLEDSync.zip file from the releases section of the TMHotasLEDSync GitHub repository to a folder of your choosing.How to use:
- Run the bms2target.exe by double clicking on it.
- Start the Thrustmaster T.A.R.G.E.T. script editor.
- Open the TMHotasLEDSync.tmc script from the folder where you extracted TMHotasLEDSync.zip.
- Start the script.
- Start BMS.
Tested aircraft:
F-16 CM Blk 40
F-16 CM Blk 50
F-16 CM Blk 52
F-16 DM Blk 52Other variants of the F-16 may or may not function as expected. Let me know of any problems and I will endeavour to correct them.
LED Columns:
The left user LED column is used to indicate the speed brake position. The right user LED column is configured as follows from top to bottom:
- JFS Run
- Main Gen
- Stby Gen
- FLCS Rly
- EPU Run
Suggestions and Feature Request:
Feel free to make any suggestions for improvements below.
Need Help?
In the first instance, ensure you have installed the v3.0.23.1003 or later of the Thrustmaster TARGET software. Most problems are due to people running old versions of the Thrustmaster TARGET software. If that does not solve your problem, raise an issue in this thread or here.
Be sure to include the output of the bms2target.exe console window and TARGET script editor console output in your message (you can select, copy and paste directly from the TARGET console output using your mouse).
If the bms2target.exe closes before you can copy the output, you can redirect the output to a log file using the following command. You will need to run it from a Windows PowerShell command prompt window where your bms2target.exe resides. You can do this by navigating to where your bms2target.exe is in Windows File Explorer, then right click in an empty area of the right hand pane and select “Open in Terminal”.
powershell ".\BMS2Target.exe | tee bms2target.log"
-
Feature Requests
ViperTQS Specific:
Two Columns of LEDs:
- Speed brake - show the amount brake is open/closed
- Radar/Missile alert:
Radar lock - all LEDs lit.
Missile launch detected - all LEDs flash.
Warthog Specific:
Column of Five LEDs:
- Speedbrake - show the amount brake is open/closed
- Gear:
Gear Up - bottom four LEDs illuminated
Gear down - bottom four LEDs off
Gear warning - top LED flashing
I can’t think of a way to allow more than one of the above. I also do not feel it worthy to reproduce indications that are already visible in the cockpit and/or have audible alerts.
The speed brake is probably the most sensible one to implement in my opinion.
I would also like to link the brightness of the backlight to the actual aircraft control. This may be possible on the Warthog but I am not aware of a way to do this on the ViperTQS.
Please discuss/throw your ideas into the pot.
-
S scubapics referenced this topic on
-
@scubapics I use TARGET on Warthog LEDs to indicate the status of the ACMI recording. On
the Warhog I have Coolie switch left cycle the ACMI switch.
Switch -------------LED status----Purpose
EVENT MARK----Top LED on----30 second ACMI recording with a trigger pull. ACMI but no video.
RECORD ----------All LEDs on ----continuous ACMI recording. ACMI and simultaneous video.
UNTHRD ----------No LEDS -------recording off. -
@jc1 said in BMS to Thrustmaster ViperTQS LED Controller:
@scubapics I use TARGET on Warthog LEDs to indicate the status of the ACMI recording. On
the Warhog I have Coolie switch left cycle the ACMI switch.
Switch -------------LED status----Purpose
EVENT MARK----Top LED on----30 second ACMI recording with a trigger pull. ACMI but no video.
RECORD ----------All LEDs on ----continuous ACMI recording. ACMI and simultaneous video.
UNTHRD ----------No LEDS -------recording off.I may be wrong but I think you have missed the purpose of this tool. The purpose is to have BMS control the LEDs. i.e. the tool reads the status of the cockpit in BMS and sets the LEDs on a Thrustmaster device to reflect that status.
-
@scubapics I understand the purpose of your tool for ViperTQS. I just posted my use of the Warthog LEDs as a way of showing how LEDs could be used for something other than Gear and Speedbrake. I don’t know how to make use of BMS shared memory, but if the shared memory revealed whether ACMI is recording and I better understood how to use BMS shared memory, I could also have my TARGET script record ACMI and video simultaneously for the trigger pull.
-
@jc1 said in BMS to Thrustmaster ViperTQS LED Controller:
@scubapics I understand the purpose of your tool for ViperTQS. I just posted my use of the Warthog LEDs as a way of showing how LEDs could be used for something other than Gear and Speedbrake. I don’t know how to make use of BMS shared memory, but if the shared memory revealed weather ACMI is recording and I better understood how to use BMS shared memory, I could also have my TARGET script record ACMI and video simultaneously for the trigger pull.
I’ll see if this is something that can be pulled from the shared memory. Thanks for your contribution. It’s a good idea.
-
@scubapics PAPI lights would be cool. Couldn’t find anything in FlightData.h which makes sense, because it actually isn’t “FlightData”.
And of course, prereq are an issue (not be available on every ariport? ATC switch them on? Visible at which range? weather/viewing conditions? Dependend on NAV mode or no?). But at least it would be something not already there without cheating to much.
-
-
@scubapics Another fantastic work thanks man
-
-
Could you add a version number for your application BMS2Target? Hard to know which version is currently running. Would be very nice to have a version number for “BMS2Target.exe”.
May be there is already an option that I’m not aware of to get this application version number?
It would be nice also is this executable “version number” appear in the “black cmd screen” when starting your app…
This software is very cool! Nice job scubapics! It work very well for me, I really enjoy it.
Thank you so much! -
@101-Spyder Sure. I’ll add it for the next release.
-
For the life of me, I can’t get it to work. Could you post the procedure, step by step, in check list form since we are all simmers here?
-
@skippermike said in BMS to Thrustmaster ViperTQS LED Controller:
For the life of me, I can’t get it to work. Could you post the procedure, step by step, in check list form since we are all simmers here?
If you share the output of the TARGET script editor console window (select all the text, copy, paste to a file share the file here) I can see what you may have got wrong. Also the output of the BMS2Target console window.
-
download both files provided b scubapicsin the 1st post of this thread. Place them where you store your Thrustmaster configuration files usually. Mine are located at C:\Users\r00t\Documents\Thrustmaster HOTAS Configurations\F16 - Falcon BMSDownload and install T.A.R.G.E.T Software if not already done:https://support.thrustmaster.com/en/product/viper-tqs-mission-pack-en/Open the T.A.R.G.E.T Script Editor. If you choose defaults while installing the T.A.R.G.E.T. Software, the script editor should be located at C:\Program Files (x86)\Thrustmaster\TARGET\x64in the Script Editor click on “Menu > Open” and select the ViperTQSLEDSync.tmc you downloaded in step 1
Resized:
You generally don’t need to do anything in the code. You just need to click on the green “RUN” Button
which results in
Run the BMS2Target.exe executable. It should connect to the script editor listening on tcp-2323. It will log that to stdout of the window that pops up:
Note: the exe is not signed, windows might moan about it and refuse to start it. You need to trust scubapics exe (i.e. instruct windows in the dialogue to run the exe because you know better).
Start Falcon BMS. The window you started in the step before should now read somethin like the below (connected to target, connected to BMS and the states it is aware of).
As soon as it’s fired up and the shared memory is provided by the process the BMS2Target.exe will read from the shared memory and push the data to the T.A.R.G.E.T. software via tcp. You can see this in the DEBUG output window of the T.A.R.G.E.T script editor (u00000000000: 12 bytes received):
As soon as you change something on the device that triggers (gear handle or one of the four TWA buttons), the logging in both windows should reflect that. If in doubt, start a navigation training mission and fiddle around with your shiny toys.
-
@r00t thanks. I was too hung over today to do anything coherently sensible.
-
S scubapics referenced this topic on
-
@scubapics I was doing exactly what @r00t says and I got this error message:
Error:(internal) cannot associate a filter with the selected USB HID device “VID_044F&PID_0412”
Runtime Error: STOP request received while running main on line 87 in “C:\Program Files (x86)\Thrustmaster\TARGET\scripts\ViperTQSLEDSync.tmc”
Error:Script run timed out!The TQS goes dark and the only way I could find to turn it back on is to restart my PC. The app cannot connect (as expected).
-
@skippermike said in BMS2Target: BMS to Thrustmaster HOTAS LED Controller (Viper Mission Pack and Viper Panel):
@scubapics I was doing exactly what @r00t says and I got this error message:
Error:(internal) cannot associate a filter with the selected USB HID device “VID_044F&PID_0412”
Runtime Error: STOP request received while running main on line 87 in “C:\Program Files (x86)\Thrustmaster\TARGET\scripts\ViperTQSLEDSync.tmc”
Error:Script run timed out!The TQS goes dark and the only way I could find to turn it back on is to restart my PC. The app cannot connect (as expected).
The line with “Error: (internal)” is a fault between TARGET and the device. That’s not something I have caused or can fix. It is an internal TARGET fault. Which version of the TARGET script editor have you installed? You may find using the latest version solves your problem. It should be v3.0.23.1003.
-
Ok. So between now and Monday, I am “in between jobs”. So if anyone has any suggestions for the other LEDs on the ViperTQS… I’m all ears!
Warp factor gauge?
-
My question is, can you run Target for the indicator lights and still use the Alt Launcher Keymapping at the same time?