Claude-skill-registry akm
AKM (Asahi Kasei Microdevices) MPN encoding patterns, suffix decoding, and handler guidance. Use when working with AKM audio ICs, magnetic sensors, or electronic compasses.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/akm" ~/.claude/skills/majiayu000-claude-skill-registry-akm && rm -rf "$T"
skills/data/akm/SKILL.mdAKM (Asahi Kasei Microdevices) Manufacturer Skill
Company Overview
AKM (Asahi Kasei Microdevices) is a Japanese semiconductor manufacturer specializing in:
- Audio ICs: High-performance DACs and ADCs for professional and consumer audio
- Magnetic Sensors: 3-axis magnetometers and electronic compasses
- Hall Effect Sensors: Position and rotation sensing
- IMUs: Combined 9-axis sensors with accelerometer, gyroscope, and magnetometer
AKM is renowned for their premium audio converters used in high-end audio equipment and their compact magnetic sensors used in smartphones and wearables.
MPN Structure
AKM MPNs follow this general structure:
[PREFIX][SERIES][VARIANT][-][PACKAGE/OPTIONS] | | | | | | | +-- Package code or options | | +-- Variant/revision letter | +-- Series number (4-5 digits) +-- Always "AK" prefix
Naming Convention by Product Family
Audio ICs: AK4490 EQ - Premium 32-bit DAC AK4493 SEQ - Upgraded premium DAC AK5386 VT - 24-bit ADC AK4796 VQ - Audio DAC Magnetic Sensors: AK8963 C - 3-axis electronic compass AK8975 A - 3-axis compass AK09918 - 3-axis compass, newer series 9-axis IMUs: AK09911 C - 9-axis sensor (accel+gyro+compass) AK09912 - 9-axis with improved gyroscope AK09913 - 9-axis combined sensor
Product Families
Audio DACs (AK47xx, AK44xx)
| Series | Description | Bits | Channels | Notes |
|---|---|---|---|---|
| AK4490 | Premium DAC | 32-bit | 2 | Flagship, VELVET SOUND |
| AK4493 | Premium DAC | 32-bit | 2 | Successor to AK4490 |
| AK4495 | Premium DAC | 32-bit | 2 | Enhanced performance |
| AK4497 | Reference DAC | 32-bit | 2 | Top of line |
| AK4796 | General DAC | 24-bit | 2 | Cost-effective |
Audio ADCs (AK44xx, AK53xx)
| Series | Description | Bits | Channels | Notes |
|---|---|---|---|---|
| AK4490 | High-perf ADC | 24-bit | 2 | Multi-bit delta-sigma |
| AK5386 | Stereo ADC | 24-bit | 2 | Professional audio |
Magnetic Sensors / Electronic Compasses (AK89xx, AK099xx)
| Series | Description | Interface | Resolution | Notes |
|---|---|---|---|---|
| AK8963 | 3-axis compass | I2C/SPI | 14/16-bit | Widely used, smartphones |
| AK8975 | 3-axis compass | I2C | 13-bit | Older series |
| AK09911 | 9-axis IMU | I2C | 16-bit | With accelerometer |
| AK09912 | 9-axis IMU | I2C | 16-bit | With gyroscope |
| AK09913 | 9-axis IMU | I2C | 16-bit | Combined sensor |
| AK09918 | 3-axis compass | I2C | 16-bit | Newer, high precision |
| AK09940 | 3-axis compass | I2C/SPI | 18-bit | High precision |
High Precision Magnetic Sensors (AK099xx)
| Series | Description | Notes |
|---|---|---|
| AK09970 | Linear position sensor | Hall effect |
| AK09973 | Switch sensor | Omnipolar |
| AK09911-AK09916 | Hall sensors | Various applications |
Package Codes
Package codes appear as suffixes, typically separated or as trailing letters:
| Code | Package | Size | Notes |
|---|---|---|---|
| TR | LGA | 1.6x1.6mm | Tape and reel, common for sensors |
| CS | CSP | Small | Chip-scale package |
| WL | WLCSP | Tiny | Wafer-level CSP |
| TS | TSSOP | - | Thin shrink small outline |
| QFN | QFN | Various | Quad flat no-lead |
| BGA | BGA | Various | Ball grid array |
| EQ | QFN | 5x5mm | Audio DAC package |
| VT | TQFP | 7x7mm | Audio ADC package |
| VQ | QFP | - | Standard quad flat |
| SEQ | QFN | - | Enhanced QFN variant |
Package Extraction Logic
// From AKMHandler.extractPackageCode(): // Split on hyphen, take suffix from main part String[] parts = mpn.split("-"); String mainPart = parts[0]; String suffix = mainPart.replaceAll("^[A-Z0-9]+", ""); // Map known suffixes switch (suffix) { case "TR" -> "LGA"; case "CS" -> "CSP"; case "WL" -> "WLCSP"; case "TS" -> "TSSOP"; case "QFN" -> "QFN"; case "BGA" -> "BGA"; default -> suffix; // Return as-is }
Series Extraction Rules
The handler uses different extraction lengths based on product family:
| Family | Prefix | Series Length | Example |
|---|---|---|---|
| Audio ICs | AK4, AK5 | 5 characters | AK4490, AK5386 |
| Sensors | AK8, AK09 | 6 characters | AK8963C, AK09918 |
Series Extraction Logic
// From AKMHandler.extractSeries(): boolean isAudioIC = mpn.startsWith("AK4") || mpn.startsWith("AK5"); int maxLength = isAudioIC ? 5 : 6; // Extract up to maxLength alphanumeric characters // AK4490EQ -> AK449 (audio IC, 5 chars) // AK8963C -> AK8963 (sensor, 6 chars) // AK09918 -> AK0991 (sensor, 6 chars)
Interface Detection
For magnetic sensors, interface type can be extracted from the MPN:
| Suffix/Indicator | Interface | Notes |
|---|---|---|
| Ends with "I" | I2C | I2C interface |
| Ends with "S" | SPI | SPI interface |
| Contains "I2C" | I2C | Explicit in name |
| Contains "SPI" | SPI | Explicit in name |
Resolution Detection
For sensors, resolution may be indicated in the MPN:
| Indicator | Resolution | Notes |
|---|---|---|
| Contains "14BIT" | 14-bit | Lower resolution mode |
| Contains "16BIT" | 16-bit | Standard resolution |
Supported Component Types
From
AKMHandler.getSupportedTypes():
| ComponentType | Description | Pattern Examples |
|---|---|---|
| SENSOR | General sensors, IMUs | AK09[0-9]., AK0991[0-9]. |
| MAGNETOMETER | Magnetic sensors, compasses | AK89[0-9]., AK099., AK8963., AK8975., AK09918.* |
| IC | Audio DACs and ADCs | AK449[0-9]., AK479[0-9]., AK4490., AK5386. |
Note: The handler has commented-out types (HALL_SENSOR, ADC, DAC) that may not exist in the ComponentType enum.
Pattern Registry
Patterns registered in
AKMHandler.initializePatterns():
Magnetometer Patterns
// 3-axis magnetic sensors "^AK89[0-9].*" // AK8963, AK8975 series "^AK099.*" // AK099xx high precision "^AK8963.*" // Electronic compass "^AK8975.*" // Electronic compass "^AK09918.*" // 3-axis compass
Sensor/IMU Patterns
// 9-axis and Hall sensors "^AK09[0-9].*" // General 9-axis "^AK09911.*" // 9-axis with accelerometer "^AK09912.*" // 9-axis with gyroscope "^AK09913.*" // 9-axis combined "^AK0991[0-9].*" // Hall sensors
Audio IC Patterns
// DACs and ADCs "^AK449[0-9].*" // Audio ADC series "^AK479[0-9].*" // Audio DAC series "^AK4490.*" // Premium DAC "^AK5386.*" // Audio ADC
Official Replacement Logic
The
isOfficialReplacement() method checks compatibility based on:
For Sensors (AK8x, AK09x)
- Same series
- Same resolution (14-bit vs 16-bit)
- Compatible interface (I2C/SPI or unspecified)
For Audio ICs (AK4x, AK5x)
- Same series
- Same sample rate (48/96/192 kHz)
Example MPNs with Explanations
Audio DACs
AK4490EQ | | || | | |+-- Package: QFN (5x5mm) | | +--- E: Enhanced variant | +------ 4490: Premium 32-bit DAC +--------- AK: AKM prefix AK4493SEQ | | | | | | | +-- Package: QFN | | +---- S: Super variant | +------- 4493: Successor to AK4490 +---------- AK: AKM prefix AK5386VT | | || | | |+-- Package: TQFP (7x7mm) | | +--- V: Voltage variant | +------ 5386: 24-bit stereo ADC +--------- AK: AKM prefix
Magnetic Sensors
AK8963C | | | | | +--- C: Revision C | +------ 8963: 3-axis electronic compass +--------- AK: AKM prefix AK09918 | | | +------ 09918: Latest 3-axis compass +--------- AK: AKM prefix AK09911C | | | | | +-- C: Revision | +------ 09911: 9-axis IMU with accelerometer +--------- AK: AKM prefix
Hall Effect Sensors
AK09915 | | | +------ 09915: Hall effect sensor +--------- AK: AKM prefix AK09970D | | | | | +-- D: Grade/variant | +------ 09970: Linear position sensor +--------- AK: AKM prefix
Related Files
- Handler:
manufacturers/AKMHandler.java - Component types:
,SENSOR
,MAGNETOMETERIC - Pattern registry:
PatternRegistry.java
Learnings & Quirks
Handler Implementation
- getSupportedTypes() uses HashSet: Should be migrated to
for immutability (known technical debt)Set.of() - IC type needed: Audio IC patterns are registered under
, so IC must be in getSupportedTypes() for matches to work correctlyComponentType.IC - Commented-out types: HALL_SENSOR, ADC, DAC types are commented out in getSupportedTypes() - may indicate missing ComponentType definitions
Pattern Overlap
- AK09xxx series: Multiple patterns overlap (AK09[0-9], AK099, AK09911, etc.) - more specific patterns should be checked first
- Sensor vs Magnetometer: AK099xx matches both SENSOR (AK09[0-9]) and MAGNETOMETER (AK099) patterns - first match wins
Series Extraction
- Length varies by family: Audio ICs use 5 chars, sensors use 6 chars
- Includes variant letter: For sensors, the series includes the variant letter (AK8963C -> AK8963, but for shorter audio ICs AK4490EQ -> AK449)
Replacement Compatibility
- Sample rate matching for audio: Audio ICs require matching sample rates (48/96/192 kHz) for replacement compatibility
- Interface compatibility for sensors: Sensors with unspecified interface can match either I2C or SPI variants
Common Applications
- AK8963: Very popular in consumer electronics, used in smartphone compasses
- AK4490: Reference DAC for high-end audio equipment
- AK09918: Modern smartphone compass IC
Fire at AKM Factory (2020)
In October 2020, a fire at AKM's primary manufacturing facility severely impacted production:
- Many audio DAC/ADC products had extended lead times
- Some products were EOL'd
- Competitors (ESS, Cirrus Logic) gained market share
- Recovery took 2+ years for some product lines
Consider lifecycle status when specifying AKM components.
<!-- Add new learnings above this line -->