Search code examples
ftdid2xx

FTDI differences between VCP and D2XX


I have a FTDI FT232R device and am currently trying to figure out whether to use VCP or D2XX. I've read a little about the pros and cons of both, but am still unable to determine which one to use for this project. Since I am going to use Linux for this project, is it even worth the extra effort to use D2XX? Any kind of help or information would be appreciated.

Greetings, Sparkas


Solution

  • Here what I understood from some reading and experience. This list is not exhaustive and I hope that I will be able to improve it with the community answers.

    VCP

    Pros:

    • Built-in inside the Linux kernel

    Cons:

    • Slower than D2XX? I've being using an FTDI device and its documentation said that there where not using the VCP method because the driver was too slow.

    D2XX:

    Pros:

    • More features: For instance one could use the FT_ListDevices() function to get the list of FTDI enabled devices. This function is not available using VCP.

    Cons:

    • You have to embed the FTDI library inside the project

    VCP: Is the virtual com port which appear as the legacy comm port port like /dev/ttyUSB0. D2XX interface is the proprietary interface for the FTDI devices. D2XX gives much more access to the hardware which are not available by the VCP. Like working in different mode . Asynchronous , synchronous mode or bit bang mode or writing to the eeprom chip.

    References: