Skip to content
ftdi logo

FTDI Manufacturer Skill

ftdi

FTDI (Future Technology Devices International) MPN encoding patterns, USB interface chip decoding, and handler guidance. Use when working with FTDI USB bridge ICs or FTDIHandler.

SKILL.md

Full skill instructions

FTDI Manufacturer Skill

Company Overview

FTDI (Future Technology Devices International) specializes in USB interface ICs and bridge chips. Their products convert USB to various protocols including serial UART, I2C, SPI, and parallel FIFO interfaces. FTDI chips are widely used for USB-to-serial converters, development boards, and embedded systems.


MPN Structure

FTDI MPNs follow this general structure:

FT[SERIES][VARIANT][PACKAGE][-QUALIFIER]
│    │       │        │         │
│    │       │        │         └── Optional: REEL=Tape/​Reel, TUBE=Tube, TRAY=Tray
│    │       │        └── Package code (see table below)
│    │       └── Variant letter(s) (H=High-speed, D=Device, X=X-series)
│    └── Series number (232, 2232, 4232, 230, etc.)
└── FT prefix (always present)

Example Decoding

FT232RL
│  │ ││
│  │ │└── L = SSOP variant (RL = SSOP-28)
│  │ └── R = First generation revision
│  └── 232 = USB to UART bridge series
└── FT = FTDI prefix

FT2232H-REEL
│  │   │  │
│  │   │  └── REEL = Tape and reel packaging
│  │   └── H = High-speed USB 2.0
│  └── 2232 = Dual channel series
└── FT = FTDI prefix

FT230XS-R
│  │  ││ │
│  │  ││ └── R = Tape and reel (shortened)
│  │  │└── S = SSOP package
│  │  └── X = X-series (low-cost, simplified)
│  └── 230 = Basic UART series
└── FT = FTDI prefix

Supported Component Types

The FTDIHandler supports a single component type:

ComponentTypeDescription
ICAll FTDI USB interface ICs

Note: FTDI products are all ICs - there are no manufacturer-specific component types defined (e.g., no USB_BRIDGE_FTDI).


Package Codes

Single Letter Codes

CodePackagePin CountNotes
RSSOP28FT232R standard package
SSSOP16-28Standard SSOP
QQFN20-32QFN variant
HLQFP48-64High-speed devices
DLQFP48FT2232D
XTSSOP20Thin profile
TTQFP32-48Standard TQFP

Two Letter Codes

CodePackagePin CountNotes
RLSSOP28FT232RL (most common)
RQQFN32FT232RQ
BLLQFP76FT600/​FT601 LQFP
BQQFN56FT600/​FT601 QFN
XSTSSOP16-20X-series TSSOP
XQQFN16-20X-series QFN

Packaging Suffixes (After Hyphen)

SuffixMeaning
-REELTape and reel
-TUBETube packaging
-TRAYTray packaging
-RTape and reel (shortened)

Product Families

USB to Serial UART

SeriesChannelsUSB SpeedControl LinesNotes
FT2321Full-SpeedFull modemOriginal, most common
FT230X1Full-SpeedNoneBasic, low-cost
FT231X1Full-SpeedRTS/​CTSX-series with handshaking
FT234X1Full-SpeedRTS/​CTS/​DTR/​DSRX-series full control
FT22322High-SpeedFull modemDual channel
FT42324High-SpeedPartialQuad channel

USB to I2C

SeriesChannelsUSB SpeedNotes
FT200XD1Full-SpeedUSB to I2C bridge
FT201X1Full-SpeedUSB to I2C with GPIO
FT2601Full-SpeedHID-class I2C/​UART

USB to SPI

SeriesChannelsUSB SpeedNotes
FT220X1Full-SpeedUSB to SPI/​FT1248
FT221X1Full-SpeedUSB to SPI with GPIO

USB to FIFO

SeriesBus WidthUSB SpeedNotes
FT240X8-bitFull-SpeedUSB 2.0 FIFO
FT60016-bitSuper-SpeedUSB 3.0 FIFO
FT60132-bitSuper-SpeedUSB 3.0 FIFO

Specialized Products

SeriesTypeNotes
FT51AUSB MCU8051-based USB programmable MCU
FT311DAndroid AOAUSB Android Open Accessory host
FT312DAndroid AOAUSB Android Open Accessory device
FT800/​FT81xEVEEmbedded Video Engine (display controller)

USB Speed Reference

CategoryUSB SpeedBandwidthDevices
Full-SpeedUSB 2.0 FS12 MbpsFT232, FT23xX, FT2xxX, FT260
High-SpeedUSB 2.0 HS480 MbpsFT2232H, FT4232H
Super-SpeedUSB 3.0 SS5 GbpsFT600, FT601

Series Extraction Rules

The handler extracts series using these patterns:

// FT232 family - returns "FT232"
if (mpn.matches("^FT232[A-Z]{0,2}.*")) return "FT232";

// FT2232/​FT4232 - returns "FT2232" or "FT4232"
if (mpn.matches("^FT2232[A-Z]?.*")) return "FT2232";
if (mpn.matches("^FT4232[A-Z]?.*")) return "FT4232";

// X-series - returns "FT230X", "FT231X", etc.
if (mpn.matches("^FT230X.*")) return "FT230X";
if (mpn.matches("^FT231X.*")) return "FT231X";
if (mpn.matches("^FT234X.*")) return "FT234X";

// USB 3.0 - returns "FT600" or "FT601"
if (mpn.matches("^FT600.*")) return "FT600";
if (mpn.matches("^FT601.*")) return "FT601";

// EVE series - returns "FT800" or "FT810", "FT811", etc.
if (mpn.matches("^FT800.*")) return "FT800";
if (mpn.matches("^FT81[0-9].*")) return mpn.substring(0, 5);  // FT810, FT811, etc.

Package Code Extraction Rules

The handler uses a priority system for package extraction:

  1. Remove packaging suffixes first: Strip -REEL, -TUBE, -TRAY
  2. Match specific patterns:
    • FT232[A-Z]{1,2}$ - Extract suffix after "FT232" (e.g., RL, RQ)
    • FT[24]232[A-Z]$ - Extract last character (e.g., H, D)
    • FT2[0-4][0-9]X[A-Z]? - Extract character after X (e.g., S, Q)
    • FT260[A-Z] - Extract character after "FT260"
    • FT60[0-1][A-Z]{1,2} - Extract suffix after "FT60x" (e.g., BL, BQ)
  3. Resolve to package name: Use PACKAGE_CODES map
// Example: FT232RL-REEL
// Step 1: Remove -REEL -> FT232RL
// Step 2: Match FT232[A-Z]{1,2}$ -> suffix = "RL"
// Step 3: PACKAGE_CODES.get("RL") -> "SSOP"

Replacement Compatibility

The handler implements isOfficialReplacement() with these rules:

Same Series (Always Compatible)

Parts in the same series with different packages are always replacement-compatible:

  • FT232RL <==> FT232RQ (same chip, different package)
  • FT2232H <==> FT2232D (same functionality)

X-Series UART Upgrade Path

X-series variants can replace each other in one direction (more pins = superset):

FT230X (0 control lines) <-- FT231X (2: RTS/​CTS) <-- FT234X (4: +DTR/​DSR)
  • FT234X can replace FT231X or FT230X (superset)
  • FT231X can replace FT230X
  • Downgrade is NOT valid (FT230X cannot replace FT231X)

NOT Compatible

  • FT2232 vs FT4232 - Different channel count
  • FT600 vs FT601 - Different bus width (16-bit vs 32-bit)
  • FT232 vs FT2232 - Different channel count

Helper Methods (FTDI-Specific)

The FTDIHandler provides additional helper methods:

getInterfaceType(mpn)

Returns the USB interface type:

Return ValueSeries
"UART"FT232, FT2232, FT4232, FT23xX
"I2C"FT200X, FT201X
"SPI"FT220X, FT221X
"FIFO"FT240X, FT600, FT601
"I2C/​UART"FT260
"USB MCU"FT51A
"Android AOA"FT311D, FT312D
"EVE"FT8xx

getChannelCount(mpn)

Returns number of channels (1, 2, or 4):

  • FT232, FT23xX, FT2xxX, FT260 -> 1
  • FT2232, FT600 -> 2
  • FT4232 -> 4

getUsbVersion(mpn)

Returns USB version string:

  • "USB 2.0 Full-Speed" - Most single-channel devices
  • "USB 2.0 High-Speed" - FT2232H, FT4232H
  • "USB 3.0 Super-Speed" - FT600, FT601

Example MPNs

MPNSeriesPackageInterfaceChannelsUSB Speed
FT232RLFT232SSOPUART1Full-Speed
FT232RQ-REELFT232QFNUART1Full-Speed
FT2232HFT2232LQFPUART2High-Speed
FT4232H-REELFT4232LQFPUART4High-Speed
FT230XSFT230XSSOPUART1Full-Speed
FT231XQ-RFT231XQFNUART1Full-Speed
FT234XDFT234XLQFPUART1Full-Speed
FT201XSFT201XSSOPI2C1Full-Speed
FT220XQFT220XQFNSPI1Full-Speed
FT240XSFT240XSSOPFIFO1Full-Speed
FT260SFT260SSOPI2C/​UART1Full-Speed
FT600BQFT600QFNFIFO2Super-Speed
FT601BL-REELFT601LQFPFIFO1Super-Speed
FT51AQFT51AQFNUSB MCU1Full-Speed
FT812QFT812QFNEVE--

Handler Implementation Notes

Pattern Matching Order

The handler defines explicit pattern checks in matches() for each family:

// Pattern order in matches():
1. FT232 series:   "^FT232[A-Z]{0,2}.*"
2. FT2232 series:  "^FT2232[A-Z]?.*"
3. FT4232 series:  "^FT4232[A-Z]?.*"
4. X-series UART:  "^FT23[0-9]X[A-Z]?.*"
5. USB to I2C:     "^FT20[0-1]X[A-Z]?.*"
6. USB to SPI:     "^FT22[0-1]X[A-Z]?.*"
7. FT240X FIFO:    "^FT240X[A-Z]?.*"
8. FT260:          "^FT260[A-Z]?.*"
9. USB 3.0:        "^FT60[0-1][A-Z]?.*"
10. FT51A MCU:     "^FT51[A-Z].*"
11. Android AOA:   "^FT31[1-2]D.*"
12. FT120:         "^FT12[0-2].*"
13. EVE:           "^FT8[0-1][0-9].*"

Handler Characteristics

  • Uses Set.of() for getSupportedTypes() (correct, immutable)
  • Overrides matches() with explicit pattern checks (avoids cross-handler issues)
  • Returns empty set for getManufacturerTypes() (no manufacturer-specific types defined)
  • Uses Map.ofEntries() for PACKAGE_CODES (correct, immutable)

Related Files

  • Handler: manufacturers/​FTDIHandler.java
  • Component types: Only ComponentType.IC (no FTDI-specific types)
  • Tests: Should be in handlers/​FTDIHandlerTest.java (not manufacturers package)

Learnings & Edge Cases

  • Single ComponentType: FTDI only supports IC - there are no manufacturer-specific types like USB_BRIDGE_FTDI. All FTDI products are ICs.
  • X in series name: The "X" in FT230X/​FT231X/​etc. is part of the series name, not a package suffix. Package code comes AFTER the X.
  • Package suffix after X: For X-series devices, the package code is the letter immediately following "X" (e.g., FT230XS = SSOP).
  • Two-letter package codes: Some package codes are two letters (RL, RQ, BL, BQ). Check longer codes before shorter ones.
  • -R suffix ambiguity: "-R" at the end typically means tape and reel (shortened from -REEL), but should be stripped before package extraction.
  • FT600 vs FT601: Different bus widths (16-bit vs 32-bit), NOT interchangeable despite similar names.
  • FT8xx series: These are EVE (Embedded Video Engine) display controllers, NOT USB bridge chips. Different product category entirely.
  • HID-class FT260: The FT260 is unique - it's a HID-class device (no driver needed on most OS), supporting both I2C and UART.
  • H suffix meaning: "H" after series number typically means High-Speed USB 2.0 (480 Mbps), e.g., FT2232H, FT4232H.
  • USB 3.0 devices (FT600/​FT601): Use BL/​BQ package suffixes, not the standard single-letter codes.
<!-- Add new learnings above this line -->

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View