An FTDI adapter is the one USB-to-serial cable most benches trust — until Windows 11 hands you a COM port that isn’t there, or Device Manager starts calling your board a “non-genuine device”. This is the whole FT232 driver story in one page: which file you actually need, how to install it cleanly, and what to do when the counterfeit lockout bites.

Which FTDI driver do you actually need?

FTDI publishes what looks like three different drivers. It isn’t three — it’s one package with two personalities. Nearly everyone needs the same file.

Driver What it gives you Use it when
VCP (Virtual COM Port) A normal COM port (COM3, COM7…) Arduino IDE, PuTTY, flashing tools, anything that asks for a COM port. This is the default.
D2XX Direct API access via FTD2XX.dll, no COM port Software that talks to the chip directly — JTAG tools, SPI/I²C bridging, OpenOCD, FT_PROG
CDM (Combined Driver Model) Both of the above in one installer What FTDI actually ships for Windows. Install it and you have both.

So the answer is: download the CDM installer. The current WHQL-certified release is 2.12.36.20: its INF carries DriverVer=10/28/2024,2.12.36.20, FTDI’s release notes date it 28 October 2024, and the download page lists it as released 2025-03-04 for “Windows 10, Windows 11, Windows Server 2022 and Windows Server 2025”, with a separate ARM64 build (2.12.36.20A, “Windows 11 only for ARM64 based Windows PCs”) and a Universal Windows Driver variant (2.12.36.20U). The release notes list five fixes, among them “FT232BM variants individually identifiable to avoid confusion with AM devices” and “Serial enumerator disabled by default”. The 2.12.36.4 release from 2021 is now in FTDI’s “No Longer Supported” table. Checked 15 Oct 2026.

⬇ FTDI CDM driver (VCP + D2XX)

Windows 10 / 11 / Server 2022 / Server 2025 · v2.12.36.20 · WHQL-certified · x86, x64 and ARM64 · official link only

Get it from FTDI (official)

Official files and their SHA-256, so you can check what you downloaded: CDM2123620_Setup.zip (installer, 2,356,456 bytes) e412945bb98f96b3296a89a549e6b617129e5481e0be2fe5410247857c507796 · CDM-v2.12.36.20-WHQL-Certified.zip (manual-install package, 1,628,167 bytes) e8ebf401d06994183694d78e5855ed5ab026bdfa8c3d4e4ccde09ec238a0eaf1 · CDM-v2.12.36.20-for-ARM64-WHQL-Certified.zip (1,107,188 bytes) a1db1476615326e9d03033f918f4a0762913e2eba4c1fbeec466d99112fb0c79. Hashes computed by us on 15 Oct 2026 from the copies of these files the Internet Archive captured from ftdichip.com in August–October 2025.

Why there is no mirror here. FTDI’s Driver Licence Terms allow a seller “to distribute the Software with the Device” (clause 1.3) and otherwise require you “not to provide, or otherwise make available, the Software in any form, in whole or in part … to any person” (clause 3.1.7). We are not selling you a device, so the file stays on FTDI’s server and we give you the checksum instead. The same terms say the software “will only work with Genuine FTDI Components” and that using it on a non-genuine part “MAY IRRETRIEVABLY DAMAGE THAT COMPONENT”, which is the legal face of the lockout described below.

Installing on Windows 11, the clean way

Two routes. Try the first; the second is your fallback when Windows has already made a mess.

  1. Unplug the adapter first. Installing the driver before the device is connected lets Windows bind it correctly on first enumeration;
  2. Run the CDM setup executable from FTDI. It takes a few seconds and shows almost nothing — that’s normal;
  3. Plug the adapter in. Windows enumerates it twice: once as a USB Serial Converter, once as a USB Serial Port;
  4. Open Device Manager → Ports (COM & LPT). You should see USB Serial Port (COMx). Note the number — that’s what you pick in the Arduino IDE or PuTTY.

Manual route (when the installer doesn’t take): download the WHQL ZIP, extract it somewhere permanent, then in Device Manager right-click the problem device → Update driver → Browse my computer → point it at the extracted folder with “Include subfolders” ticked. Do this for both entries if you see two — the converter under USB controllers and the port under Ports.

Which FTDI chip is on the board: PID, bcdDevice and what Device Manager calls it

Every FTDI part reports vendor 0403, and the official INF of 2.12.36.20 matches 93 hardware IDs under it. For the parts a bench actually meets, the product ID tells you the family and the bcdDevice (shown as REV_xxxx in the Hardware Ids) tells you the exact chip; the right-hand columns come from FTDI’s TN_100, from the driver’s own INF and from the detection switch in the Linux kernel driver.

Hardware Id Chip(s) bcdDevice / REV Device Manager name (INF)
USB\VID_0403&PID_6001 FT232R, FT245R; FT232B, FT245B; FT232A 0600 R · 0400 B · 0200 A USB Serial Converter → USB Serial Port
USB\VID_0403&PID_6010 FT2232H; FT2232C/D 0700 H · 0500 C/D USB Serial Converter A and B (two interfaces, MI_00/MI_01)
USB\VID_0403&PID_6011 FT4232H 0800 USB Serial Converter A to D
USB\VID_0403&PID_6014 FT232H 0900 USB Serial Converter
USB\VID_0403&PID_6015 FT-X family: FT230X, FT231X, FT234XD, FT201X 1000 USB Serial Converter
USB\VID_0403&PID_6041 / 6048 FT4233HP (USB-PD) / FT4232HA (automotive) 2900 / 3600 USB Serial Converter A to D
USB\VID_0403&PID_601B / 601C FT4222 / FT4222H (SPI/I²C bridge, D2XX only) 1400 / 1700 FT4222 Interface A to D; no COM port
USB\VID_0403&PID_0000 A clone whose PID was zeroed by the 2014 driver — Still listed in 2.12.36.20 as “USB Serial Converter” and “USB Serial Port”

Two things in that table are worth a second look. FTDI’s own TN_100 shows the FT232B and FT232R sharing 6001, so the only way to tell them apart is the REV, and the Linux driver even notes that an FT232B with no serial number reports 0200 like an FT232A. And the PID_0000 row is real: the current INF still carries the zeroed ID, which is why an adapter “bricked” in 2014 can come back as a working port under today’s driver once you install it by hand.

Installed fine, but there’s no COM port

The most common FTDI complaint, and it’s almost never the driver being missing. Work down this list:

What Windows Update actually offers for an FTDI port

The Microsoft Update Catalog lists ten different “FTDI – Ports” versions, and the number alone misleads: most of them are not FTDI’s general driver at all. We opened every entry on 15 Oct 2026 and read the company and the hardware IDs behind it.

Catalog entry Date Submitted by Hardware IDs it serves Meaning for you
FTDI – Ports – 2.12.36.20 27 Oct 2024 FTDI 31 PIDs, incl. 6001, 6010, 6011, 6014, 6015 The general CDM release; this is what a plain FT232R board gets from Windows Update on 10 and 11
FTDI Driver Update (2.16.0.9) 4 Aug 2025 Pegatron 7BE8, 7BE9, 6010, 6014 An OEM package for Pegatron hardware; not newer “FTDI” for your FT232R
FTDI – Ports – 2.16.0.8 22 Jul 2024 FTDI 7BE8, 7BE9, 6010, 6014 Same OEM PIDs, FTDI-signed; FT232R (6001) is not in it
FTDI – Ports – 2.14.1.8 17 Feb 2023 Pegatron 6001, 6010, 6014, 6015 The one OEM package that does match a stock FT232R; if Device Manager shows 2.14.1.8, this is where it came from
FTDI – Ports – 2.14.1.2 / .3 / .6 Sep 2021 – Jul 2022 FTDI 6015, 6010, 6014; 6001 only in 2.14.1.6 Targeted releases, mostly for the FT-X family
FTDI – Ports – 2.12.36.4 4 Jul 2021 Advantech, Treffo AC05–CF04, E6B0 (custom PIDs) Branded industrial adapters; never offered to a stock 6001

For the history behind the lockout, FTDI’s release notes give the dates: 2.12.00 (10 September 2014) is the release of the “PID to 0000” era; 2.12.24 (4 October 2016), 2.12.26 (8 March 2017) and 2.12.30 (7 September 2018) follow; then 2.12.36 (18 May 2021), 2.12.36.5 (14 April 2022) and 2.12.36.20 (28 October 2024). The 2.12.28 build that forum threads recommend is on FTDI’s page as the last release for Windows 7 and 8 (2017-08-30), now in the “No Longer Supported” table.

The “non-genuine device” problem

Here’s the one that sends people to forums. Cheap FT232RL boards flooded the market with cloned silicon, and FTDI fought back inside the driver. Depending on the driver year, a counterfeit chip gets one of two treatments:

The tell that you’re looking at a clone rather than a broken board: the device works on an older PC and misbehaves only after a Windows Update. Windows silently pulls the newest FTDI driver from Windows Update and reapplies it after every reset.

What to do about it

  1. Install an older FTDI driver. Version 2.12.28 is the one the repair community settled on — it predates the aggressive check, is still signed, and runs on Windows 10 and 11. Install it through the manual “Browse my computer” route above so Windows doesn’t substitute a newer one;
  2. Block the automatic replacement. Without this, step 1 lasts until the next update cycle. Use Microsoft’s Show or hide updates tool to hide the FTDI driver update, or turn off automatic driver downloads for the device in System Properties → Hardware → Device Installation Settings;
  3. Or rewrite the ID with FT_PROG. FTDI’s own EEPROM utility (D2XX driver required) can set the VID/PID back to 0403:6001 on a chip that got zeroed in 2014. It’s fiddly but it does recover bricked adapters;
  4. Or stop fighting it. A CH340 or CP2102 adapter costs a couple of dollars, and neither WCH nor Silicon Labs plays the lockout game. Keep one known-genuine FTDI cable for the gear that needs it and buy CH340 for everything else.

If this sounds familiar, it should — Prolific runs almost exactly the same playbook, which is why we wrote up the PL2303 “phased out” fix separately. Same disease, different vendor.

Is my FT232RL genuine?

Visual inspection is unreliable — the clones got good. Two checks that actually mean something:

Worth remembering: a clone that works is still a clone. It may fail on a driver update two years from now. For anything you ship or depend on, buy from a distributor who sources from FTDI directly.

Linux and macOS

Both ship the driver already. On Linux, ftdi_sio is in the kernel (FTDI’s own page: “VCP drivers are integrated into the kernel”) and your adapter appears as /dev/ttyUSB0; the kernel log says Detected FT232R (or FT-X, FT232H…) from the bcdDevice table above, and the only usual hurdle is permissions, fixed by adding yourself to the dialout group. On macOS, Apple’s built-in AppleUSBFTDI handles it (version by version, with the Linux side, in the FTDI driver on macOS and Linux guide) and the device shows as /dev/cu.usbserial-*; FTDI’s own driver for macOS 11 to 26 is a DriverKit extension, FTDIUSBSerialVCPDextInstaller 1.6.0 (6 March 2026), and FTDI tells you to delete every previous installer from Applications before running it. The counterfeit lockout is a Windows-driver behaviour, so clones frequently work fine on Linux while failing on the same bench’s Windows box.

Common questions

Windows 11 on ARM? Covered by the separate CDM-v2.12.36.20-for-ARM64-WHQL-Certified.zip (hash in the box above); the setup executable is “non-ARM64”, so on ARM you install from the zip through Device Manager.

My board says CH340 / CP2102, not FTDI. Then this driver won’t help — different silicon entirely. Go to the CH340 driver guide or the CP2102 guide.

My programmer uses an FT232H, not a serial port. That’s a D2XX job. Tools like OpenOCD and some SPI flashers want the raw interface, and a few need libusb bound to the device instead — that’s a Zadig task, not an FTDI-driver task. Don’t run Zadig on a plain FT232R you’re using as a COM port; it’ll take the port away.

The verdict

For a genuine FTDI chip, this is a two-minute job: install the current CDM package, plug in, read the COM number, get back to work. All the pain in this topic traces back to one thing — counterfeit FT232RL silicon and a driver written to punish it. If your adapter spits NON GENUINE DEVICE FOUND! at you, you have a clone; roll back to 2.12.28, block the auto-update, and it works. Then quietly put a CH340 adapter in the drawer for next time.

Related guides

Sources