Devices

FTDI has made a great variety of devices. Here we attempt to categorize all of them.

Note that, at one point, FTDI has spun off its MCU division as a new company, Bridgetek. There are many device that exist with both FTDI (FTxxx) and Bridgetek (BTxxx) naming and branding. To simplify things, we just consider all Bridgetek devices to be FTDI devices as well.

Usually, the last letter of a full part name (eg. Q in FT2232HQ) represents the package type (SSOP / QFP / QFN / etc). We usually skip this letter when describing the devices, as it doesn't affect their behavior in any way.

D2xx devices

D2xx devices are USB peripherial devices that implement the D2xx protocol, originally created for USB—UART bridging. They come in several varieties:

  • the "proper" fixed-function D2xx devices implementing the D2xx protocol in hardware
    • FT8U232A, FT232B, FT232R, FT230X, FT231X, FT234X: single-channel USB—UART bridge
    • FT8U245A, FT245B, FT245R, FT240X: single-channel USB—FIFO bridge
    • FT200X, FT201X: single-channel USB—I2C peripherial bridge
    • FT220X, FT221X: single-channel USB-SPI/FT1248 bridge
    • FT2232, FT2232H: dual-channel USB—multiprotocol bridge
    • FT4232H: quad-channel USB—multiprotocol bridge
    • FT232H: single-channel USB-multiprotocol bridge
  • preprogrammed MCUs implementing the D2xx protocol in fixed firmware
    • FT4222H: quad-channel USB—SPI/I2C bridge
    • UMFT4222PROG: programmer board for FT4222H (based on FT51A)
    • UMFTPD3A: programmer board for FT260/FT4222H (based on FT51A)
  • programmable MCUs with FTDI-provided libraries that can be used to implement the D2xx protocol in firmware
    • FT8U100A: ???-based MCU
    • FT51: 8051-based MCU
    • FT900 series: FT32-based MCU (custom RISC-like 32-bit Harvard architecture)
    • FT930 series: FT32B-based MCU (a revision of FT32)

D2xx devices come with one or more "channel"s, which are essentially independent bidirectional data pipes. They correspond to USB interfaces with one IN endpoint and one OUT endpoint. On the host side, they can be opened and used independently by distinct applications.

The fixed-function D2xx devices as well as FT4222H can be configured through non-volatile memory — some device types use an external EEPROM for that purpose, while others come with on-chip EEPROM or OTP memory.

Almost all D2xx devices allow the designer to provide custom USB vendor and product IDs (as well as string descriptors), making fully reliable detection impossible. However, once something is known to be a D2xx device, the bcdDevice field of device descriptor can be used to determine its exact type:

bcdDevicedefault VID:PID# channelsdevice
00010403:83721FT8U100A UART "applet"
02000403:60011FT8U232A or FT8U245A
0400 or 02000403:60011FT232B or FT245B
0400 or 02000403:60041FT232B (alternate PID strap)
0400 or 02000403:60051FT245B (alternate PID strap)
05000403:60102FT2232C, FT2232D
06000403:60011FT232R or FT245R
06000403:60491FT232RN or FT245RN
07000403:60102FT2232H
08000403:60114FT4232H
09000403:60141FT232H
10000403:60151FT-X series
14000403:601b1FT4222 mode 3 (unreleased)
15000403:601b2FT4222 mode 0 (unreleased)
16000403:601b4FT4222 mode 1 or 2 (unreleased)
17000403:601c1FT4222H mode 3
18000403:601c2FT4222H mode 0
19000403:601c4FT4222H mode 1 or 2
21000403:0fec1?UMFT4222PROG
24000403:60311FT90x (1 channel)
24000403:60322FT90x (2 channels)
24000403:60333FT90x (3 channels)
25000403:60341FT93x (1 channel)
25000403:60352FT93x (2 channels)
25000403:60363FT93x (3 channels)
25000403:60374FT93x (4 channels)
25000403:60385FT93x (5 channels)
25000403:60396FT93x (6 channels)
25000403:603a7FT93x (7 channels)
27000403:603e1?UMFTPD3A
28000403:60402FT2233HP
29000403:60414FT4233HP
30000403:60422FT2232HP
31000403:60434FT4232HP
32000403:60441FT233HP
33000403:60451FT232HP
35000403:60472FT2232HA
36000403:60484FT4232HA

FT8U232A and FT8U245A

These are the first-generation fixed-function D2xx devices. FT8U232A is a USB—UART bridge, while FT8U245A is a USB—FIFO bridge. They look exactly the same from the software perspective, and in fact may or may not be the same silicon.

They are configured by an optional external 93C46 (64×16-bit word) EEPROM. If no EEPROM is present, or the EEPROM is unprogrammed, the device will use a default configuration.

devicepackage
FT8U232AM32-pin MQFP
FT8U245AM32-pin MQFP

FT232B and FT245B

These are a second-generation revision of FT8U2xxA. They are largely software-compatible, but introduce a few new features:

  • configurable latency timer
  • bitbang mode
  • serial number descriptor
  • support for larger 93C56 (128×16) and 93C66 (256×16) EEPROMs in addition to 93C46

They are mostly, but not completely pin compatible with FT8U2xxA in the QFP packages.

devicepackage
FT232BM32-pin LQFP
FT232BL32-pin lead-free LQFP
FT232BQ32-pin QFN
FT245BM32-pin LQFP
FT245BL32-pin lead-free LQFP

FT2232C/D/L

A third-generation D2xx device. This device features two largely-independent channels (called A and B), which can be independently configured through EEPROM in several modes:

  • UART (like FT232B)
  • FIFO (like FT245B)
  • CPU FIFO (new mode, meant for use as a peripherial on an 8051-style MCU bus)
  • fast opto-isolated serial (custom serial protocol, optimised for low pin count and speed)

In addition, the device can also dynamically switch either of the two channels into alternate modes:

  • async bitbang mode: like FT232B/FT245B
  • MPSSE mode: implements a fast controller for SPI, JTAG, and similar protocols (channel A only)
  • sync bitbang mode: new, variation of the async bitbang mode
  • MCU bus: uses pins of both channels; makes the device capable of controlling an 8051-style MCU bus and driving MCU peripherials

Like FT2xxB, the device can be configured by a 93C46/93C56/93C66 external EEPROM.

devicepackagewhat is
FT2232C48-pin LQFPbase version
FT2232L48-pin lead-free LQFPbase version
FT2232D48-pin lead-free LQFPrevised version

FT232R/FT245R

A fourth-generation D2xx device. The FT232R and FT245R are, in fact, the same chip, and it seems that they can be converted into one another via an EEPROM change. They are an enhanced version of FT2xxB, with the following new features:

  • internal 32×32-bit EEPROM for configuration (instead of external 93C*), plus 8×32-bit factory-programmed area with unique per-chip ID
    • whether the device is FT232R or FT245R is stored in the user-programmable area and can be changed, though vendor tools go out of their way not to do so
  • internal oscillator
  • configurable CBUS pins with multiple functions (FT232R only)
  • CBUS GPIO mode (allows putting individual CBUS pins under software control while continuing to use other pins for their normal UART purpose)
  • adds the synchronous bitbang mode (ported from FT2232C)

The FT2xxRN is a variant of the device that makes the internal oscillator work with 3.3V VCC.

devicepackage
FT232RL28-pin TSSOP
FT232RQ32-pin QFN
FT245RL28-pin TSSOP
FT245RQ32-pin QFN
FT232RNL28-pin TSSOP
FT232RNQ32-pin QFN
FT245RNL28-pin TSSOP
FT245RNQ32-pin QFN

FT2232H and FT4232H

Fifth-generation D2xx devices. FT2232H and FT4232H are the same silicon, and are differentiated by a fuse programmed in the factory.

FT2232H is an enhanced version of FT2232C, with the following new features:

  • USB 2.0 high-speed interface
  • max UART speed bumped from 3Mbaud to 12Mbaud
  • max FIFO speed bumped from 1MB/s to 8MB/s
  • adds new synchronous FIFO submode, which further increases FIFO speed to 40MB/s
  • MPSSE mode is available on both channels
  • each channel now has 16 pins instead of 13 (additional pins can be used as GPIO in MPSSE mode)

FT4232H is a variant with the following differences:

  • four channels (A, B, C, D) instead of two, each of which includes 8 pins instead of 16
  • modes requiring more than 8 pins are not supported (FIFO, CPU FIFO, MCU bus)
  • fast opto-isolated serial mode is also not supported
  • only channels A and B support MPSSE (C and D are limitted to UART and bitbang)

Later on, variants of these devices were made with USB-PD support. They have the same core functionality as the base version, but they require a 93C66 EEPROM to fit the extra configuration required for USB-PD.

devicepackagewhat
FT2232HL64-pin LQFPbase FT2232H
FT2232HQ56-pin VQFNbase FT2232H
FT4232HL64-pin LQFPbase FT4232H
FT4232HQ56-pin VQFNbase FT4232H
FT2233HPQ76-pin QFNFT2232H with two USB-PD ports
FT4233HPQ76-pin QFNFT4232H with two USB-PD ports
FT2232HPQ68-pin QFNFT2232H with one USB-PD port
FT4232HPQ68-pin QFNFT4232H with one USB-PD port
FT2232HAQ64-pin QFNFT2232H automotive version
FT4232HAQ64-pin QFNFT4232H automotive version

FT232H

A single-channel variant of FT2232H, with some FT232R features merged in. Features include:

  • USB 2.0 high-speed interface
  • a single channel, with 18 pins
  • supports all FT2232H modes except for the MCU bus mode (which would require more than 16 pins)
  • adds FT232R-style configurable CBUS pins, as well as the CBUS bitbang mode
  • continues to require external EEPROM; only 93C56 and 93C66 are supported
  • adds a new FT1248 mode

Like FT2232H and FT4232H, this device also got USB-PD variants later on.

devicepackagewhat
FT232HL48-pin LQFPbase FT232H
FT232HQ48-pin QFNbase FT232H
FT233HPQ64-pin QFNFT232H with two USB-PD ports
FT232HPQ56-pin QFNFT232H with one USB-PD port

FT-X series

A single-channel D2xx device. Essentially an enhanced version of FT232R, with the following changes:

  • internal 2048-byte MTP memory for configuration, including some immutable factory pre-programmed data
  • the device comes in several variants; the variant is selected by the factory-programmed MTP area and cannot be changed
    • FT200X and FT201X: USB to I2C peripherial bridge
    • FT220X and FT221X: USB to FT1248 bridge
    • FT230X, FT231X, FT234X: USB to UART bridge (like FT232R)
    • FT240X: USB to FIFO bridge (like FT245R)
  • adds battery charger detection
devicepackagebusiness endbusiness end pins
FT200XD10-pin DFNI2C peripherial2×I2C + 1×CBUS
FT201XS16-pin SSOPI2C peripherial2×I2C + 6×CBUS
FT201XQ16-pin QFNI2C peripherial2×I2C + 6×CBUS
FT220XS16-pin SSOP4-bit FT12487×FT1248 + 1×CBUS
FT220XQ16-pin QFN4-bit FT12487×FT1248 + 1×CBUS
FT221XS20-pin SSOP8-bit FT124811×FT1248 + 1×CBUS
FT221XQ20-pin QFN8-bit FT124811×FT1248 + 1×CBUS
FT230XS16-pin SSOPbasic UART4×UART + 4×CBUS
FT230XQ16-pin QFNbasic UART4×UART + 4×CBUS
FT231XS20-pin SSOPfull UART8×UART + 4×CBUS
FT231XQ20-pin QFNfull UART8×UART + 4×CBUS
FT234XD12-pin DFNbasic UART4×UART + 1×CBUS
FT240XS24-pin SSOPFIFO13×FIFO + 2×CBUS
FT240XQ24-pin QFNFIFO13×FIFO + 2×CBUS

FT4222H

The FT4222H is a high-speed USB to QSPI/I2C + GPIO bridge. Internally, it is based on an MCU (unknown, but likely FT32).

The device is configured using internal OTP memory.

The device has four channel configurations, selectable by two configuration pins:

modechannel countchannel 0channel 1channel 2channel 3
02SPIC / SPIP / I2CC / I2CPGPIO--
14SPIC (CS0)SPIC (CS1)SPIC (CS2)GPIO
24SPIC (CS0)SPIC (CS1)SPIC (CS2)SPIC (CS3)
31SPIC / SPIP / I2CC / I2CP---

The device has four modes, selected at runtime:

  • SPIC: SPI controller; depending on channel configuration, can use up to four CS lines, and thus control 4 peripherials; every peripherial is controlled by a dedicated channel
  • SPIP: SPI peripherial (not available in modes 1 and 2)
  • I2CC: I2C controller (not available in modes 1 and 2)
  • I2CP: I2C peripherial (not available in modes 1 and 2)

The device comes in 4 revisions, which differ in firmware version:

devicepackagefirmware
FT4222HQ-A32-pin VQFNrev A
FT4222HQ-B32-pin VQFNrev B
FT4222HQ-C32-pin VQFNrev C
FT4222HQ-D32-pin VQFNrev D

D3xx devices

D3xx devices are USB super-speed peripherial devices that implement the D3xx protocol. There are several variants:

  • FT600 and FT601: USB—FIFO bridge
    • FT600: up to 16-bit FIFO
    • FT601: up to 32-bit FIFO
  • FT602: USB—FIFO bridge implementing the UVC protocol

All of these devices are internally based on an FT32-based MCU.

default VID:PIDdevice
0403:601eFT600
0403:601fFT601
TODOFT602

FT260

FT260 is a USB—UART/I2C bridge implementing the HID device class. It is internally based on an unknown MCU (FT32? FT51?). It can be configured using internal eFUSE memory or external EEPROM.

devicedefault VID:PIDpackage
FT260Q0403:603028-pin WQFN
FT260S0403:603028-pin TSSOP

FT12 series

FT12 series devices are, essentially, completely customizable USB peripherial devices meant to be controlled by an external MCU. The FT12 acts as a PHY and endpoint FIFO controller, while the MCU is supposed to implement all USB endpoint logic, including control requests.

Note that the internal VID:PID listed in the table is actually presented to the MCU as FT12's identification, not to the host. The actual USB VID:PID is provided by the MCU.

devicemax endpointsMCU interfaceinternal VID:PIDpackage
FT120T6MCU parallel busnone28-pin TSSOP
FT121T16SPI0403:601816-pin TSSOP
FT121Q16SPI0403:601816-pin QFN
FT122T16MCU parallel bus0403:601828-pin TSSOP
FT122Q16MCU parallel bus0403:601828-pin QFN

MCU devices

FT8U100A

FT8U100A is an MCU based on an unknown 8-bit architecture (8051?). It implements a USB hub, with 1 upstream port and 7 physical downstream ports, as well as virtual downstream ports for internal devices. It also has a variety of peripherials, such as UART, PS/2 keyboard/mouse host, IrDA, I2C controller, and GPIO. It comes with ready-made firmware that can be used to expose these peripherials as USB devices (including SIO UART, the first device in the D2xx family).

devicepackage
FT8U100AX100-pin PQFP
VID:PIDinternal device
0403:8370USB hub
0403:8371PS/2 keyboard and mouse
0403:8372UART (D2xx protocol)

TODO: list incomplete

FT51

FT51 is an 8051-based MCU that has a programmable USB peripherial interface, as well as a USB hub. It is used in the UMFTPD3A and UMFT4222PROG boards. It comes in several variants, all of which are the same silicon and only differ in the number of pins:

devicepackageGPIO
FT51AQ48-pin QFN16×DIO + 16×AIO
FT51AL44-pin LQFP16×DIO + 16×AIO
FT51BQ32-pin QFN16×DIO + 8×AIO
FT51CS28-pin SSOP12×DIO + 8×AIO

FT900 series

FT900 is an MCU based on FTDI's custom FT32 RISC-like architecture. It comes in several variants, all of which are actually the same silicon:

deviceethernetCANGPIO pinsSD hostSPI peripherialI2CI2Spackage
FT900Qyesyes66yes22yes100-pin QFN
FT900Lyesyes66yes22yes100-pin LQFP
FT901Qyesno66yes22yes100-pin QFN
FT901Lyesno66yes22yes100-pin LQFP
FT902Qnoyes66yes22yes100-pin QFN
FT902Lnoyes66yes22yes100-pin LQFP
FT903Qnono66yes22yes100-pin QFN
FT903Lnono66yes22yes100-pin LQFP
FT905Qyesyes44no11no76-pin QFN
FT905Lyesyes44no11no80-pin LQFP
FT906Qyesno44no11no76-pin QFN
FT906Lyesno44no11no80-pin LQFP
FT907Qnoyes44no11no76-pin QFN
FT907Lnoyes44no11no80-pin LQFP
FT908Qnono44no11no76-pin QFN
FT908Lnono44no11no80-pin LQFP

FT900 comes with (device-side) libraries that can implement the D2xx protocol in software.

FT930 series

FT930 is an MCU based on FT32B, a revision of the FT32 architecture used in the FT900 series. It comes in several variants, all of which are actually the same silicon:

deviceDACADCPWMSD hostRTCUARTGPIOpins
FT930Q×2×3×8yesyes×44068-pin QFN
FT931Q×2×3×4yesyes×22856-pin QFN
FT932Q×2×3×4yesno×22448-pin QFN
FT933Qno×2×4nono×21648-pin QFN

In addition to the main FT32B core that is advertised in the datasheet, FT930 also contains a secondary MCU (unknown architecture, but likely also FT32). The "hardware D2xx engine" advertised in the datasheet is actually implemented in software on the other MCU core.

VNC1

VNC1, also known as Vinculum, is an MCU with USB host and peripherial interfaces. It is based on a custom 8-bit Harvard architecture, known as FT8. It has a cute 32-bit integer numeric coprocessor for complex arithmetic tasks such as "handling the FAT filesystem".

devicepackage
VNC1L48-pin LQFP

VNC2

VNC2, also known as Vinculum-II, is an MCU with USB host and peripherial interfaces. It is based on a custom Harvard 16-bit architecture, known as FT16.

devicepackageGPIO
VNC2-48L48-pin LQFP28
VNC2-48Q48-pin QFN28
VNC2-32L32-pin LQFP12
VNC2-32Q32-pin QFN12

FT311 and FT312

FT311 and FT312 are Android Open Accessory host devices. They are USB full-speed hosts that accept a single peripherial that should support the AOA protocol. They will then expose UART or other interface to the Android device.

The device has internal flash memory which stores, among other things, the descriptor strings presented to the Android device. It can be modified via an FTDI null-modem cable and a configuration utility.

Both of these devices are actually just VNC2 chips with preprogrammed firmware.

devicepackageinterfaces
FT311D-32Q1C32-pin QFNone of: UART, GPIO, PWM, I2C controller, SPI controller, SPI peripherial
FT311D-32L1C32-pin LQFPone of: UART, GPIO, PWM, I2C controller, SPI controller, SPI peripherial
FT312D-32Q1C32-pin QFNUART
FT312D-32L1C32-pin LQFPUART

FT313

FT313 is an EHCI controller meant to be connected as a peripherial to 8051-style MCU bus. It has 24kiB of internal buffer memory and DMA support.

devicepackage
FT313HQ64-pin QFN
FT313HL64-pin LQFP
FT313HP64-pin TQFP

EVE display controllers

EVE (Embedded Video Engine) aka FT8xx aka BT8xx is a series of display controllers. They are meant to be driven by an external MCU, and provide parallel or LVDS video output (and, in some cases, input), audio output, and a resistive or capacitive touch controller.

EVE aka FT80x

The first generation of EVE. Both chips are the same silicon. It features:

  • SPI peripherial or I2C peripherial interface exposing internal RAM and registers, meant to be controlled by the MCU host
  • 256kiB of internal RAM
  • parallel 18-bit RGB video output, up to 480×272 resolution
  • display list based graphics engine driving the video output
    • basic rendering features
    • JPEG decode
    • zlib decompression
    • ROM and RAM fonts
  • backlight control
  • one-channel PWM audio output, playing PCM audio or predefined sound effects from ROM wave table
  • touch controller
    • resistive version: directly controls the touchscreen via analog pins
    • capacitive version: has an I2C controller interface meant to be connected to the capacitive touchscreen
devicetouch interfacepackage
FT800Qresistive48-pin VQFN
FT801Qcapacitive48-pin VQFN

EVE2 aka FT81x and BT88x

The second generation of EVE. FT81x has the following differences from FT80x:

  • MCU interface is SPI or QSPI peripherial
  • 1MiB of internal RAM
  • different memory map
  • video output supports up to 800×600 resolution
  • video output is 24-bit instead of 18-bit (on FT812 and FT813 only)

The BT88x is a smaller variant of EVE2. It has the following differences from FT81x:

  • only 256kiB of internal RAM
  • video output resolution is limitted to 131072 pixels total
devicevideo outputtouch interfaceinternal RAMpackage
FT810Q18-bit RGBresistive1MiB48-pin VQFN
FT811Q18-bit RGBcapacitive1MiB48-pin VQFN
FT812Q24-bit RGBresistive1MiB56-pin VQFN
FT813Q24-bit RGBcapacitive1MiB56-pin VQFN
BT880Q18-bit RGBresistive256kiB48-pin VQFN
BT881Q18-bit RGBcapacitive256kiB48-pin VQFN
BT882Q24-bit RGBresistive256kiB56-pin VQFN
BT883Q24-bit RGBcapacitive256kiB56-pin VQFN

All of the FT81x devices are the same silicon. FT810 and FT811 are pin-compatible with FT800 and FT801.

Likewise, all BT88x devices are the same silicon. They are pin-compatible with their corresponding FT81x devices.

EVE3 aka BT815/BT816

The third generation of EVE. It has switched to the BT (Bridgetek) device name prefix. It has the following differences from EVE2:

  • added QSPI controller interface meant for connecting an external flash chip with preprogrammed graphics or audio data
  • sigma-delta audio output instead of PWM
devicetouch interfacepackage
BT815Qcapacitive64-pin VQFN
BT816Qresistive64-pin VQFN

Both BT815 and BT816 are the same silicon.

EVE4 aka BT817/BT818

The fourth generation of EVE. It has the following differences from EVE3:

  • video output supports up to 1920×480, 1440×540, or 1280×800 resolution
devicetouch interfacepackage
BT817Qcapacitive64-pin VQFN
BT817AQcapacitive64-pin VQFN
BT818Qresistive64-pin VQFN

BT817A is an automotive variant of BT817.

All EVE4 devices are the same silicon.

EVE5 aka BT820

The fifth generation of EVE, with major changes. It has the following features:

  • QSPI peripherial interface for the MCU host
  • QSPI controller interface for flash
  • memory controller for DDR3/DDR3L/LPDDR2 working memory
  • SD card host interface
  • dual-channel FPD-link video output
    • with backlight control
  • dual-channel FPD-link video input
  • I2C controller interface for capacitive touch
  • audio output through stereo delta-sigma or I2S
  • 16 GPIO pins
  • display list based graphics engine
    • PNG and JPG decode support
    • deflate decode support
    • ROM and RAM fonts
  • render engine for memory-to-memory drawing
    • ASTC decode support
devicepackage
BT820B329-pin BGA