Lib-electronic-components nipponchemicon

Nippon Chemi-Con MPN encoding patterns, suffix decoding, and handler guidance. Use when working with Nippon Chemi-Con aluminum electrolytic and polymer capacitors.

install
source · Clone the upstream repo
git clone https://github.com/Cantara/lib-electronic-components
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Cantara/lib-electronic-components "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/manufacturers/nipponchemicon" ~/.claude/skills/cantara-lib-electronic-components-nipponchemicon && rm -rf "$T"
manifest: .claude/skills/manufacturers/nipponchemicon/SKILL.md
source content

Nippon Chemi-Con Manufacturer Skill

MPN Structure

Nippon Chemi-Con MPNs follow this general structure:

[PREFIX][SERIES][VOLTAGE][SUFFIX][CAP_CODE][CASE_SIZE]
   |       |        |       |        |         |
   |       |        |       |        |         +-- Case code (MJC5S, MHD, etc.)
   |       |        |       |        +-- 3-digit capacitance code (101=100uF)
   |       |        |       +-- Internal code (ELL, etc.)
   |       |        +-- 3-digit voltage (500=50V) or digit+letter (1C=16V)
   |       +-- Series code (YE, ZE, XG, etc.)
   +-- EK/E/M prefix (aluminum electrolytic prefix)

Example Decoding

EKYE500ELL101MJC5S
|  | |  |  |  |
|  | |  |  |  +-- MJC5S = 5x5.3mm SMD case
|  | |  |  +-- 101 = 100uF (10 x 10^1)
|  | |  +-- ELL = Internal code
|  | +-- 500 = 50V (voltage code: 500/10 = 50V)
|  +-- YE = KY series internal code
+-- EK = Aluminum electrolytic prefix

KMG160ELL471M
|  | | |  |
|  | | |  +-- M suffix
|  | | +-- 471 = 470uF (47 x 10^1)
|  | +-- ELL = Internal code
|  +-- 160 = 16V (voltage code: 160/10 = 16V)
+-- KMG = KMG General Purpose Mini series

PSC1V471M
|  | |  |
|  | |  +-- M suffix
|  | +-- 471 = 470uF (47 x 10^1)
|  +-- 1V = 35V (EIA voltage code)
+-- PSC = Polymer Solid C series

Series Reference

Low Impedance Series

SeriesFull NamePrefix PatternDescription
KYKY Low ImpedanceEKYE, EKYHigh ripple current, low ESR
KXJKXJ High Temp Low ImpedanceEKXJ105C, low impedance

Conductive Polymer Series

SeriesFull NamePrefix PatternDescription
KZEKZE Conductive PolymerEKZE, EKZPolymer hybrid aluminum
PSCPSC Polymer SolidPSCSolid polymer, low ESR
PSEPSE Polymer SolidPSESolid polymer, enhanced

High Temperature Series

SeriesFull NamePrefix PatternDescription
KXGKXG High Temp Long LifeEKXG105C, long life (5000-10000hr)
GXEGXE Ultra Low ESRGXEUltra-low ESR, high temp

Miniature Series

SeriesFull NamePrefix PatternDescription
MVYMVY Mini Low ImpedanceMVY, EMVYMiniature low impedance
MVZMVZ Mini StandardMVZ, EMVZMiniature standard

General Purpose Series

SeriesFull NamePrefix PatternDescription
KMGKMG General Purpose MiniEKMG, KMGGeneral purpose miniature
KMHKMH General PurposeEKMH, KMHGeneral purpose standard

Surface Mount Series

SeriesFull NamePrefix PatternDescription
SMGSMG Surface MountESMGSMD general purpose
SMHSMH Surface MountESMHSMD standard

Voltage Codes

3-Digit Format (Primary)

Nippon Chemi-Con primarily uses 3-digit voltage codes where value = code / 10:

CodeVoltageCodeVoltage
0404V25025V
0636.3V35035V
10010V50050V
16016V63063V
20020V

EIA Letter Format (Alternate)

Some series use EIA voltage codes (digit + letter):

CodeVoltageCodeVoltage
0G4V1V35V
0J6.3V1H50V
1A10V1J63V
1C16V2A100V
1E25V

Capacitance Codes

Uses standard EIA 3-digit code (value in uF):

CodeValueCalculation
10010uF10 x 10^0
101100uF10 x 10^1
221220uF22 x 10^1
471470uF47 x 10^1
1021000uF10 x 10^2
10310000uF10 x 10^3

Case Size Codes

SMD Case Codes

CodeDimensionsNotes
JC55x5.3mmSmall SMD
JC66.3x5.5mmStandard SMD
JC88x6.2mmMedium SMD
JC1010x10.2mmLarge SMD
JH55x5.8mmTall SMD
JH66.3x5.8mmTall SMD
JH88x6.5mmTall SMD

Radial Lead Case Codes

CodeDimensionsNotes
MDD4x7mmMini
MHD5x11mmSmall
MLD6.3x11mmStandard
MPD8x11.5mmMedium
MNL10x12.5mmLarge
MQL12.5x15mmExtra large

Handler Implementation Notes

Pattern Recognition

// KY series - Low impedance
"^EKY[A-Z][0-9]{3}.*"  // EKYE500...
"^EKYE[0-9]{3}.*"      // Alternate
"^EKY[0-9][A-Z].*"     // EIA voltage format

// KZE series - Polymer hybrid
"^EKZ[A-Z][0-9]{3}.*"  // EKZE250...
"^EKZE[0-9]{3}.*"      // Alternate
"^EKZ[0-9][A-Z].*"     // EIA voltage format

// KXG/KXJ series - High temperature
"^EKXG[0-9]{3}.*"      // EKXG500...
"^EKXJ[0-9]{3}.*"      // EKXJ350...

// MVY/MVZ series - Miniature
"^MVY[0-9]{3}.*"       // MVY160...
"^EMVY[0-9]{3}.*"      // EMVY160...
"^MVZ[0-9]{3}.*"       // MVZ100...

// KMG/KMH series - General purpose
"^EKMG[0-9]{3}.*"      // EKMG160...
"^KMG[0-9]{3}.*"       // KMG160...
"^EKMH[0-9]{3}.*"      // EKMH250...
"^KMH[0-9]{3}.*"       // KMH250...

// PSC/PSE series - Polymer solid
"^PSC[0-9]{3}.*"       // PSC100...
"^PSE[0-9]{3}.*"       // PSE160...
"^PSC[0-9][A-Z].*"     // PSC1V... (EIA voltage)

// GXE series - Ultra low ESR
"^GXE[0-9]{3}.*"       // GXE160...

// Generic patterns
"^EK[A-Z]{2}[0-9]{3}.*"    // Any EK + 2 letters + 3-digit voltage
"^M[A-Z]{2}[0-9]{3}.*"     // Any M + 2 letters + 3-digit voltage

Voltage Extraction

// Determine prefix length first
int startIdx;
if (mpn.startsWith("EKYE") || mpn.startsWith("EKZE") ||
    mpn.startsWith("EKXG") || mpn.startsWith("EKXJ") ||
    mpn.startsWith("EKMG") || mpn.startsWith("EKMH") ||
    mpn.startsWith("ESMG") || mpn.startsWith("ESMH") ||
    mpn.startsWith("EMVY") || mpn.startsWith("EMVZ")) {
    startIdx = 4;  // 4-letter prefix
} else if (mpn.startsWith("EKY") || mpn.startsWith("EKZ") ||
           mpn.startsWith("MVY") || mpn.startsWith("MVZ") ||
           mpn.startsWith("KMG") || mpn.startsWith("KMH") ||
           mpn.startsWith("PSC") || mpn.startsWith("PSE") ||
           mpn.startsWith("GXE")) {
    startIdx = 3;  // 3-letter prefix
}

// Extract 3-digit voltage code
String voltageCode = mpn.substring(startIdx, startIdx + 3);
int voltage = Integer.parseInt(voltageCode) / 10;  // 500 -> 50V

Package Code Extraction

// Look for known case code patterns
if (mpn.contains("JC5")) return "5x5.3mm";
if (mpn.contains("JC6")) return "6.3x5.5mm";
if (mpn.contains("MHD")) return "5x11mm";
// etc.

// Or extract M-suffix from end
int lastDigitIdx = findLastDigit(mpn);
String suffix = mpn.substring(lastDigitIdx + 1);
if (suffix.startsWith("M")) return suffix;  // MJC5S, MHD, etc.

Replacement Rules

The handler supports replacement scenarios based on:

  1. Same series required: Different series are not interchangeable
  2. Package must match: Case size must be identical
  3. Higher voltage can replace lower: Within same series, 50V can replace 25V
// Higher voltage rating can replace lower in same series
int v1 = parseVoltageCode(voltage1);
int v2 = parseVoltageCode(voltage2);
if (v1 >= v2) return true;  // 50V can replace 25V

Related Files

  • Handler:
    manufacturers/NipponChemiConHandler.java
  • Component types:
    CAPACITOR
  • Supported types: CAPACITOR, IC

Learnings & Edge Cases

  • Prefix variations: Same series has multiple prefixes (KMG vs EKMG, MVY vs EMVY)
  • Voltage format duality: 3-digit (500=50V) and EIA (1V=35V) formats both used
  • Case code in suffix: Package info is embedded at end, not separate field
  • EK prefix meaning: EK = Nippon Chemi-Con's aluminum electrolytic identifier
  • Series code extraction: Need to strip EK/E prefix to get actual series (EKYE -> KY)
  • Voltage calculation: 3-digit code divided by 10 gives actual voltage
<!-- Add new learnings above this line -->