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

0 Members and 1 Guest are viewing this topic.

Offline wbooth.clearsceneTopic starter

  • Contributor
  • Posts: 17
Accidentally overridden vendor/product IDs on ftdi chip
« on: May 30, 2016, 07:13:29 am »
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 https://docs.numato.com/doc/waxwing-spartan-6-fpga-development-board/#installing-on-windows-6 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: 2317
  • Country: au
Re: Accidentally overridden vendor/product IDs on ftdi chip
« Reply #1 on: May 30, 2016, 07:15:24 am »
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: 4067
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
 

Offline wbooth.clearsceneTopic starter

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


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf