@ASharpe Thanks for sharing the solution.
I too have a batch file to start Falcon and all the necessary tools I use.
In that batch file, I first check that all my USB peripherals are connected
Here is how I do it :
CLS
title Falcon BMS prep
ECHO ####################
ECHO PREPARING FALCON BMS
ECHO ####################
ECHO.
:Variables
SET BMS_FOLDER=C:\Falcon BMS 4.37
SET BMS_FOLDER_PS=%BMS_FOLDER: =` %
SET SAVED_CONFIG_FOLDER=C:\Users\%USERNAME%\Game Profiles\F4BMS437
SET BACKUP_FOLDER=D:\Falcon BMS Folder\User backup 437
SET EDTRACKER_FOLDER=C:\Program Files (x86)\EDTracker Ltd\EDTracker Pro UI
SET TRACKIR_FOLDER=C:\Program Files (x86)\NaturalPoint\TrackIR5
SET VOICEATTACK_FOLDER=C:\Program Files (x86)\VoiceAttack
SET TARGET_FOLDER=C:\Program Files (x86)\Thrustmaster\TARGET
For /F "Tokens=1-4 Delims=/ " %%A In ('Date /T') Do Set "savedate=%%C_%%B_%%A"
SET deviceerror=no
:AltimeterSetting
ECHO Altimeter setting ?
set /p AltSetting="(1=mbar / 2=inHg) : "
IF "%AltSetting%"=="2" (
powershell -Command "(gc %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg) -replace 'set g_bCalibrationHg 0', 'set g_bCalibrationHg 1' | Out-File -encoding ASCII %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg"
ECHO [X] Altimeter set to inHg
) ELSE (
powershell -Command "(gc %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg) -replace 'set g_bCalibrationHg 1', 'set g_bCalibrationHg 0' | Out-File -encoding ASCII %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg"
ECHO [X] Altimeter set to mbar
)
ECHO ----------------------
:VR
ECHO VR setting ?
set /p VrSetting="(1=ON / 2=OFF) : "
IF "%VrSetting%"=="2" (
powershell -Command "(gc %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg) -replace 'set g_nVRHMD 1', 'set g_nVRHMD 0' | Out-File -encoding ASCII %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg"
ECHO [X] VR OFF
) ELSE (
powershell -Command "(gc %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg) -replace 'set g_nVRHMD 0', 'set g_nVRHMD 1' | Out-File -encoding ASCII %BMS_FOLDER_PS%\User\Config\falcon` BMS` User.cfg"
ECHO [X] VR ON
)
ECHO ----------------------
:Target
(@Start "Target" "%TARGET_FOLDER%\x64\TARGETGUI.exe" -r "%SAVED_CONFIG_FOLDER%\TARGET\F4BMSTargetScript.tmc") && (timeout /t 2 /nobreak >nul)
ECHO Target profile started
ECHO ----------------------
:PeripheriquesUSB
ECHO Game controllers check...
ECHO.
devcon status "USB\VID_044F&PID_0402" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] Warthog Joystick
) else (
ECHO [ ] Warthog Joystick --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_044F&PID_0404" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] Warthog Throttle
) else (
ECHO [ ] Warthog Throttle --- ERROR !!
SET deviceerror=yes
)
devcon find *Thrustmaster* | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] TM combined
) else (
ECHO [ ] TM combined --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_044F&PID_B351" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] MFD1
) else (
ECHO [ ] MFD1 --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_044F&PID_B352" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] MFD2
) else (
ECHO [ ] MFD2 --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_044F&PID_B68F" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] TPR
) else (
ECHO [ ] TPR --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_06A3&PID_FFFF" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] ICP
) else (
ECHO [ ] ICP --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_16D0&PID_0C42" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] ED tracker
) else (
ECHO [ ] ED tracker --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_1395&PID_005D" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] Sennheiser PC373D
) else (
ECHO [ ] Sennheiser PC373D --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_0FD9&PID_006C" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] Stream deck
) else (
ECHO [ ] Stream deck --- ERROR !!
SET deviceerror=yes
)
devcon status "USB\VID_12E0&PID_2001" | findstr /C:"matching device(s) found">NUL
if %errorlevel%==0 (
ECHO [X] FSSB R3 --- ERROR !!
SET deviceerror=yes
) else (
ECHO [ ] FSSB R3
)
if %deviceerror%==yes (
ECHO.
ECHO !! GAME CONTROLLER ERROR !! CHECK ABOVE.
ECHO ----------------------
PAUSE
EXIT
)
ECHO.
ECHO USB devices OK.
ECHO ----------------------
:FilesCopy
ECHO Copying files...
xcopy "%BMS_FOLDER%\User" "%BACKUP_FOLDER%/%savedate%/" /s /i /y >nul
copy /y "%SAVED_CONFIG_FOLDER%\Config\*.*" "%BMS_FOLDER%\User\Config" >nul
copy /y "%SAVED_CONFIG_FOLDER%\RTT\*.*" "%BMS_FOLDER%\Tools\RTTRemote" >nul
ECHO Files copied.
ECHO ----------------------
:TrackIR
IF "%VrSetting%"=="2" (
(cd "%EDTRACKER_FOLDER%\") && (@Start "EDTracker" "%EDTRACKER_FOLDER%\EDTrackerPro.exe") && (timeout /t 4 /nobreak >nul)
REM (@Start "TrackIR" "%TRACKIR_FOLDER%\TrackIR5.exe") && (timeout /t 2) && (@"nircmdc.exe" win min process "TrackIR5.exe")
ECHO Headtracking started
ECHO ----------------------
)
:VoiceAttack
REM @Start "VoiceAttack" "%VOICEATTACK_FOLDER%\VoiceAttack.exe" -profile "F4BMS434" -minimize
REM ECHO VoiceAttack Started
:RTTRemote
REM (cd "%BMS_FOLDER%\Tools\RTTRemote\") && (@Start "RTTRemote" "%BMS_FOLDER%\Tools\RTTRemote\RTTClient64.exe")
:FalconBMS
REM @Start "Falcon BMS Launcher" "%BMS_FOLDER%\Launcher.exe" -window -nomovie
ECHO.
ECHO ####################
ECHO Falcon BMS Ready !
ECHO ####################
PAUSE