With this exe it looks like it detected the sainsmart boards.
I completely removed the FTDI_SERIALS line from the config file completely to make sure.
22-Oct-25 09:06:41.094 - *********************************************************
22-Oct-25 09:06:41.096 - DOFLinx for Pinball and MAME Emulators - DOFLinx by DDH69
22-Oct-25 09:06:41.097 - Starting up - version 9.07 Beta 1
22-Oct-25 09:06:41.097 - *********************************************************
22-Oct-25 09:06:41.136 - DEBUG enabled with showing of window True
22-Oct-25 09:06:41.143 * BETA logging flag enabled
22-Oct-25 09:06:41.154 * DOF path taken from CLSID = C:\DirectOutput\x64\
22-Oct-25 09:06:41.155 - DOF (DirectOutput.dll) path used = C:\DirectOutput\x64\
22-Oct-25 09:06:41.157 - DirectOutput.dll version = 3.2.9313.40083 dated 7/1/2025 10:16:08 PM
22-Oct-25 09:06:41.179 - Windows OS on X64 processor with 64 bit operating system and 64 bit application
22-Oct-25 09:06:41.180 - If you like it, please make a donation here https://www.paypal.com/donate?hosted_button_id=YEPCTUYFX5KDE
22-Oct-25 09:06:41.182 - The guide can be found here https://doflinx.github.io/docs/
22-Oct-25 09:06:41.183 - For support come and visit the community here https://www.vpforums.org/index.php?showforum=104
22-Oct-25 09:06:41.186 - Pre-Reading DOFLinx.ini startup config file details
22-Oct-25 09:06:41.222 * Processing parameter 'DEBUG' with data '1' not in real-time
22-Oct-25 09:06:41.225 - DEBUG enabled with showing of window True
22-Oct-25 09:06:41.229 - DEBUG enabled with showing of window True
22-Oct-25 09:06:41.234 * Running Start_DOF_Pinball - Current DOF ROM = New ROM = doflinx
22-Oct-25 09:06:41.254 - No DOF Global Config file supplied
22-Oct-25 09:06:41.256 * Cannot find Global Config File called 'C:\DirectOutput\config\GlobalConfig.xml'
22-Oct-25 09:06:41.268 * Joystick number = 1 Return code = 0
22-Oct-25 09:06:41.270 - Joystick # 1 detected : 16 buttons Z-Axis
22-Oct-25 09:06:41.273 * Joystick number = 2 Return code = 165
22-Oct-25 09:06:41.275 * Joystick number = 3 Return code = 165
22-Oct-25 09:06:41.278 * Joystick number = 4 Return code = 165
22-Oct-25 09:06:41.280 * Joystick number = 5 Return code = 165
22-Oct-25 09:06:41.283 * Joystick number = 6 Return code = 165
22-Oct-25 09:06:41.285 * Joystick number = 7 Return code = 165
22-Oct-25 09:06:41.288 * Joystick number = 8 Return code = 165
22-Oct-25 09:06:41.291 * Joystick number = 9 Return code = 165
22-Oct-25 09:06:41.294 * Joystick number = 10 Return code = 165
22-Oct-25 09:06:41.297 * Joystick number = 11 Return code = 165
22-Oct-25 09:06:41.300 * Joystick number = 12 Return code = 165
22-Oct-25 09:06:41.303 * Joystick number = 13 Return code = 165
22-Oct-25 09:06:41.306 * Joystick number = 14 Return code = 165
22-Oct-25 09:06:41.309 * Joystick number = 15 Return code = 165
22-Oct-25 09:06:41.312 * Joystick number = 16 Return code = 165
22-Oct-25 09:06:41.337 * 0 Pinscape device(s) found
22-Oct-25 09:06:41.348 * 0 Pinscape Pico device(s) found
22-Oct-25 09:06:41.359 * 0 Dudes Cab(s) found
22-Oct-25 09:06:42.026 - PinOne Port =
22-Oct-25 09:06:42.032 * No PinOne device found
22-Oct-25 09:06:42.055 * 0 LEDWiz device(s) found
22-Oct-25 09:06:42.096 * 2 FTDI (Sainsmart) device(s) found
22-Oct-25 09:06:42.123 - DOFLinx Device: 1 Initializing as FTDI (Sainsmart) #1 serial # AB0NXY9C
22-Oct-25 09:06:42.131 - DOFLinx device:1 FTDI (Sainsmart) setup with 8 outputs
22-Oct-25 09:06:42.135 - DOFLinx Device: 2 Initializing as FTDI (Sainsmart) #2 serial # AH05I3HQ
22-Oct-25 09:06:42.140 - DOFLinx device:2 FTDI (Sainsmart) setup with 8 outputs
22-Oct-25 09:06:42.148 * 0 PacLED64 device(s) found
22-Oct-25 09:06:42.154 * 0 Ultimate IO device(s) found
22-Oct-25 09:06:42.161 * DOFAllOff updating output device #1
22-Oct-25 09:06:42.165 * DOFAllOff updating output device #2
22-Oct-25 09:06:42.170 - Reading DOFLinx.ini startup config file details
22-Oct-25 09:06:42.175 * Processing parameter 'DEBUG' with data '1' not in real-time
22-Oct-25 09:06:42.182 - DEBUG enabled with showing of window True
22-Oct-25 09:06:42.187 - Reading colour file named C:\DOFLinx\config\colours.ini
22-Oct-25 09:06:42.193 - The path 'C:\B2SServer\' does not exist
22-Oct-25 09:06:42.198 - The path 'C:\Pixelcade\' does not exist
22-Oct-25 09:06:42.204 - The path 'C:\HI2TXT\' does not exist
22-Oct-25 09:06:42.209 - The path 'C:\MAME\' does not exist
22-Oct-25 09:06:42.214 - The parameter 'PIXELCADE_MENU_HISCORE' with data '1' was not processed. Realtime flag=False Process active flag=False
22-Oct-25 09:06:42.224 - DEBUG enabled with showing of window True
22-Oct-25 09:06:42.231 - Set Debug Privilege = Set OK
22-Oct-25 09:06:42.238 - No pixelcade.ini or settings.ini file could be found in the PATH_PIXELCADE= location
22-Oct-25 09:06:42.246 * Trying to start pixelweb
22-Oct-25 09:06:42.253 - Failed to start pixelweb. Check your PATH_PIXELCADE= is correct
22-Oct-25 09:06:42.262 *
22-Oct-25 09:06:42.278 * Checking DOF2DMD
22-Oct-25 09:06:42.295 - BASS version 2.4.17.5
22-Oct-25 09:06:42.320 - Found sound device #1 = 'Default' is enabled and is the default
22-Oct-25 09:06:42.331 - Found sound device #2 = '4 - LG ULTRAGEAR (AMD High Definition Audio Device)' is enabled
22-Oct-25 09:06:42.345 - Found sound device #3 = '3 - CL07-HDMI (AMD High Definition Audio Device)' is enabled
22-Oct-25 09:06:42.358 - Found sound device #4 = 'Speakers (USB Sound Device)' is enabled and is the default
22-Oct-25 09:06:42.370 - Found sound device #5 = 'Digital Audio (S/PDIF) (High Definition Audio Device)' is enabled
22-Oct-25 09:06:42.415 - 8 Speakers detected
22-Oct-25 09:06:42.427 - C:\MAME\mame.exe for game names was not found
22-Oct-25 09:06:42.441 * DOFAllOff updating output device #1
22-Oct-25 09:06:42.453 * DOFAllOff updating output device #2
22-Oct-25 09:06:42.508 * BG creation worked OK
22-Oct-25 09:06:42.547 - Loading menu.ini
22-Oct-25 09:06:42.559 - Processing parameter 'LOAD_SOUND' with data 'LFlipper,100,LEFT_REAR,Flipper_L01,Flipper_L02,Flipper_L03,Flipper_L04,Flipper_L05,Flipper_L06,Flipper_L07,Flipper_L08,Flipper_L09,Flipper_L10,Flipper_L11' in real-time
22-Oct-25 09:06:42.583 - Processing parameter 'LOAD_SOUND' with data 'RFlipper,100,RIGHT_REAR,Flipper_R01,Flipper_R02,Flipper_R03,Flipper_R04,Flipper_R05,Flipper_R06,Flipper_R07,Flipper_R08,Flipper_R09,Flipper_R10,Flipper_R11' in real-time
22-Oct-25 09:06:42.596 - Processing parameter 'LOAD_SOUND' with data 'BallColl,100,REAR,Ball_Collide_1,Ball_Collide_2,Ball_Collide_3,Ball_Collide_4,Ball_Collide_5,Ball_Collide_6,Ball_Collide_7' in real-time
22-Oct-25 09:06:42.610 - Processing parameter 'LOAD_SOUND' with data 'DropTarget,100,SIDE,Drop_Target_Down_1,Drop_Target_Down_2,Drop_Target_Down_3,Drop_Target_Down_4,Drop_Target_Down_5,Drop_Target_Down_6' in real-time
22-Oct-25 09:06:42.636 - Trigger thread starting
22-Oct-25 09:06:43.268 - Stopping ROM
That is the full log from the launch.
Hope it helps and let me know if there is anything else I can test.