NDK (Nihon Dempa Kogyo) timing devices MPN encoding patterns, suffix decoding, and handler guidance. Use when working with NDK crystals, oscillators, TCXOs, VCXOs, OCXOs, VCSOs, or SAW devices.
Note: SAW devices (SF, SR, SD) are registered under ComponentType.IC in patterns but SAW_FILTER_NDK and SAW_RESONATOR_NDK are listed in getSupportedTypes().
Package Code Extraction
The handler extracts package dimensions from the size code in the MPN. The size code is positions 3-4 (0-indexed) after the prefix.
Crystal Packages (NX, NT, NH, NAT)
Size Code
Package Dimensions
12
1.2 x 1.0mm
16
1.6 x 1.2mm
20
2.0 x 1.6mm
25
2.5 x 2.0mm
32
3.2 x 2.5mm
50
5.0 x 3.2mm
80
8.0 x 4.5mm
Extraction Logic:
// For crystals: extract characters at positions 3-4 (after NX, NT, NH, or NAT prefix)
// Example: NX3225SA → position 3 is "3", position 4 is "2" → "32" → 3.2 x 2.5mm
String sizeCode = upperMpn.substring(3, 5); // Gets "32" from "NX3225..."
Oscillator Packages (NZ, NP, NV, NO)
Size Code
Package Dimensions
21
2.0 x 1.6mm
25
2.5 x 2.0mm
32
3.2 x 2.5mm
50
5.0 x 3.2mm
70
7.0 x 5.0mm
98
9.8 x 7.5mm
Extraction Logic:
// For oscillators: extract characters at positions 3-4
// Example: NZ2520SDA → "25" → 2.5 x 2.0mm
String sizeCode = upperMpn.substring(3, 5);
Series Extraction
The handler returns descriptive series names based on the MPN prefix:
Crystal Series
Prefix
Series Name
NX
Standard Crystal
NT
Tuning Fork Crystal
NH
High Frequency Crystal
NAT
Automotive Crystal
Oscillator Series
Prefix
Variant Check
Series Name
NZ
-
Standard Oscillator
NP
-
Programmable Oscillator
NV
char[2] == 'W'
Wide Pull VCXO
NV
(other)
VCXO
NT
char[2] == 'W'
Wide Temp TCXO
NT
(other)
TCXO
NO
-
OCXO
NH
(not crystal pattern)
High Stability OCXO
VCSO Series
Prefix
Series Name
VS
VCSO
VSW
Wide Pull VCSO
SAW Device Series
Prefix
Series Name
SF
SAW Filter
SR
SAW Resonator
SD
SAW Duplexer
Frequency Code Patterns
NDK MPNs include frequency specifications after the hyphen:
Format
Meaning
Example
XX.XXXM
Megahertz
24.000M, 48.000M
XX.XXXXM
Megahertz (4 decimal)
24.0000M
32.768K
32.768 kHz
Tuning fork crystal frequency
Extraction Logic:
private String extractFrequencyCode(String mpn) {
// Extract everything after the last hyphen
int lastDash = mpn.lastIndexOf('-');
if (lastDash >= 0 && lastDash < mpn.length() - 1) {
return mpn.substring(lastDash + 1);
}
return "";
}
Common Example MPNs
Standard Crystals (NX)
MPN
Type
Size
Frequency
NX3225SA-24.000M
Standard
3.2 x 2.5mm
24 MHz
NX2520SA-16.000M
Standard
2.5 x 2.0mm
16 MHz
NX2016SA-32.000M
Standard
2.0 x 1.6mm
32 MHz
NX5032GA-8.000M
Standard
5.0 x 3.2mm
8 MHz
Tuning Fork Crystals (NT)
MPN
Type
Size
Frequency
NT2012SA-32.768K
Tuning Fork
2.0 x 1.2mm
32.768 kHz
NT1612SA-32.768K
Tuning Fork
1.6 x 1.2mm
32.768 kHz
Automotive Crystals (NAT)
MPN
Type
Size
Frequency
NAT3225SBTC-25.000M
Automotive
3.2 x 2.5mm
25 MHz
NAT2520SBTA-20.000M
Automotive
2.5 x 2.0mm
20 MHz
Standard Oscillators (NZ)
MPN
Type
Size
Frequency
NZ2520SDA-20.000M
Standard
2.5 x 2.0mm
20 MHz
NZ3225SDA-24.000M
Standard
3.2 x 2.5mm
24 MHz
NZ5032SDA-50.000M
Standard
5.0 x 3.2mm
50 MHz
TCXOs (NT oscillator)
MPN
Type
Size
Stability
NT2520SD-26.000M
TCXO
2.5 x 2.0mm
Standard
NTW3225CC-26.000M
Wide Temp TCXO
3.2 x 2.5mm
Extended temp
VCXOs (NV)
MPN
Type
Size
Pull Range
NV2520SA-100.000M
VCXO
2.5 x 2.0mm
Standard
NVW3225SD-155.520M
Wide Pull VCXO
3.2 x 2.5mm
Extended
OCXOs (NO)
MPN
Type
Size
Stability
NO5032SD-10.000M
OCXO
5.0 x 3.2mm
High
NO7050SD-10.000M
OCXO
7.0 x 5.0mm
Very High
Handler Implementation Notes
Pattern Registration
The handler registers patterns for both base types and NDK-specific types:
// Crystal patterns - register for BOTH generic and manufacturer-specific types
registry.addPattern(ComponentType.CRYSTAL, "^NX[0-9].*");
registry.addPattern(ComponentType.CRYSTAL_NDK, "^NX[0-9].*");
Prefix Overlap Issues
NT Prefix Conflict: The NT prefix is used for BOTH:
Tuning fork crystals (when followed by size code like NT1612, NT2012)
The handler's extractSeries() method has overlapping checks:
// This check comes first, returning "Tuning Fork Crystal"
if (upperMpn.startsWith("NT")) return "Tuning Fork Crystal";
// This check is never reached because the first one matches
if (upperMpn.startsWith("NT") && upperMpn.length() > 3) {
// TCXO logic
}
NH Prefix Conflict: The NH prefix is used for BOTH:
High frequency crystals
High stability OCXOs
Replacement Compatibility
The isOfficialReplacement() method checks:
Series compatibility - Same series or compatible upgrade path
Package match - Same physical dimensions required
Frequency match - Identical frequency code required
// Compatible series: Wide temp/stability can replace standard
if (series1.startsWith("Wide Temp") &&
series2.equals(series1.replace("Wide Temp ", ""))) return true;
if (series1.startsWith("High Stability") &&
series2.equals(series1.replace("High Stability ", ""))) return true;