.claude/skills/manufacturers/gigadevice/SKILL.md
GigaDevice Semiconductor MPN encoding patterns, suffix decoding, and handler guidance. Use when working with GigaDevice Flash memory, MCUs, or GigaDeviceHandler.
npx skillsauth add Cantara/lib-electronic-components gigadeviceInstall 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.
GigaDevice Semiconductor is a Chinese fabless semiconductor company founded in 2005. They are a major supplier of:
GigaDevice is known for providing cost-effective alternatives to Western manufacturers, particularly:
The GigaDeviceHandler supports these component types:
| ComponentType | Description |
|---------------|-------------|
| MEMORY | Generic memory category |
| MEMORY_FLASH | Flash memory (NOR and NAND) |
| MICROCONTROLLER | ARM Cortex and RISC-V MCUs |
GD25 [VARIANT] [DENSITY] [GRADE] [PACKAGE] [QUALIFIER]
│ │ │ │ │ │
│ │ │ │ │ └── R/TR = Tape and Reel
│ │ │ │ └── Package code (see table below)
│ │ │ └── Optional grade letter (C/E = voltage/temp grades)
│ │ └── Density in Megabits (16, 32, 64, 128, 256, 512)
│ └── Variant: Q=Standard, B=Wide VCC, LQ=Low Power, WQ=Wide VCC Low Power, T=High Performance
└── GD25 = Serial NOR Flash prefix
| Prefix | Description | Voltage Range | Notes | |--------|-------------|---------------|-------| | GD25Q | Standard Serial NOR | 2.7V - 3.6V | Most common, Winbond W25Q compatible | | GD25B | Wide Voltage | 1.65V - 3.6V | Extended voltage range | | GD25LQ | Low Power | 2.7V - 3.6V | Lower active/standby current | | GD25WQ | Wide Voltage Low Power | 1.65V - 3.6V | Combines B and LQ features | | GD25T | High Performance | 2.7V - 3.6V | Higher speed grades | | GD5F | SLC NAND Flash | 2.7V - 3.6V | NAND technology, higher density |
The density in Megabits follows the variant prefix:
| Code | Density | Bytes | |------|---------|-------| | 16 | 16 Mbit | 2 MB | | 32 | 32 Mbit | 4 MB | | 64 | 64 Mbit | 8 MB | | 128 | 128 Mbit | 16 MB | | 256 | 256 Mbit | 32 MB | | 512 | 512 Mbit | 64 MB |
For NAND (GD5F series), density is in Gigabits:
| Code | Density | Bytes | |------|---------|-------| | 1G | 1 Gbit | 128 MB | | 2G | 2 Gbit | 256 MB | | 4G | 4 Gbit | 512 MB |
| Suffix | Package | Description | |--------|---------|-------------| | SIG | SOP-8 | Standard 8-pin SOIC | | SIQ | SOP-8 | SOP-8 variant | | SIP | SOP-8 | SOP-8 variant | | CSIG | SOP-8 | SOP-8 with extended features | | ESIG | SOP-8 | SOP-8 extended voltage | | EIG | SOP-8 | SOP-8 extended | | WIG | WSON-8 | 6x5mm QFN-style | | EWIGR | WSON-8 | WSON-8 extended, tape & reel | | EWIQ | WSON-8 | WSON-8 extended variant | | WIGR | WSON-8 | WSON-8 tape & reel | | ZIG | USON-8 | Ultra-small 4x3mm | | EZIQ | USON-8 | USON-8 extended | | FIG | WLCSP | Wafer-level chip-scale | | LIG | SOIC-16 | 16-pin SOIC (dual I/O) | | NIG | DFN-8 | Small DFN package | | TIG | TFBGA | Thin fine-pitch BGA | | TIGR | TFBGA | TFBGA tape & reel | | UIG | VSOP-8 | Very small SOP | | BIG | BGA | Ball grid array |
GD25Q128CSIG
│ │ │ │
│ │ │ └── SIG = SOP-8 package
│ │ └── C = Grade (voltage/temp variant)
│ └── 128 = 128 Mbit (16 MB) density
└── GD25Q = Standard serial NOR flash
GD25Q64EWIGR
│ │ │ │
│ │ │ └── R = Tape and Reel packaging
│ │ └── EWIG = Extended WSON-8 package
│ └── 64 = 64 Mbit (8 MB) density
└── GD25Q = Standard serial NOR flash
GD25LQ16CZIG
│ │ │ │
│ │ │ └── ZIG = USON-8 package
│ │ └── C = Grade variant
│ └── 16 = 16 Mbit (2 MB) density
└── GD25LQ = Low Power serial NOR flash
GD5F1GM7XEYIGR
│ │ │ │ │
│ │ │ │ └── R = Tape and Reel
│ │ │ └── EYIG = Package code
│ │ └── M7 = Variant/generation
│ └── 1G = 1 Gbit (128 MB) density
└── GD5F = SLC NAND flash
GD32 [FAMILY] [SERIES] [LINE] [PIN] [FLASH] [PKG] [TEMP]
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ └── Temperature grade (6=0-70°C, 7=-40-85°C)
│ │ │ │ │ │ └── Package type (T=LQFP, K=BGA, etc.)
│ │ │ │ │ └── Flash size code (8=64KB, B=128KB, etc.)
│ │ │ │ └── Pin count code (C=48, R=64, V=100, etc.)
│ │ │ └── Line number within series (01-30)
│ │ └── Series number (1, 2, 3, 4, 5)
│ └── Family: F=Cortex-M3, F3=M4, F4=M4F, E=Enhanced, VF=RISC-V, L=Low Power, W=Wi-Fi
└── GD32 = MCU prefix
| Prefix | Core | Compatible With | Notes | |--------|------|-----------------|-------| | GD32F1xx | Cortex-M3 | STM32F1xx | Entry-level, most common | | GD32F3xx | Cortex-M4 | STM32F3xx | DSP instructions, no FPU | | GD32F4xx | Cortex-M4F | STM32F4xx | FPU, high performance | | GD32E1xx | Cortex-M3 | - | Enhanced peripherals | | GD32E2xx | Cortex-M23 | - | TrustZone-M | | GD32E5xx | Cortex-M33 | - | Enhanced security | | GD32VF1xx | RISC-V | - | Open ISA, RV32IMAC | | GD32W5xx | Cortex-M33 | - | Wi-Fi integrated | | GD32L2xx | Cortex-M23 | - | Ultra-low power |
| Code | Pin Count | Notes | |------|-----------|-------| | T | 36 | Small package | | K | 32 | Compact | | C | 48 | Common for prototyping | | R | 64 | Medium complexity | | V | 100 | High pin count | | Z | 144 | Large package | | I | 176 | Maximum pins |
| Code | Flash Size | RAM (typical) | |------|------------|---------------| | 4 | 16 KB | 4-6 KB | | 6 | 32 KB | 6-10 KB | | 8 | 64 KB | 10-20 KB | | B | 128 KB | 20-32 KB | | C | 256 KB | 32-48 KB | | D | 384 KB | 48-64 KB | | E | 512 KB | 64-96 KB | | G | 1024 KB | 96-128 KB | | I | 2048 KB | 128-256 KB |
| Code | Package | Notes | |------|---------|-------| | T | LQFP | Standard QFP, most common | | C | LQFP | Alternate LQFP code | | R | LQFP | LQFP variant | | K | UFBGA | Ultra-fine pitch BGA | | U | VFQFPN | Very fine pitch QFN | | H | BGA | Ball grid array | | V | VFQFPN | QFN variant | | Y | WLCSP | Wafer-level CSP | | G | WLCSP | WLCSP variant |
| Code | Range | Application | |------|-------|-------------| | 6 | 0°C to +70°C | Commercial | | 7 | -40°C to +85°C | Industrial | | 5 | -40°C to +105°C | Extended |
GD32F103C8T6
│ │ │││││
│ │ ││││└── 6 = Commercial temp (0 to +70°C)
│ │ │││└── T = LQFP package
│ │ ││└── 8 = 64KB Flash
│ │ │└── C = 48 pins
│ │ └── 03 = Line designation (compatible with STM32F103)
│ └── F1 = Cortex-M3, series 1
└── GD32 = MCU prefix
GD32VF103CBT6
│ │ │││││
│ │ ││││└── 6 = Commercial temp
│ │ │││└── T = LQFP package
│ │ ││└── B = 128KB Flash
│ │ │└── C = 48 pins
│ │ └── 03 = Line designation
│ └── VF1 = RISC-V, series 1
└── GD32 = MCU prefix
GD32F407VET7
│ │ ││││││
│ │ │││││└── 7 = Industrial temp (-40 to +85°C)
│ │ ││││└── T = LQFP package
│ │ │││└── E = 512KB Flash
│ │ ││└── V = 100 pins
│ │ │└── 07 = High-performance line
│ │ └── 4 = Series 4
│ └── F = Cortex-M4F family
└── GD32 = MCU prefix
// For Flash memory: check suffixes in order (longer first)
String[] suffixesToCheck = {"EWIGR", "CSIG", "ESIG", "WIGR", "TIGR",
"EWIQ", "EZIQ", "WIG", "SIG", "SIQ", "SIP", "EIG",
"ZIG", "FIG", "LIG", "NIG", "TIG", "UIG", "BIG"};
// For MCUs: package is second-to-last character
// GD32F103C8T6 -> T = LQFP
char packageChar = mpn.charAt(mpn.length() - 2);
The handler extracts series by matching specific prefixes:
| MPN Prefix | Series Returned | |------------|-----------------| | GD25Q... | GD25Q | | GD25B... | GD25B | | GD25LQ... | GD25LQ | | GD25WQ... | GD25WQ | | GD25T... | GD25T | | GD5F... | GD5F | | GD32VF1... | GD32VF1 | | GD32F1... | GD32F1 | | GD32F3... | GD32F3 | | GD32F4... | GD32F4 | | GD32E1... | GD32E1 | | GD32E2... | GD32E2 | | GD32E5... | GD32E5 | | GD32W5... | GD32W5 | | GD32L2... | GD32L2 |
// GD32F103C8T6 -> GD32F103 (line)
// GD32VF103CBT6 -> GD32VF103 (line)
// RISC-V has extra 'F' so needs special handling
if (mpn.startsWith("GD32VF")) {
return mpn.substring(0, 9); // GD32VF103
}
return mpn.substring(0, 8); // GD32F103, GD32E230
The handler's isOfficialReplacement() method considers parts as valid replacements when:
For Flash Memory:
For MCUs:
GD32F series MCUs are designed as drop-in replacements for STM32F:
| GD32 | STM32 Equivalent | Compatibility Notes | |------|------------------|---------------------| | GD32F103 | STM32F103 | High compatibility, same peripherals | | GD32F303 | STM32F303 | Good compatibility, minor timing differences | | GD32F407 | STM32F407 | Compatible with some peripheral differences |
Important compatibility notes:
// Serial NOR Flash patterns
"^GD25Q\\d+.*" // Standard
"^GD25B\\d+.*" // Wide voltage
"^GD25LQ\\d+.*" // Low power
"^GD25WQ\\d+.*" // Wide voltage low power
"^GD25T\\d+.*" // High performance
// NAND Flash pattern
"^GD5F\\d+.*"
// MCU patterns
"^GD32F1\\d{2}.*" // Cortex-M3
"^GD32F3\\d{2}.*" // Cortex-M4
"^GD32F4\\d{2}.*" // High performance M4
"^GD32E[125]\\d{2}.*" // Enhanced
"^GD32VF1\\d{2}.*" // RISC-V
"^GD32W5\\d{2}.*" // Wi-Fi
"^GD32L2\\d{2}.*" // Low power
manufacturers/GigaDeviceHandler.javaMEMORY, MEMORY_FLASH, MICROCONTROLLERWinbondHandler.java (competing Flash), STHandler.java (compatible MCUs)(VF|[VEFL]) alternation.extractPackageCode() method for MCUs returns package type with pin count (e.g., "LQFP48") when the pin code can be extracted.getSupportedTypes() method correctly uses Set.of() (immutable) rather than HashSet.data-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.