IQD Frequency Products MPN encoding patterns, package decoding, and handler guidance. Use when working with IQD crystals, oscillators, TCXOs, VCXOs, or OCXOs.
Size codes appear after the dash (or after H/L modifier):
Code
Package Size
Common Use
21
2.0 x 1.6mm
Ultra-compact oscillators
25
2.5 x 2.0mm
Compact oscillators
32
3.2 x 2.5mm
Standard oscillators
50
5.0 x 3.2mm
Standard/high stability
70
7.0 x 5.0mm
High stability / OCXO
90
9.0 x 7.0mm
High stability OCXO
Component Type Prefixes
Crystal Prefixes
Prefix
Component Type
Description
LFXTAL
Low Frequency Crystal
32.768 kHz and other low frequencies
CFPX
Standard Crystal
General purpose SMD crystals
XTALS
SMD Crystal
Surface mount crystal units
XTAL
Through-hole Crystal
Leaded crystal units (HC-49, etc.)
Oscillator Prefixes
Prefix
Component Type
Description
IQXO
Standard Oscillator
Basic clock oscillator (XO)
IQXO-H
High Frequency Oscillator
Higher frequency range XO
IQXO-L
Low Power Oscillator
Reduced power consumption XO
IQTX
TCXO
Temperature Compensated Crystal Oscillator
IQTX-H
High Stability TCXO
Tighter frequency stability
IQTX-L
Low Power TCXO
Reduced power consumption
IQVCXO
VCXO
Voltage Controlled Crystal Oscillator
IQVCXO-H
High Stability VCXO
Tighter frequency stability
IQOCXO
OCXO
Oven Controlled Crystal Oscillator
IQOCXO-H
High Stability OCXO
Ultra-stable (PPB range)
Module and Filter Prefixes
Prefix
Component Type
Description
IQCM
Clock Module
Integrated clock/timing module
IQRTC
RTC Module
Real-Time Clock module
IQXF
Crystal Filter
Crystal-based bandpass filter
IQSPF
SAW Filter
Surface Acoustic Wave filter
IQRB
Resonator Bandpass
Resonator-based bandpass filter
Supported Component Types
The IQDHandler supports these component types:
ComponentType
Description
CRYSTAL
Base crystal type
CRYSTAL_IQD
IQD-specific crystal
OSCILLATOR
Base oscillator type
OSCILLATOR_IQD
IQD standard oscillator
OSCILLATOR_TCXO_IQD
IQD TCXO
OSCILLATOR_VCXO_IQD
IQD VCXO
OSCILLATOR_OCXO_IQD
IQD OCXO
CRYSTAL_FILTER_IQD
IQD crystal filter
RTC_MODULE_IQD
IQD RTC module
Handler Implementation Notes
Package Code Extraction
// For crystals (CFPX, XTALS), size code is 3 digits after dash
// CFPX-032-16.000MHz → dashIndex=4, extract positions 5-7 → "032"
int dashIndex = upperMpn.indexOf('-');
if (dashIndex > 0 && dashIndex + 4 <= upperMpn.length()) {
String sizeCode = upperMpn.substring(dashIndex + 1, dashIndex + 4);
// Map to readable format
}
// For oscillators (IQXO, IQTX, etc.), size code is 2 digits
// Split by dash, take first 2 chars of second part
// IQXO-32-16.000MHz → parts[1]="32..." → pkgCode="32"
String[] parts = upperMpn.split("-");
if (parts.length >= 2) {
String pkgCode = parts[1].substring(0, 2);
// Map to readable format
}
Series Extraction
// Series extraction uses prefix matching with variant detection
// More specific variants (H, L) checked before base prefix
if (upperMpn.startsWith("IQXO")) {
if (upperMpn.startsWith("IQXO-H")) return "High Frequency Oscillator";
if (upperMpn.startsWith("IQXO-L")) return "Low Power Oscillator";
return "Standard Oscillator"; // Base case last
}
if (upperMpn.startsWith("IQTX")) {
if (upperMpn.startsWith("IQTX-H")) return "High Stability TCXO";
if (upperMpn.startsWith("IQTX-L")) return "Low Power TCXO";
return "Standard TCXO";
}
Replacement Compatibility Logic
// IQDHandler implements sophisticated replacement logic:
// 1. Same series required (or compatible upgrade)
// 2. Same package size required
// 3. Same frequency required
// 4. Better or equal stability allowed
// Compatible upgrades:
// - High Stability can replace Standard (e.g., IQTX-H → IQTX)
// - Low Power variants may be compatible with Standard
// Stability comparison:
// Lower PPM value = better stability
// A 0.5 PPM part can replace a 2.5 PPM part
Stability Grades
Frequency stability is a key specification for timing products:
HashSet in getSupportedTypes() - Should use Set.of() for immutability
Missing IC type - Handler registers patterns for ComponentType.IC (clock modules, RTC, filters) but does not include IC in getSupportedTypes()
No handler tests - Listed in handlers without tests in CLAUDE.md
Learnings & Quirks
Variant modifiers (H, L): Appear between prefix and size code (e.g., IQXO-H32 vs IQXO-32). The handler correctly checks for these before falling back to base series.
Package extraction differs by product type: Crystals use 3-digit codes after dash, oscillators use 2-digit codes. The handler splits logic based on prefix.
Replacement compatibility: IQD handler includes sophisticated replacement logic that considers stability grades - better stability parts can replace worse ones but not vice versa.
PPM vs PPB: OCXOs use parts-per-billion (PPB) while other products use parts-per-million (PPM). Both are extracted as stability grades.
IQTX vs IQXO: Easy to confuse - IQTX is TCXO (Temperature Compensated), IQXO is standard XO (crystal oscillator).
Missing IC in getSupportedTypes(): Clock modules (IQCM), RTC modules (IQRTC), and filters (IQXF, IQSPF, IQRB) are registered under ComponentType.IC but IC is not in the supported types set.