Lib-electronic-components vikingtech
Viking Tech MPN encoding patterns, suffix decoding, and handler guidance. Use when working with Viking Tech precision resistors including chip, anti-sulfur, and current sense resistors.
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/vikingtech" ~/.claude/skills/cantara-lib-electronic-components-vikingtech && rm -rf "$T"
manifest:
.claude/skills/manufacturers/vikingtech/SKILL.mdsource content
Viking Tech Manufacturer Skill
MPN Structure
Viking Tech MPNs follow this general structure:
[SERIES][SIZE]-[TOLERANCE][TYPE]-[VALUE][SUFFIX] | | | | | | | | | | | +-- Lead-free suffix (ELF, GLF) | | | | +-- 4-digit value code (1001=1k) | | | +-- Type code (X, etc.) | | +-- Tolerance (F=1%, G=2%, J=5%) | +-- Package size (0402, 0603, 0805, 1206, etc.) +-- Series prefix (CR, AR, CSR, PA)
Example Decoding
CR0603-FX-1001ELF | | | | | | | | | | | +-- ELF = Lead-free suffix | | | | +-- 1001 = 1k (100 x 10^1) | | | +-- X = Type code | | +-- F = 1% tolerance | +-- 0603 = 0603 package (1.6x0.8mm) +-- CR = Chip Resistor series AR0603-FX-1002GLF | | | | | | | | | | | +-- GLF = Lead-free suffix (alternate) | | | | +-- 1002 = 10k (100 x 10^2) | | | +-- X = Type code | | +-- F = 1% tolerance | +-- 0603 = 0603 package +-- AR = Anti-sulfur Resistor series CSR0805-0R010F | | | | | | | +-- F = 1% tolerance | | +-- 0R010 = 0.010 ohm (R notation) | +-- 0805 = 0805 package +-- CSR = Current Sense Resistor series
Series Reference
| Series | Name | Description |
|---|---|---|
| CR | Chip Resistor | Standard thick film chip resistors |
| AR | Anti-Sulfur Resistor | Sulfur-resistant for harsh environments |
| PA | Power Resistor | High power chip resistors |
| CSR | Current Sense Resistor | Low ohm precision current sensing |
Package Sizes
Viking Tech uses standard EIA package codes:
| Code | Dimensions (mm) | Dimensions (inch) | Power Rating |
|---|---|---|---|
| 0201 | 0.6 x 0.3 | 0.02 x 0.01 | 1/20W |
| 0402 | 1.0 x 0.5 | 0.04 x 0.02 | 1/16W |
| 0603 | 1.6 x 0.8 | 0.06 x 0.03 | 1/10W |
| 0805 | 2.0 x 1.25 | 0.08 x 0.05 | 1/8W |
| 1206 | 3.2 x 1.6 | 0.12 x 0.06 | 1/4W |
| 1210 | 3.2 x 2.5 | 0.12 x 0.10 | 1/2W |
| 2010 | 5.0 x 2.5 | 0.20 x 0.10 | 3/4W |
| 2512 | 6.4 x 3.2 | 0.25 x 0.12 | 1W |
Tolerance Codes
| Code | Tolerance | Description |
|---|---|---|
| F | +/-1% | Precision |
| G | +/-2% | Standard precision |
| J | +/-5% | General purpose |
Value Codes
Standard 4-Digit Code (CR, AR series)
Format:
ABCD where ABC = significant digits, D = multiplier (10^D)
| Code | Value | Calculation |
|---|---|---|
| 1000 | 100 ohm | 100 x 10^0 |
| 1001 | 1k | 100 x 10^1 |
| 1002 | 10k | 100 x 10^2 |
| 1003 | 100k | 100 x 10^3 |
| 4700 | 470 ohm | 470 x 10^0 |
| 4701 | 4.7k | 470 x 10^1 |
| 4702 | 47k | 470 x 10^2 |
R Notation (CSR series)
For low-ohm current sense resistors, R indicates decimal point:
| Code | Value |
|---|---|
| 0R010 | 0.010 ohm |
| 0R020 | 0.020 ohm |
| 0R100 | 0.100 ohm |
| 1R00 | 1.00 ohm |
| R100 | 0.100 ohm |
Handler Implementation Notes
Pattern Recognition
// CR series - Standard chip resistors "^CR[0-9]{4}.*" // CR0603... // AR series - Anti-sulfur resistors "^AR[0-9]{4}.*" // AR0603... // PA series - Power resistors "^PA[0-9]+.*" // PA0805..., PA1206... // CSR series - Current sense resistors "^CSR[0-9]{4}.*" // CSR0805...
Package Code Extraction
// CR, AR series: size code starts at position 2 if (mpn.matches("^(CR|AR)[0-9]{4}.*")) { String sizeCode = mpn.substring(2, 6); // "0603" return sizeCode; } // CSR series: size code starts at position 3 if (mpn.matches("^CSR[0-9]{4}.*")) { String sizeCode = mpn.substring(3, 7); // "0805" return sizeCode; } // PA series: size code starts at position 2 if (mpn.matches("^PA[0-9]{4}.*")) { String sizeCode = mpn.substring(2, 6); // "0805" return sizeCode; }
Tolerance Extraction
// CR/AR format: CR0603-FX-1001ELF - tolerance after first hyphen if (mpn.matches("^(CR|AR)[0-9]{4}-[FGJ].*")) { int dashIndex = mpn.indexOf('-'); char toleranceChar = mpn.charAt(dashIndex + 1); // F=1%, G=2%, J=5% } // CSR format: CSR0805-0R010F - tolerance at end before suffix // Find F, G, or J after the value
Value Extraction
// CR/AR format: value is in third segment // CR0603-FX-1001ELF -> 1001 String[] parts = mpn.split("-"); if (parts.length >= 3) { String valuePart = parts[2].replaceAll("[A-Z]+$", ""); // Remove ELF return decodeResistorValue(valuePart); // 1001 -> 1k } // CSR format: value after hyphen with R notation // CSR0805-0R010F -> 0R010 -> 0.010 ohm int dashIndex = mpn.indexOf('-'); String valuePart = mpn.substring(dashIndex + 1).replaceAll("[FGJ].*$", ""); return valuePart.replace("R", "."); // 0R010 -> 0.010
Value Decoding (4-digit code)
private String decodeResistorValue(String code) { if (code.matches("[0-9]{4}")) { int significantDigits = Integer.parseInt(code.substring(0, 3)); int multiplier = Integer.parseInt(code.substring(3)); double value = significantDigits * Math.pow(10, multiplier); if (value >= 1000000) { return String.format("%.0fM", value / 1000000); } else if (value >= 1000) { return String.format("%.0fk", value / 1000); } else { return String.format("%.0f", value); } } return code; }
Replacement Rules
The handler supports replacement based on:
- Same series and size required: CR0603 can only replace CR0603
- Tolerance must match: F (1%) cannot be replaced by J (5%)
- Same value required: Resistance value must be identical
// Same series and size String series1 = extractSeries(mpn1); // "CR0603" String series2 = extractSeries(mpn2); // "CR0603" if (!series1.equals(series2)) return false; // Same tolerance String tolerance1 = extractTolerance(mpn1); // "F" String tolerance2 = extractTolerance(mpn2); // "F" if (!tolerance1.equals(tolerance2)) return false;
Related Files
- Handler:
manufacturers/VikingTechHandler.java - Component types:
RESISTOR - Supported types: RESISTOR, IC
Application Notes
Anti-Sulfur Resistors (AR series)
AR series resistors use special electrode materials to resist sulfur corrosion. Use in:
- Industrial environments with sulfur gases
- Automotive applications
- LED lighting (near rubber components)
- Any application with potential sulfur exposure
Current Sense Resistors (CSR series)
CSR series are optimized for current measurement:
- Low inductance design
- 4-terminal (Kelvin) sensing available on larger sizes
- Low TCR (Temperature Coefficient of Resistance)
- Typical values: 0.001 ohm to 1 ohm
Learnings & Edge Cases
- Value code position varies: CR/AR use segment-based (third hyphen segment), CSR uses position-based
- R notation for CSR: 0R010 means 0.010 ohm (R is decimal point)
- Suffix meanings: ELF and GLF both indicate lead-free, different internal codes
- Series in extraction: extractSeries() returns series+size (CR0603) not just series (CR)
- 4-digit value code: First 3 digits are significant, 4th is multiplier (1001 = 100 x 10^1 = 1k)
- CSR tolerance position: Tolerance letter comes after value, not in separate segment