.claude/skills/manufacturers/ndk/SKILL.md
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.
npx skillsauth add Cantara/lib-electronic-components ndkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
NDK (Nihon Dempa Kogyo Co., Ltd.) is a leading Japanese manufacturer of timing devices and frequency control products including:
NDK is known for high-precision timing components used in telecommunications, networking, automotive, and industrial applications.
NDK MPNs follow this general structure:
[PREFIX][SIZE][VARIANT]-[FREQUENCY][OPTIONS]
| | | | |
| | | | +-- Temperature grade, packaging
| | | +-- Frequency code (MHz or kHz)
| | +-- Variant/specification letter
| +-- Size code (2 digits indicating package dimensions)
+-- Product family prefix (NX, NT, NZ, NV, etc.)
| Prefix | Product Type | Description | |--------|--------------|-------------| | NX | Standard Crystal | AT-cut MHz range crystals | | NT | Tuning Fork Crystal / TCXO | 32.768 kHz crystals or TCXOs | | NH | High Frequency Crystal | High frequency AT-cut crystals | | NAT | Automotive Crystal | AEC-Q200 qualified crystals | | NZ | Standard Oscillator | SPXO (Simple Packaged Crystal Oscillator) | | NP | Programmable Oscillator | User-programmable frequency | | NV | VCXO / Low Jitter | Voltage controlled or low jitter oscillators | | NTW | Wide Temp TCXO | Extended temperature range TCXO | | NVW | Wide Pull VCXO | Extended pull range VCXO | | NO | OCXO | Oven Controlled Crystal Oscillator | | VS | VCSO | Voltage Controlled SAW Oscillator | | VSW | Wide Pull VCSO | Extended pull range VCSO | | SF | SAW Filter | Surface Acoustic Wave filter | | SR | SAW Resonator | Surface Acoustic Wave resonator | | SD | SAW Duplexer | Surface Acoustic Wave duplexer |
NX3225SA-24.000M
| | | | |
| | | | +-- 24.000M = 24 MHz frequency
| | | +-- - = Separator
| | +-- SA = Series/specification variant
| +-- 32 25 = 3.2 x 2.5mm package
+-- NX = Standard Crystal family
NZ2520SDA-20.000M
| | | | |
| | | | +-- 20.000M = 20 MHz frequency
| | | +-- - = Separator
| | +-- SDA = Series/specification variant
| +-- 25 20 = 2.5 x 2.0mm package (note: size code is first 2 digits after prefix)
+-- NZ = Standard Oscillator family
NAT3225SBTC-25.000M
| | | |
| | | +-- 25.000M = 25 MHz frequency
| | +-- SBTC = Automotive specification variant
| +-- 32 25 = 3.2 x 2.5mm package
+-- NAT = Automotive grade Crystal
The NDKHandler supports these ComponentTypes:
| ComponentType | Description | Example Prefixes |
|---------------|-------------|------------------|
| CRYSTAL | Generic crystal type | NX, NT, NH, NAT |
| CRYSTAL_NDK | NDK-specific crystal | NX, NT, NH, NAT |
| OSCILLATOR | Generic oscillator type | NZ, NP, NV, NT, NTW, NVW, NO, NH, VS, VSW |
| OSCILLATOR_NDK | NDK-specific oscillator | NZ, NP, NV |
| OSCILLATOR_TCXO_NDK | Temperature compensated | NT, NTW |
| OSCILLATOR_VCXO_NDK | Voltage controlled | NV, NVW |
| OSCILLATOR_OCXO_NDK | Oven controlled | NO, NH |
| SAW_FILTER_NDK | SAW filter devices | SF |
| SAW_RESONATOR_NDK | SAW resonator devices | SR |
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().
The handler extracts package dimensions from the size code in the MPN. The size code is positions 3-4 (0-indexed) after the prefix.
| 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..."
| 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);
The handler returns descriptive series names based on the MPN prefix:
| Prefix | Series Name | |--------|-------------| | NX | Standard Crystal | | NT | Tuning Fork Crystal | | NH | High Frequency Crystal | | NAT | Automotive Crystal |
| 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 |
| Prefix | Series Name | |--------|-------------| | VS | VCSO | | VSW | Wide Pull VCSO |
| Prefix | Series Name | |--------|-------------| | SF | SAW Filter | | SR | SAW Resonator | | SD | SAW Duplexer |
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 "";
}
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
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].*");
NT Prefix Conflict: The NT prefix is used for BOTH:
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:
The isOfficialReplacement() method checks:
// 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;
manufacturers/NDKHandler.javaCRYSTAL, CRYSTAL_NDK, OSCILLATOR, OSCILLATOR_NDK, OSCILLATOR_TCXO_NDK, OSCILLATOR_VCXO_NDK, OSCILLATOR_OCXO_NDK, SAW_FILTER_NDK, SAW_RESONATOR_NDKHashSet, should use Set.of() for immutability (see CLAUDE.md "Handlers Without Tests" section)ComponentType.IC but IC is not in getSupportedTypes()NDK uses a unique size code system where digits represent dimensions:
| Type | Stability | Temperature Range | Use Case | |------|-----------|-------------------|----------| | SPXO (NZ) | ±25-50 ppm | -20 to +70°C | General timing | | TCXO (NT) | ±0.5-2 ppm | -30 to +85°C | Cellular, GPS, IoT | | VCXO (NV) | ±25-50 ppm | -20 to +70°C | PLL, clock recovery | | OCXO (NO) | ±0.01-0.1 ppm | -40 to +85°C | Telecom, instrumentation |
| Type | Application | |------|-------------| | SF (Filter) | RF filtering in mobile phones, base stations | | SR (Resonator) | Timing reference for RF circuits | | SD (Duplexer) | Simultaneous TX/RX in wireless devices |
| NDK | Epson | TXC | Kyocera/AVX | Murata | |-----|-------|-----|-------------|--------| | NX series | FA series | 7A series | KC series | - | | NZ series | SG series | 8Z series | KT series | - | | NT (TCXO) | TG series | 8P series | - | - | | SF/SR/SD | - | - | - | SAW devices |
Common temperature grade indicators in NDK MPNs:
| Suffix | Meaning | |--------|---------| | -K or K3 | Tape and reel packaging | | (no suffix) | Tray packaging |
<!-- Add new learnings above this line -->data-ai
Cost-effective task delegation strategy using Haiku model for straightforward work. Use when planning how to approach simple, pattern-following tasks to minimize costs.
tools
Use when working with component similarity calculations - comparing MPNs, finding equivalent parts, implementing new similarity calculators, or understanding how component matching works.
testing
Use when working with transistor similarity calculations - comparing BJT MPNs, understanding NPN/PNP polarity matching, equivalent groups like 2N2222/PN2222, or transistor-specific similarity logic.
testing
Use when working with sensor similarity calculations - comparing temperature/accelerometer/humidity sensor MPNs, understanding sensor families, equivalent parts, or sensor-specific similarity logic.