Author Topic: Accidentally overridden vendor/product IDs on ftdi chip  (Read 1042 times)

0 Members and 1 Guest are viewing this topic.

Offline wbooth.clearscene

  • Contributor
  • Posts: 15
Accidentally overridden vendor/product IDs on ftdi chip
« on: May 30, 2016, 05:13:29 pm »
TL/DR: I've done something rather silly and have bricked the USB programming ability of my new development board, by inadvertantly overwriting the vendor/product IDs of the on-board ftdi chip. Can anyone point me at something that will help me reset the vendor/product IDs?

I have a Numato Waxwing Spartan 6 FPGA development board. I was trying to work out how to flash the board using xc3sprog, but was unable to get the JTAG tool-chain. Something lead me to try and installing the FTDI libraries from their website. In this download was some utilities to read/write to the EEPROM. Without reading the code for the write utility  :palm:, I ran it and it overwrite a bunch of settings. Most notably the product id. From 0403:6010 -> 0403:6001.

Snip of the code:
Code: [Select]
        FT_STATUS       ftStatus;
        FT_HANDLE       ftHandle0;
        int iport;
        FT_PROGRAM_DATA Data;

        if(argc > 1) {
                sscanf(argv[1], "%d", &iport);
        else {
                iport = 0;
        printf("opening port %d\n", iport);
        FT_SetVIDPID(0x0403, 0x6011); // Odly this reconfigures a 4030:6010 chip ????
        ftStatus = FT_Open(iport, &ftHandle0);

        if(ftStatus != FT_OK) {
                printf("FT_Open(%d) failed\n", iport);
                return 1;

        Data.Signature1 = 0x00000000;
        Data.Signature2 = 0xffffffff;
        Data.VendorId = 0x0403;
        Data.ProductId = 0x6001;
        Data.Manufacturer =  "FTDI";
        Data.ManufacturerId = "FT";
        Data.Description = "USB <-> Serial";
        Data.SerialNumber = "FT000001";

If I try and change the code to update these values back, and open with the device Id using the 'incorrect ids', I just get a "cannot open device" error. Which is where I'm stuck. I can't see why I can't open the device when specifying the IDs as the OS sees them.

* Any ideas on how to change the IDs back?
* Does anyone have the full output of lsusb -v -d 0304:0601
* Anyone have experience of programming a Waxwing using xc3sprog (low priority)

btw. The board has a JTAG programmer, I'm not sure if I can use that to reprogram the FTDI chip, I've never used a JTAG programmer directly. (just putting it out there incase it help come to a solution)

Many many thanks. :)

Offline rs20

  • Super Contributor
  • ***
  • Posts: 2013
  • Country: au
Re: Accidentally overridden vendor/product IDs on ftdi chip
« Reply #1 on: May 30, 2016, 05:15:24 pm »
After recent controversies, there's plenty of instructions on the internet on how to un-brick FTDI devices that have been deliberately bricked by FTDI's window drivers (by zeroing out the VID and PID). Have you tried following those instructions?

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 2828
  • Country: nl
  • Embedded Engineer

Offline wbooth.clearscene

  • Contributor
  • Posts: 15
Re: Accidentally overridden vendor/product IDs on ftdi chip
« Reply #3 on: May 31, 2016, 02:47:37 am »
Cheers. I've managed to re-programming the chip back to the correct vendor: product IDs.
Thanks for the pointers.
« Last Edit: June 05, 2016, 03:21:06 am by wbooth.clearscene »

Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo