I am developing software for a custom PCB with an FT600, with software development happening on a desktop with Debian GNU/Linux 10 (buster). I'm having some trouble, so here are the steps I've gone through:
1.) I installed the D3XX linux x64 drivers per the instructions in the README.pdf and compiled the example code.
2.) I connect the USB device and use lsusb to verify that the device appears in the list (VID=0403, PID=601e).
3.) I added a udev rule to allow the dialout group permission to use the FT600 device and added my user to the group.
4.) I reload the udev rules. (I've also re-booted at various times, so the new rules should be in effect.)
5.) I wrote the simple code below to
#include <stdio.h>
#include "ftd3xx.h"
int main(int argc, char *argv[])
{
FT_HANDLE ftHandle = NULL;
FT_STATUS ftStatus;
DWORD numDevs = 0;
ftStatus = FT_CreateDeviceInfoList(&numDevs);
if(!FT_FAILED(ftStatus) && numDevs > 0)
{
FT_HANDLE ftHandle = NULL;
DWORD Flags = 0;
DWORD Type = 0;
DWORD ID = 0;
char SerialNumber[16] = { 0 };
char Description[32] = { 0 };
printf("List of Connected Devices!\n\n");
for(DWORD i = 0; i <numDevs; i++)
{
ftStatus = FT_GetDeviceInfoDetail(i, &Flags, &Type, &ID, NULL, SerialNumber, Description, &ftHandle);
if(!FT_FAILED(ftStatus))
{
printf("Device[%d]\n", i);
printf("\tFlags: 0x%x %s| Type: %d | ID: 0x%08X | ftHandle=0x%x\n",Flags,Flags & FT_FLAGS_SUPERSPEED? "[USB 3]":Flags & FT_FLAGS_HISPEED? "[USB 2]":Flags & FT_FLAGS_OPENED? "[OPENED]": "",Type,ID,ftHandle);
printf("\tSerialNumber=%s\n", SerialNumber);printf("\tDescription=%s\n", Description);
}
}
ftStatus = FT_Create(0,FT_OPEN_BY_INDEX,&ftHandle);
if(!ftStatus)
printf("FT_Create Success!\n");
else
printf("FT_Create: %d, Failed\n",ftStatus);
}
return 0;
}
The output of this code is below, and shows that FT_Create fails with code FT_DEVICE_NOT_FOUND.
List of Connected Devices!
Device[0]
Flags: 0x4 [USB 3]| Type: 600 | ID: 0x0403601E | ftHandle=0x0
SerialNumber=
Description=
FT_Create: 2, Failed
I tried this again on a different machine which is running Ubuntu 18.04, and instead, the FT_Create succeeds.
Could you please provide some guidance as to how to diagnose and solve the failure of FT_Create?
Thanks,
Tyler