← スキル一覧に戻る
vikingtech
Cantara / lib-electronic-components
⭐ 1🍴 0📅 2026年1月18日
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.
SKILL.md
---
name: vikingtech
description: 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.
---
# 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
```java
// 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
```java
// 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
```java
// 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
```java
// 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)
```java
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:
1. **Same series and size required**: CR0603 can only replace CR0603
2. **Tolerance must match**: F (1%) cannot be replaced by J (5%)
3. **Same value required**: Resistance value must be identical
```java
// 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
<!-- Add new learnings above this line -->