master
John Lauer Fix WS2812B-2020: correct 2020 package model, pinout and land pattern 85e9e9e 20d ago
{
 "schema": "adom/provenance@1",
 "page": "adom/ws2812b-2020",
 "date": "2026-09-30",
 "by": "Claude (Opus 5.5) for John Lauer, approved to fix directly",
 "datasheet": {
  "title": "WS2812B-2020 Intelligent control LED integrated light source",
  "version": "V1.0 (2018-07-25)",
  "publisher": "Worldsemi",
  "md5": "1ebe0db441706c68747ba97185d7057d",
  "page_images": "ds/page-01.webp ... ds/page-09.webp",
  "pages_used": {
   "p.1": "Mechanical Dimensions: top view 2.20 x 2.00 mm, clear moulding 1.45 mm, pad pitch 1.00 mm; back view: 1.13 mm between bottom pads, polarity stripe beside pins 1/2; top view sketch: IC above a row of R G B dies (undimensioned)",
   "p.2": "Side View 0.84 mm total, 0.28 mm substrate; PCB Solder Pad 0.7 x 0.7 mm pads, 1.13 mm and 0.40 mm gaps; PIN Configuration + PIN Function: 1 DO, 2 GND, 3 DI, 4 VDD",
   "p.3": "LED characteristics: dominant wavelength red 620-630, green 515-525, blue 465-475 nm"
  }
 },
 "what_was_wrong": [
  "WS2812B-2020.step and both page GLBs were the 5.0 x 5.0 mm WS2812B (KiCad LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm) model, not the 2.20 x 2.00 x 0.84 mm WS2812B-2020 package.",
  "Symbol, .lbr and .adom-lbr.json used the 5050 WS2812B pinout (1 VDD, 2 DOUT, 3 VSS, 4 DIN); the WS2812B-2020 datasheet p.2 gives 1 DO, 2 GND, 3 DI, 4 VDD. A board built from the old symbol + footprint would have been miswired (VDD to DO, GND to DI...).",
  "Footprint pads were 0.70 x 0.50 mm at (+/-0.75, +/-0.45) mm, not the datasheet p.2 land pattern (0.70 x 0.70 mm at +/-0.915, +/-0.55 mm).",
  "WS2812B-2020.svg was a generic two-pin LED symbol; the legacy WS2812B-2020.html drew the R and B dies swapped and the body 2.0 mm wide."
 ],
 "model_3d": {
  "source": "AI-generated from the datasheet dimensions (last resort), built with OpenCascade (OCP 7.x python, cadquery-ocp-novtk venv ~/.local/share/adom-aiflow/occ) by provenance/tools/build_ws2812b_2020.py. adom-chipsmith NOT used.",
  "why_local_occt": "The shared step2glb service (v1.3.17) has no free-form geometry endpoint (/create-chip is a parametric IC-package generator); it was used for every check and conversion (features, thumbnail, convert).",
  "sources_checked_in_order": {
   "manufacturer": "world-semi.com product pages (opened in a pup window): datasheet PDFs only, no CAD/STEP downloads.",
   "distributor_cad": "LCSC/EasyEDA C965555 has a 3D model (LED-SMD_4P-L2.0-W2.0-H0.8-TL_WS2812B-2020, SolidWorks 2020 export, 2022-07-08). Not used: its library notice restricts use to designs made inside JLCEDA/EasyEDA, it carries an embossed 'LCEDA' logo on the underside, and its body is 2.0 x 2.0 mm (datasheet 2.20 x 2.00 mm) with a centred stripe. Used only as a sanity cross-check of the overall shape. SnapMagic search needs a login (not pursued); Ultra Librarian / SamacSys not checked (their models are for use in a design, not for redistribution on a page).",
   "kicad": "kicad-footprints has LED_WS2812B-2020_PLCC4_2.0x2.0mm.kicad_mod (its pads match the datasheet land pattern and were used as a cross-check), but the STEP it names does not exist in kicad-packages3D (LED_SMD.3dshapes listed 2026-09-30)."
  },
  "geometry_mm": {
   "body": [
    2.2,
    2.0
   ],
   "height": 0.84,
   "substrate": 0.28,
   "window_width": 1.45,
   "pad_pitch": 1.0,
   "bottom_pad": [
    0.5350000000000001,
    0.75
   ],
   "notch_r": 0.15,
   "stripe_x": [
    -0.53,
    0.0
   ]
  },
  "frame": "mm, Z up, seated on z = 0, origin at package centre; pin 1 DO (-X,+Y), 2 GND (-X,-Y), 3 DI (+X,-Y), 4 VDD (+X,+Y), matching the footprint (KiCad pin 1 top-left = datasheet top view turned 180 deg).",
  "parts": [
   "body",
   "window",
   "pin1_DO",
   "pin2_GND",
   "pin3_DI",
   "pin4_VDD",
   "polarity_mark",
   "die_R",
   "die_G",
   "die_B",
   "ic_die",
   "laser_etch"
  ],
  "colours": {
   "body": "sRGB (0.95, 0.95, 0.93) white",
   "window": "sRGB (0.82, 0.84, 0.86) milky, alpha 0.55",
   "terminals": "sRGB (0.78, 0.78, 0.76) tinned",
   "polarity_mark": "sRGB (0.12, 0.12, 0.12)",
   "ic_die": "sRGB (0.35, 0.36, 0.38)",
   "dies": [
    {
     "part": "die_R",
     "dominant_wavelength_nm": 625,
     "datasheet": "p.3 LED Characteristics, lambda_d range centre",
     "oklch": [
      0.6,
      0.1546,
      29.2
     ],
     "chroma_fraction_of_cusp": 0.6,
     "srgb": [
      0.7998,
      0.3324,
      0.2771
     ],
     "hex": "#CC5547",
     "box_mm": {
      "x": [
       0.18,
       0.38
      ],
      "y": [
       0.2,
       0.4
      ],
      "z": [
       0.28,
       0.29200000000000004
      ]
     }
    },
    {
     "part": "die_G",
     "dominant_wavelength_nm": 520,
     "datasheet": "p.3 LED Characteristics, lambda_d range centre",
     "oklch": [
      0.72,
      0.1201,
      159.7
     ],
     "chroma_fraction_of_cusp": 0.6,
     "srgb": [
      0.3411,
      0.7353,
      0.5413
     ],
     "hex": "#57BC8A",
     "box_mm": {
      "x": [
       -0.1,
       0.1
      ],
      "y": [
       0.2,
       0.4
      ],
      "z": [
       0.28,
       0.29200000000000004
      ]
     }
    },
    {
     "part": "die_B",
     "dominant_wavelength_nm": 470,
     "datasheet": "p.3 LED Characteristics, lambda_d range centre",
     "oklch": [
      0.52,
      0.1468,
      261.3
     ],
     "chroma_fraction_of_cusp": 0.6,
     "srgb": [
      0.2094,
      0.3959,
      0.7376
     ],
     "hex": "#3565BC",
     "box_mm": {
      "x": [
       -0.38,
       -0.18
      ],
      "y": [
       0.2,
       0.4
      ],
      "z": [
       0.28,
       0.29200000000000004
      ]
     }
    }
   ],
   "method": "hue from the datasheet p.3 dominant wavelength (range centre), OKLCh chroma 60 % of the sRGB gamut cusp at that hue (John 2026-09-30: desaturated, match the nm); red at the sRGB red-primary hue because 625 nm lies beyond it."
  },
  "die_placement": "illustrative: 0.20 mm squares, 0.28 mm pitch, one row 0.30 mm toward the pin 1/4 side, IC 0.40 x 0.34 mm toward the pin 2/3 side. The p.1 top-view sketch shows this arrangement and the R G B order (pin 1 bottom-right: R G B left to right; turned 180 deg: B G R) but gives no dimensions.",
  "laser_etch": {
   "text": "WS2812B-2020",
   "face": "-Y side of the white body band (0.26 mm tall), not the window",
   "service": "adom-chip-laser https://laserchip-6dn1tl7vjz5u.adom.cloud /etch (frac 0.7128 after refit, font 0.218 mm)",
   "tools": "etch_part.py --face side --side-dir=-y from aiflow-work/merged/tools/laser-etch, local copy with a --pick low option added to side_region.py so the band under a full-length window is chosen (provenance/tools/laser-etch)",
   "mark": "flat, dark (linear 0.012), 1.56 x 0.165 mm, lifted 0.005 mm",
   "virtual": "identification aid, not the manufacturer marking"
  },
  "files": {
   "WS2812B-2020.step": {
    "sha256": "679fdf6dd22000884d044ac5a049bbb7e088ad893b7632301e43704757a48c5a",
    "role": "default, coloured + etched"
   },
   "WS2812B-2020-uncoloured.step": {
    "sha256": "bed6fd877ef81859c60d1e095f4ef4b3751d52b5442cddeb179f486c4390b86a",
    "role": "optional: same geometry, neutral colours, no dies, no etch"
   }
  },
  "checks": "step2glb features: bbox x -1.1..1.1, y -1.0..1.0 (-1.005 with the etch), z 0..0.84, Z up; step2glb thumbnails top/iso/bottom/front and three.js renders of the GLBs looked at: pin 1 corner, B G R order, stripe on the pin 1/2 side, etch on the body band."
 },
 "footprint": {
  "land_pattern": "datasheet p.2 PCB Solder Pad: 0.70 x 0.70 mm pads (roundrect 0.25), centres (+/-0.915, +/-0.55) mm; identical to KiCad LED_WS2812B-2020_PLCC4_2.0x2.0mm",
  "pin1": "top-left, DO",
  "silkscreen": "pin-1 corner bracket (top line + short vertical beside pad 1) plus a bottom line (Colby's bracket-at-pin-1 convention)",
  "courtyard": "+/-1.55 x +/-1.25 mm",
  "fab": "body 2.20 x 2.00 mm"
 },
 "symbol": {
  "pins": {
   "3 DI": "input, left",
   "1 DO": "output, left",
   "2 GND": "power_in, left bottom",
   "4 VDD": "power_in, right"
  },
  "layout": "unchanged apart from names/numbers/types"
 },
 "regenerated_with": {
  "WS2812B-2020.lbr": "adom-lbr generate --sym --fp (lint passed)",
  "WS2812B-2020.adom-lbr.json": "adom-lbr import-kicad",
  "WS2812B-2020-symview.html + README.html symbol iframe": "adom-symbol embed",
  "WS2812B-2020-fpview.html + README.html footprint iframe": "adom-footprint embed (the older 'preview' template failed with a missing-file error, so the standalone viewers are now the embed build)",
  "WS2812B-2020.svg": "adom-symbol render",
  "WS2812B-2020.glb / .insertion.glb": "provenance/tools/rebuild_ws_scene.py: same scene contract (node names, insert animation, LED_light), new pads/silk/solder from the new footprint, LED from step2glb convert of the new STEP, laser etch as child node Adom.LaserEtch.MPN",
  "ws2812b-2020-hero.glb": "provenance/tools/ws_hero_glb.py (component-reference-overlay.py + finalize.py from the LED pass): teal dashed pad outlines 50 %, silkscreen 30 %, pad labels 50 % (DO, GND, DI, VDD), Adom.LaserEtch.MPN",
  "screenshots/hero.png": "shared hero template (hero-proposals/_tools/hero_template.html, LED copy), shoot_hero.js, ADOM BASIC PART pill, coloured part only; cfg in provenance/hero-card.cfg.json"
 },
 "removed": {
  "WS2812B-2020 5050 STEP": "the wrong 5.0 x 5.0 mm model is no longer on the page (WS2812B-2020.step replaced)"
 }
}