1
Discussion - Drivers / D3XX 64-bit driver problem with multiple devices connected
« on: February 04, 2019, 12:54:50 pm »
I'm using the FTD3XX_NET wrapper relying on the D3XX driver.
The D3xx driver v. 1.3.0.2 seems buggy in the 64-bit version. In this version, when the wrapper is used for enumerating the connected devices:
FTDI ftdi = new FTDI();
uint nDevices;
ftdi.CreateDeviceInfoList(out nDevices);
List<FTDI.FT_DEVICE_INFO> deviceInfoList;
deviceFtdi.GetDeviceInfoList(out deviceInfoList);
AND in case there are two devices connected, the second device in the list has Description empty and serial 0 (ftdi.GetDescriptio(deviceInfo) and ftdi.GetSerialNumber(deviceInfo)). While in the 32-bit version, the right Description and serial is returned also for the second device.
Looking deeper, when in 64-bit, the deviceInfo of the second device seems to have the data in the byte[] array field for Description (and similarly the one for Serial) shifted:
[0, 0, 0, 0, 70, 84, 68, 73, 32, 83.....]
while the first device has not those 4 initial bytes at 0.
The D3xx driver v. 1.3.0.2 seems buggy in the 64-bit version. In this version, when the wrapper is used for enumerating the connected devices:
FTDI ftdi = new FTDI();
uint nDevices;
ftdi.CreateDeviceInfoList(out nDevices);
List<FTDI.FT_DEVICE_INFO> deviceInfoList;
deviceFtdi.GetDeviceInfoList(out deviceInfoList);
AND in case there are two devices connected, the second device in the list has Description empty and serial 0 (ftdi.GetDescriptio(deviceInfo) and ftdi.GetSerialNumber(deviceInfo)). While in the 32-bit version, the right Description and serial is returned also for the second device.
Looking deeper, when in 64-bit, the deviceInfo of the second device seems to have the data in the byte[] array field for Description (and similarly the one for Serial) shifted:
[0, 0, 0, 0, 70, 84, 68, 73, 32, 83.....]
while the first device has not those 4 initial bytes at 0.