.claude/skills/manufacturers/qualcomm/SKILL.md
Qualcomm MPN encoding patterns, suffix decoding, and handler guidance. Use when working with Qualcomm mobile SoCs, RF front-end, WiFi/Bluetooth, modems, or power management ICs.
npx skillsauth add Cantara/lib-electronic-components qualcommInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Qualcomm is a leading fabless semiconductor company specializing in:
Qualcomm MPNs follow this general structure:
[PREFIX][SERIES][-PACKAGE]
│ │ │
│ │ └── Optional: Package suffix (BGA, CSP, QFN, etc.)
│ └── Numeric series (3-4 digits)
└── Product family prefix (SM, QCA, PM, etc.)
SM8550-AB
│ │ │
│ │ └── AB = Package/variant designation
│ └── 8550 = Snapdragon 8 Gen 2 series
└── SM = Snapdragon Mobile platform
QCA6390-FCBGA
│ │ │
│ │ └── FCBGA = Flip-Chip BGA package
│ └── 6390 = Wi-Fi 6E / Bluetooth 5.2 combo chip
└── QCA = Qualcomm Connectivity/Atheros (Wi-Fi/BT)
PM8550
│ │
│ └── 8550 = Power management IC for SM8550 platform
└── PM = Power Management IC
| Prefix | Category | Examples | Notes | |--------|----------|----------|-------| | SM | Snapdragon Mobile | SM8550, SM8450, SM8350 | Current flagship naming | | SD | Snapdragon | SD888, SD865, SD855 | Legacy flagship naming | | QSD | Snapdragon (original) | QSD8250, QSD8650 | First-gen Snapdragon | | MSM | Mobile Station Modem | MSM8996, MSM8953 | Integrated modem SoCs |
| Prefix | Category | Examples | Notes | |--------|----------|----------|-------| | QCS | IoT Platform | QCS400, QCS603, QCS610 | Smart speaker, camera, etc. | | QCM | IoT Module | QCM2150, QCM6490 | Complete system modules | | APQ | Application Processor | APQ8064, APQ8084 | No integrated modem | | IPQ | Network Processor | IPQ8074, IPQ6018 | Routers, networking |
| Prefix | Category | Examples | Notes | |--------|----------|----------|-------| | QM | RF Module | QM42195, QM78207 | Integrated RF front-end | | QPM | Power Module | QPM2630, QPM5677 | PA power modules | | QAT | Antenna Tuner | QAT3516, QAT3555 | Impedance tuning | | QET | Envelope Tracker | QET5100, QET6100 | Power efficiency |
| Prefix | Category | Examples | Notes | |--------|----------|----------|-------| | QCA | Wi-Fi/Bluetooth | QCA6390, QCA9377, QCA6174 | Atheros heritage | | WCN | Wireless Connectivity | WCN3990, WCN6855 | Combo chips | | MDM | Modem | MDM9206, MDM9650 | Standalone modems | | FSM | Small Cell | FSM9955, FSM9900 | Base station |
| Prefix | Category | Examples | Notes | |--------|----------|----------|-------| | PM | PMIC | PM8550, PM8350, PM8150 | Main PMICs | | PMI | Power Management IC | PMI8998, PMI632 | Alternate PMIC series | | SMB | Battery Charger | SMB1360, SMB1350 | Charging ICs |
| Prefix | Category | Examples | Notes | |--------|----------|----------|-------| | WCD | Audio Codec | WCD9380, WCD9340 | Audio CODEC ICs | | WSA | Smart Amplifier | WSA8810, WSA8815 | Speaker amplifiers |
Package codes appear after a hyphen in the MPN.
| Suffix | Package | Full Name | |--------|---------|-----------| | BGA | BGA | Ball Grid Array | | CSP | CSP | Chip Scale Package | | POP / PoP | Package-on-Package | Stacked package | | QFN | QFN | Quad Flat No-leads | | PQFN | Power QFN | Power-rated QFN | | LFCSP | Lead Frame CSP | Lead Frame Chip Scale | | WLCSP | Wafer Level CSP | Smallest footprint | | FCBGA | Flip-Chip BGA | Flip-chip interconnect |
The handler extracts package codes from the suffix after the last hyphen:
// Direct match
"BGA" -> "BGA"
"CSP" -> "CSP"
"POP" or "PoP" -> "Package-on-Package"
"QFN" -> "QFN"
"PQFN" -> "Power QFN"
"LFCSP" -> "Lead Frame CSP"
"WLCSP" -> "Wafer Level CSP"
"FCBGA" -> "Flip-Chip BGA"
// Contains check (fallback)
Contains "BGA" -> "BGA"
Contains "CSP" -> "CSP"
Contains "QFN" -> "QFN"
The handler extracts series by collecting letters and digits before any hyphen:
// Algorithm: collect alphanumerics until hyphen or end of letter+digit pattern
SM8550-AB → SM8550
QCA6390 → QCA6390
PM8550 → PM8550
MDM9650 → MDM9650
The extraction stops when:
| Series | Tier | Examples | |--------|------|----------| | SM8xxx | Flagship (8-series) | SM8550 (Gen 2), SM8650 (Gen 3) | | SM7xxx | Premium (7-series) | SM7550, SM7450 | | SM6xxx | Mainstream (6-series) | SM6350, SM6225 | | SM4xxx | Budget (4-series) | SM4350, SM4250 |
| Series | Year | Examples | |--------|------|----------| | SD8xx | 2017-2021 | SD888, SD865, SD855, SD845 | | SD7xx | 2018-2021 | SD780, SD765, SD750 | | SD6xx | 2017-2021 | SD695, SD680, SD660 | | SD4xx | 2016-2021 | SD480, SD460, SD450 | | MSM89xx | 2014-2017 | MSM8996, MSM8953 |
| Tier | Keyword | Description | |------|---------|-------------| | Elite | Elite | Highest performance | | Plus | Plus | Enhanced variant | | Pro | Pro | Professional variant | | Standard | (none) | Base variant |
| Generation | Keyword | Year | |------------|---------|------| | Gen 1 | Gen1 | 2021 | | Gen 2 | Gen2 | 2022 | | Gen 3 | Gen3 | 2023 |
The handler registers all patterns under ComponentType.IC and declares:
getSupportedTypes() → { WIFI_IC_QUALCOMM }
Known Issue: The handler registers patterns for many IC categories (SoCs, modems, PMICs, etc.) but only declares WIFI_IC_QUALCOMM in getSupportedTypes(). Consider adding IC to getSupportedTypes() for completeness.
The handler implements sophisticated replacement checking via isOfficialReplacement():
| Series 1 | Series 2 | Category | |----------|----------|----------| | SD8xx | SD8xx | Snapdragon flagship | | SM8xx | SM8xx | Snapdragon mobile | | QCS4xx | QCS4xx | IoT platform | | QCM2xx | QCM2xx | IoT module | | QM4xx | QM4xx | RF module | | QCA6xx | QCA6xx | Wi-Fi/Bluetooth | | WCN3xx | WCN3xx | Wireless connectivity |
Snapdragon SoCs (SM, SD, QSD, MSM):
Wireless Modules (QCA, WCN, MDM, FSM):
Power Management (PM, PMI, SMB):
| MPN | Description | |-----|-------------| | SM8550-AB | Snapdragon 8 Gen 2 flagship SoC | | SM8450-3-AB | Snapdragon 8 Gen 1 SoC | | SD888 | Snapdragon 888 flagship (legacy naming) | | MSM8996 | Snapdragon 820/821 SoC | | QSD8250 | First-gen Snapdragon |
| MPN | Description | |-----|-------------| | QCS603 | Vision Intelligence Platform | | QCM6490 | IoT module with 5G | | APQ8064 | Application processor (no modem) | | IPQ8074 | Networking processor for routers |
| MPN | Description | |-----|-------------| | QM42195 | RF front-end module | | QPM5677 | Power amplifier module | | QAT3555 | Antenna tuner | | QET6100 | Envelope tracking module |
| MPN | Description | |-----|-------------| | QCA6390 | Wi-Fi 6E / Bluetooth 5.2 | | QCA6174A-3-FCBGA | Wi-Fi 5 / BT 4.2, FCBGA package | | WCN6855 | Wi-Fi 6E combo chip | | MDM9650 | LTE Cat-9 modem |
| MPN | Description | |-----|-------------| | PM8550 | Main PMIC for SM8550 | | PMI8998 | Power management IC | | SMB1360-1-BGA | Battery charging IC, BGA package |
| MPN | Description | |-----|-------------| | WCD9380 | Audio codec | | WSA8810 | Smart speaker amplifier |
All patterns are registered under ComponentType.IC:
// Mobile Platforms
"^SM[0-9]{3}.*" // SM8550, SM7450
"^SD[0-9]{3}.*" // SD888, SD865
"^QSD[0-9]{4}.*" // QSD8250
"^MSM[0-9]{4}.*" // MSM8996
// IoT/Embedded
"^QCS[0-9]{3}.*" // QCS603
"^QCM[0-9]{3}.*" // QCM2150
"^APQ[0-9]{4}.*" // APQ8064
"^IPQ[0-9]{4}.*" // IPQ8074
// RF Front-End
"^QM[0-9]{4}.*" // QM42195
"^QPM[0-9]{4}.*" // QPM5677
"^QAT[0-9]{4}.*" // QAT3555
"^QET[0-9]{4}.*" // QET6100
// Wireless
"^QCA[0-9]{4}.*" // QCA6390
"^WCN[0-9]{4}.*" // WCN6855
"^MDM[0-9]{4}.*" // MDM9650
"^FSM[0-9]{4}.*" // FSM9955
// Power Management
"^PM[0-9]{4}.*" // PM8550
"^PMI[0-9]{4}.*" // PMI8998
"^SMB[0-9]{3}.*" // SMB1360
// Audio
"^WCD[0-9]{4}.*" // WCD9380
"^WSA[0-9]{4}.*" // WSA8810
HashSet instead of Set.of() - should be updated for consistencyComponentType.IC but only declares WIFI_IC_QUALCOMM - may cause matches() to return true but type not in supported setWIFI_IC typemanufacturers/QualcommHandler.javaWIFI_IC_QUALCOMMdata-ai
Cost-effective task delegation strategy using Haiku model for straightforward work. Use when planning how to approach simple, pattern-following tasks to minimize costs.
tools
Use when working with component similarity calculations - comparing MPNs, finding equivalent parts, implementing new similarity calculators, or understanding how component matching works.
testing
Use when working with transistor similarity calculations - comparing BJT MPNs, understanding NPN/PNP polarity matching, equivalent groups like 2N2222/PN2222, or transistor-specific similarity logic.
testing
Use when working with sensor similarity calculations - comparing temperature/accelerometer/humidity sensor MPNs, understanding sensor families, equivalent parts, or sensor-specific similarity logic.