ワンクリックで
jinling
Jinling (JILN) connector MPN encoding, position-based part numbering for pin headers, female headers, and IDC connectors.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Jinling (JILN) connector MPN encoding, position-based part numbering for pin headers, female headers, and IDC connectors.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when refactoring, cleaning up, or enhancing the lib-electronic-components codebase. Provides guidance on architecture patterns, known issues, duplication hotspots, and recommended improvements.
Base skill for working with electronic components in this library. Use when adding new component types, manufacturer handlers, or working with MPN (Manufacturer Part Number) operations, BOM entries, or component classification.
Use this skill BEFORE creating a PR to ensure all documentation, skills, and learnings are updated. Critical for preserving institutional knowledge and preventing documentation drift.
Use when working with component similarity calculations - comparing MPNs, finding equivalent parts, implementing new similarity calculators, or understanding how component matching works.
Use when working with capacitor similarity calculations - comparing ceramic/electrolytic/film capacitor MPNs, understanding value/voltage/dielectric matching, or capacitor-specific similarity logic.
Use when working with connector similarity calculations - comparing connector MPNs, understanding pin count/pitch/family matching, or connector-specific similarity logic.
| name | jinling |
| description | Jinling (JILN) connector MPN encoding, position-based part numbering for pin headers, female headers, and IDC connectors. |
Full Name: Shenzhen Jinling Electronics Co., Ltd. Brand: JILN (Jiln) Founded: 2004 Website: szjiln.en.made-in-china.com, jilnconnector.com Specialization: Pin headers, female headers, board-to-board connectors, IDC, terminal blocks Patents: 280+ independent innovation patents
Jinling uses two different MPN numbering systems:
27 31 0 2 02 A N G3 S U T
│ │ │ │ │ │ │ │ │ │ └─ [14] Packing
│ │ │ │ │ │ │ │ │ └─── [13] ContactType
│ │ │ │ │ │ │ │ └───── [12] ConnectorType
│ │ │ │ │ │ │ └─────── [10-11] ContactPlating
│ │ │ │ │ │ └────────── [9] Post
│ │ │ │ │ └─────────── [8] InsulatorMaterial
│ │ │ │ └──────────── [6-7] PinsPerRow (numeric)
│ │ │ └────────────── [5] Rows (1/2/3)
│ │ └──────────────── [4] HouseCount (usually 0)
│ └─────────────────── [2-3] PlasticsHeight × 10 (31 = 3.1mm)
└────────────────────── [0-1] Family (13/16/17/26/27)
Total Length: 15 characters (fixed)
Used on LCSC, JLCPCB, and other distributor platforms.
321010MG0CBK00A02
│││││││││││││││└┴─ Suffix codes (variant/packaging)
││││││││││││└┴──── Additional encoding
│││││││││││└────── K = Black color
││││││││││└─────── B = Material/housing
│││││││││└──────── C = Series/family code
││││││││└───────── 0 = Placeholder
│││││││└────────── G = Gold plating
││││││└─────────── M = SMT mounting
││││└┴──────────── 10 = Pin count (2x5=10)
│││└───────────── 1 = Rows
││└────────────── 2 = Pitch indicator (2.54mm)
└┴─────────────── 32 = Family/series (IDC)
| Code | Type | Pitch | Gender | Description |
|---|---|---|---|---|
| 13 | Pin Header | 1.27mm | Male | Fine pitch headers |
| 16 | Pin Header | 2.00mm | Male | Standard headers |
| 17 | Pin Header | 2.54mm | Male | Standard 0.1" headers |
| 26 | Female Header | 2.00mm | Female | Socket/receptacle |
| 27 | Female Header | 2.54mm | Female | Standard 0.1" sockets |
Encoded as height in mm × 10:
31 = 3.1mm35 = 3.5mm85 = 8.5mmFormula: height_mm = parseInt(positions[2:4]) * 0.1
Always 0 for current Jinling products.
1 = Single row2 = Dual row3 = Triple rowMUST be numeric (e.g., 02, 10, 20, 40).
Pin count calculation: rows × pinsPerRow
Examples:
1 row × 40 pins = 40 total2 rows × 20 pins = 40 total2 rows × 02 pins = 4 total| Code | Material | Full Name |
|---|---|---|
| A | PBT | Polybutylene Terephthalate |
| B | PA66 | Polyamide 66 (Nylon 66) |
| C | PA6T | Polyamide 6T |
| D | PA46 | Polyamide 46 |
| E | PA9T | Polyamide 9T |
| F | LCP | Liquid Crystal Polymer |
| Code | Meaning |
|---|---|
| W | With post/standoff |
| N | Without post |
| Code | Plating | Thickness |
|---|---|---|
| SN | Tin | - |
| G0 | Gold Flash | < 1µin |
| G1 | Gold | 3µin |
| G2 | Gold | 5µin |
| G3 | Gold | 10µin |
| G4 | Gold | 15µin |
| G5 | Gold | 30µin |
| S0 | Gold Flash/Tin | Mixed |
| Code | Type | Description |
|---|---|---|
| M | SMT | Surface Mount |
| S | Straight THT | 180° through-hole |
| R | Right Angle THT | 90° through-hole |
| W | Straddle THT | Straddle mount |
| Z | Right Angle SMT | 90° surface mount |
| Code | Type |
|---|---|
| U | U-Type |
| S | Straight |
| R | Right Angle |
| Code | Package Type |
|---|---|
| T | Tube |
| P | Tube + Cap |
| R | Reel |
| O | PE Bag |
| A | Tray |
27 31 0 2 02 A N G3 S U T
│ │ │ │ │ │ │ │ │ │ └─ T = Tube packing
│ │ │ │ │ │ │ │ │ └─── U = U-Type contact
│ │ │ │ │ │ │ │ └───── S = Straight THT
│ │ │ │ │ │ │ └─────── G3 = 10µin Gold
│ │ │ │ │ │ └────────── N = No post
│ │ │ │ │ └─────────── A = PBT material
│ │ │ │ └──────────── 02 = 2 pins per row
│ │ │ └────────────── 2 = Dual row
│ │ └──────────────── 0 = No houses
│ └─────────────────── 31 = 3.1mm height
└────────────────────── 27 = Female Header (2.54mm pitch)
Decoded: 2.54mm female header, 2 rows × 2 pins = 4 total, 3.1mm height, PBT, no post, 10µin gold plating, straight THT, U-type contacts, tube packing
17 31 0 1 40 A N SN S U T
Decoded: 2.54mm pin header (male), 1 row × 40 pins = 40 total, 3.1mm height, PBT, no post, tin plating, straight THT, U-type contacts, tube packing
Real Jinling part numbers from LCSC:
| MPN | Description | LCSC ID |
|---|---|---|
| 321010MG0CBK00A02 | IDC 2x5P (10 pins) 2.54mm SMT Gold | C601966 |
| 12251140CNG0S115001 | Pin Header 1x40P 2.54mm THT | C429959 |
| 12251220ANG0S115001 | Pin Header 2x20P 2.54mm THT | C429965 |
| 22850120ANG1SYA01 | Female Header 2.54mm | C429947 |
| 22850102ANG1SYA02 | Female Header 2.54mm | C429966 |
| 13201140CNG0S087004 | Pin Header 1.27mm 1x40P | C429955 |
Elprint format requires:
13, 16, 17, 26, or 27// Elprint pattern (15 chars)
^(?:13|16|17|26|27)[0-9]{4}[0-9]{2}[A-Z][A-Z]{2}[A-Z]{3}$
// Distributor patterns
^32[0-9]{4}[A-Z]{2}[0-9][A-Z]{3}[0-9]{2}[A-Z][0-9]{2} // IDC
^1[0-9]{4}[0-9]{3,4}[A-Z]{3}[0-9][A-Z][0-9]{6,7} // Pin headers (12xxx)
^22[0-9]{3}[0-9]{3,4}[A-Z]{3}[0-9][A-Z]{3}[A-Z][0-9]{2} // Female headers
CRITICAL: Always validate MPN length before substring operations!
private boolean isElprintFormat(String mpn) {
if (mpn == null || mpn.length() < 15) return false;
String family = mpn.substring(0, 2);
boolean isKnownFamily = "13".equals(family) || "16".equals(family) ||
"17".equals(family) || "26".equals(family) ||
"27".equals(family);
// Positions 2-7 must be numeric
boolean hasNumericPrefix = mpn.substring(2, 6).matches("[0-9]+") &&
mpn.substring(6, 8).matches("[0-9]+");
return isKnownFamily && hasNumericPrefix;
}
public int extractPinCount(String mpn) {
if (!isElprintFormat(mpn)) return 0;
try {
int rows = Character.getNumericValue(mpn.charAt(5));
int pinsPerRow = Integer.parseInt(mpn.substring(6, 8));
return rows * pinsPerRow;
} catch (NumberFormatException e) {
return 0;
}
}
public String extractPackageCode(String mpn) {
if (!isElprintFormat(mpn) || mpn.length() < 13) return "";
String typeCode = mpn.substring(12, 13);
return CONNECTOR_TYPES.getOrDefault(typeCode, typeCode);
}
Components are interchangeable if:
Different plating, material, or packing are acceptable variations.
src/main/java/no/cantara/electronic/component/lib/manufacturers/JinlingHandler.java (~560 lines)src/test/java/no/cantara/electronic/component/lib/handlers/JinlingHandlerTest.java (~550 lines, 131 tests)CONNECTOR, CONNECTOR_JINLINGComponentManufacturer.JINLINGProblem: Initial test MPNs used 13-17 character format instead of required 15 characters.
Example:
273102NSNSUXT (13 chars with non-numeric positions)27310202ASNSUTT (17 chars)17310110AG3SUT (14 chars - missing post indicator)27310202ANG3SUT (15 chars, all numeric in positions 2-7)Resolution: All 131 tests now use proper 15-character elprint format. Handler pattern enforces exact length validation with length() != 15 check.
The handler registers patterns for both encoding systems:
Ensure ComponentManufacturer.JINLING pattern covers both:
JINLING("(?:1[2367]|2[267]|3[25])[0-9]{4,}", "Shenzhen Jinling Electronics", new JinlingHandler())
Jinling patterns (^13..., ^17...) could conflict with other manufacturers using similar prefixes. The matches() method includes explicit family checks to prevent false positives.
@Test
void shouldMatchElprintFormat() {
assertTrue(handler.matches("27310202ANG3SUT", ComponentType.CONNECTOR, registry));
assertTrue(handler.matches("17310140ANSNSUT", ComponentType.CONNECTOR, registry));
}
@Test
void shouldMatchDistributorFormat() {
assertTrue(handler.matches("321010MG0CBK00A02", ComponentType.CONNECTOR, registry));
assertTrue(handler.matches("12251140CNG0S115001", ComponentType.CONNECTOR, registry));
}
@Test
void shouldExtractPinCount() {
assertEquals(4, handler.extractPinCount("27310202ANG3SUT")); // 2×2=4
assertEquals(40, handler.extractPinCount("17310140ANSNSUT")); // 1×40=40
assertEquals(80, handler.extractPinCount("27310240ANSNSUT")); // 2×40=80
}
@Test
void shouldExtractPackageCode() {
assertEquals("SMT", handler.extractPackageCode("27310202MNSNSUT"));
assertEquals("Straight THT", handler.extractPackageCode("27310202ANSNSUT"));
assertEquals("Right Angle THT", handler.extractPackageCode("27310202ARSNRUT"));
}
length() != 15 not length() < 15 to catch both too short AND too long MPNssubstring(6,8) operations to prevent IndexOutOfBoundsException