Lib-electronic-components novatek

Novatek Microelectronics MPN encoding patterns, suffix decoding, and handler guidance. Use when working with Novatek display driver components or NovatekHandler.

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/novatek" ~/.claude/skills/cantara-lib-electronic-components-novatek && rm -rf "$T"
manifest: .claude/skills/manufacturers/novatek/SKILL.md
source content

Novatek Microelectronics Manufacturer Skill

MPN Structure

Novatek MPNs follow this general structure:

[PREFIX][SERIES][MODEL][VARIANT][PACKAGE][-OPTION]
   |       |       |       |        |        |
   |       |       |       |        |        +-- Optional: additional options
   |       |       |       |        +-- Package: H=COG, C=COF, A=AMOLED, D=Display
   |       |       |       +-- Variant letter for revisions
   |       |       +-- Model number (3 digits)
   |       +-- Series digits (35, 36, 37, 38, 39, 50, 51, 66, 67)
   +-- NT prefix (all Novatek products)

Example Decoding

NT35510H
|  |   ||
|  |   |+-- H = COG package
|  |   +-- (no variant)
|  +-- 35510 = TFT LCD driver model
+-- NT = Novatek prefix

NT36672A-DP
|  |    | ||
|  |    | |+-- P = additional option
|  |    | +-- D = Display driver type
|  |    +-- A = AMOLED variant
|  +-- 36672 = AMOLED driver model
+-- NT = Novatek prefix

Product Families

NT35xxx Series - TFT LCD Drivers

Part NumberDescriptionResolution
NT35510TFT LCD driver480x800
NT35516TFT LCD driver540x960
NT35596TFT LCD driver1080x1920

NT36xxx Series - AMOLED Drivers

Part NumberDescriptionFeatures
NT36672AMOLED driverFHD+
NT36672AAMOLED driverImproved A variant
NT36675AMOLED driverPremium panel

NT37xxx/NT38xxx Series - Display Drivers

Part NumberDescriptionFeatures
NT37xxxOLED driversGeneral OLED
NT38xxxDisplay driversVarious panels

NT39xxx Series - Advanced Display Controllers

Part NumberDescriptionFeatures
NT39016Advanced displayMulti-interface
NT39xxxAdvanced displaySpecial applications

NT50xxx Series - Timing Controllers (TCON)

Part NumberDescriptionFeatures
NT50xxxTiming controllerPanel timing

NT51xxx Series - LED Backlight Drivers

Part NumberDescriptionFeatures
NT51xxxLED backlightBacklight control

NT66xxx/NT67xxx Series - Touch Controllers

Part NumberDescriptionFeatures
NT66xxxTouch controllerCapacitive touch
NT67xxxTouch controllerAdvanced touch

Package Codes

Single-Letter Package Indicators

CodePackage/TypeNotes
HCOGChip-on-glass
CCOFChip-on-film
AAMOLEDAMOLED variant
DDisplay DriverGeneral display type

Multi-Letter Package Codes

CodePackageNotes
COGChip-on-GlassDirect glass bonding
COFChip-on-FilmFlexible film bonding
BGABGABall grid array
QFPQFPQuad flat package
WLCSPWLCSPWafer level CSP
TFBGAThin Fine-pitch BGAThin BGA
FBGAFine-pitch BGAFine-pitch BGA

Display Technology Detection

public String getDisplayTechnology(String mpn) {
    if (mpn.matches("^NT35[0-9]{3}.*")) return "TFT LCD";
    if (mpn.matches("^NT36[0-9]{3}.*")) return "AMOLED";
    if (mpn.matches("^NT37[0-9]{3}.*") || mpn.matches("^NT38[0-9]{3}.*")) return "OLED";
    if (mpn.matches("^NT39[0-9]{3}.*")) return "Advanced Display";
    if (mpn.matches("^NT50[0-9]{3}.*")) return "Timing Controller";
    if (mpn.matches("^NT51[0-9]{3}.*")) return "LED Backlight";
    if (mpn.matches("^NT66[0-9]{3}.*") || mpn.matches("^NT67[0-9]{3}.*")) return "Touch Controller";
    return "";
}

Handler Implementation Notes

Pattern Matching

// NT35xxx - TFT LCD drivers
"^NT35[0-9]{3}[A-Z0-9-]*$"

// NT36xxx - AMOLED drivers
"^NT36[0-9]{3}[A-Z0-9-]*$"

// NT37xxx, NT38xxx - Display drivers
"^NT37[0-9]{3}[A-Z0-9-]*$"
"^NT38[0-9]{3}[A-Z0-9-]*$"

// NT39xxx - Advanced display controllers
"^NT39[0-9]{3}[A-Z0-9-]*$"

// NT50xxx - Timing controllers
"^NT50[0-9]{3}[A-Z0-9-]*$"

// NT51xxx - LED backlight drivers
"^NT51[0-9]{3}[A-Z0-9-]*$"

// NT66xxx, NT67xxx - Touch controllers
"^NT66[0-9]{3}[A-Z0-9-]*$"
"^NT67[0-9]{3}[A-Z0-9-]*$"

Package Code Extraction

// Method 1: Check hyphenated suffix (NT35510-COG)
int hyphenIndex = mpn.indexOf('-');
if (hyphenIndex > 0) {
    String suffix = mpn.substring(hyphenIndex + 1);
    // Extract first part if multiple hyphens
    int nextHyphen = suffix.indexOf('-');
    if (nextHyphen > 0) suffix = suffix.substring(0, nextHyphen);
    // Map to package
}

// Method 2: Extract single-letter after NTxxxxx
// NT[0-9]{5}[A-Z]...
Pattern packagePattern = Pattern.compile("^NT[0-9]{5}([A-Z]).*$");

Series Extraction

Returns first 4 characters (NT + 2 digits):

  • NT35510 -> "NT35"
  • NT36672 -> "NT36"
  • NT66xxx -> "NT66"

Related Files

  • Handler:
    manufacturers/NovatekHandler.java
  • Component types:
    IC
    ,
    LED_DRIVER

Common Use Cases

Smartphone Display Drivers

Novatek is a leading supplier for smartphone display drivers:

  • NT35510: Entry-level smartphone LCDs (480x800)
  • NT35596: FHD smartphone LCDs (1080x1920)
  • NT36672: AMOLED smartphone displays

Display Technology Migration

Upgrade PathFromTo
LCD to AMOLEDNT35xxxNT36xxx
Low-res to High-resNT35510NT35596

Replacement Considerations

Family Compatibility

Parts within the same NTxx000 family (differing in last digit) may be revision variants:

  • NT35510, NT35511 - possibly compatible
  • Always verify pinout and register set compatibility

Same Base Part

Same NTxxxxx with different package codes are NOT direct replacements (different physical form):

  • NT35510H (COG) vs NT35510C (COF)

Learnings & Edge Cases

  • 5-digit model numbers: Novatek uses NTxxxxx (5 digits after NT), unlike some competitors with 4 digits.
  • Suffix complexity: Some parts have multi-part suffixes like NT36672A-DP where A=variant, D=type, P=option.
  • NT51xxx dual registration: These are registered as both IC and LED_DRIVER since they're LED backlight controllers.
  • Touch vs Display: NT66/NT67 series are touch controllers only; display is NT35/36/37/38/39.
  • TCON role: NT50xxx timing controllers don't drive pixels - they control panel timing signals.
  • Family revisions: Parts like NT35510 and NT35511 may be within the same family but check datasheets for differences.
<!-- Add new learnings above this line -->