main
Caleb Publish 0.1.1 1379771 1d ago
{
 "schema": "adom/3d-model-provenance@1",
 "mpn": "XL-1606UBC",
 "date": "2026-10-28",
 "classification": "Hand-built (tier 3) in CadQuery from the datasheet's Outline Dimension drawing by Claude (AI) for Caleb Taylor; not XINGLIGHT CAD",
 "source": {
  "tier": 3,
  "what": "Adom-built from XINGLIGHT XL-1606UBC technical data sheet (PDF dated 2025-11-04, no revision printed), Outline Dimension p.7 and Packaging p.8; the p.7 drawing is identical in the SURC/UBC/UGC/UOC/UYC sheets",
  "datasheet_url": "https://www.xinglight.cn/uploadfile/202602/2e6c9999ce1cba5.pdf",
  "datasheet_sha256": "e047f02eabf2ced57323b57370efcf45eb71ff0959b4abaf18b36f06fc33adbd",
  "builder": "provenance/tools/build_xl1606.py (geometry) + assemble_xl1606.py (naming, etch) + glbmat.py (GLB materials); recipe provenance/tools/build.sh",
  "terms": "CC-BY-SA-4.0 (Adom-authored model)"
 },
 "tiers_tried": [
  {
   "tier": 1,
   "result": "not available",
   "why": "XINGLIGHT publishes no STEP for the part: its product page (https://www.xinglight.cn/index.php?c=show&id=1174) links only the PDF and a third-party (bocangku.com) model viewer, which is not the maker's file and states no redistribution terms"
  },
  {
   "tier": 2,
   "result": "not usable",
   "why": "KiCad has no XL-1606 model; the nearest side-view LED, LED_SMD.3dshapes/LED_Kingbright_APA1606_1.6x0.6mm_Horizontal.step, is one fused solid with no terminals (1.6 x 1.2 x 0.6 mm), so the 0.4 mm terminals and the cathode mark of this part cannot be checked or shown; KiCad's LED generator (kicad-footprint-generator LED/SMD chip_convex) puts the lens between the terminals (0.9 mm wide) where XINGLIGHT draws 1.2 mm"
  }
 ],
 "values": {
  "printed": "L 1.7, W 0.6, H 1.1, base (terminal) height 0.48, lens top width 1.2, bottom terminals 0.4 with 0.9 between, top-view terminal strips 0.15 (1.7 - 1.4), general tolerance +/-0.25; pattern pads 0.77 x 0.95 with 0.86 between",
  "measured_off_the_drawing": "509 px/mm on the package views (calibrated on the printed 1.7; 0.48, 1.1 and 1.2 measure true) and 510.5 px/mm on the pattern (0.77, 0.95): lens flank 1.27 wide at the base top, top corner radius 0.08; cathode mark on the bottom face 0.10-0.30 mm from centre toward pin 1; on the pattern the lens extends 0.60 past the pads' top edge, the base's lens-side face is 0.02 inside it and its back face 0.03 past the pad centre line",
  "not_dimensioned": "terminal plating thickness (0.03 mm used); the die (not modelled); the front view's 0.96 bottom dimension implies 0.37 mm terminals where the bottom view prints 0.4 (0.4 used; both within +/-0.25)"
 },
 "orientation": {
  "rule": "pad 1 = cathode (polarity diagram p.7: (1) minus, (2) plus; bottom view: green cathode mark at terminal 1)",
  "which_face_down": "from the tape drawing p.8: in the pocket (top view) the lens points in the feed direction and the cathode is toward the sprocket holes (reel note: the sprocket-hole side is the negative pole; the diode symbol and the A-A section's green mark agree). With the lens pointing up the page the cathode is on the left, so on this footprint (pad 1 at -x) the lens points to footprint -y (STEP +Y)",
  "conflict": "the Recommended Soldering Pattern (p.7) shows the green mark right of centre with the lens up; its outline is the front view pasted onto the pads (the mark it shows is on a face that is vertical when mounted), so it fixes the body's position on the pads but not which face lies down",
  "board_check": "bosch-ovhd-xarm_v1.0 places LED1-LED6 at x = 249.2 mm, rotation -90, 1.7 mm inside the board's right edge (x = 250.93); with this pose their lenses point at that edge"
 },
 "transform": {
  "part_frame": "X length (pin 1 at +X), Y width, Z height (lens up), seated on z = 0",
  "to_step": "rotate 180 deg about (0, 1, 1)/sqrt(2) (X -> -X, Y -> +Z, Z -> +Y), translate (0, -0.03, +0.30)",
  "result": "x -0.85..0.85, y -0.03..1.07 (lens tip at +1.07, pads at y -0.475..0.475), z 0..0.60"
 },
 "etch": {
  "tool": "adom-chip-laser 0.2.0 inlay, surface=top, on the model without its lens; the mark (Adom.LaserEtch, dark on the white base) sits on the up-facing side wall over the white base, x -0.361..0.361, y 0.16..0.26, 5 um above z = 0.6",
  "why_not_etch": "`adom-chip-laser etch surface=side` fails (no side face of the body fits the text: the walls are 0.6 mm tall); `surface=top` on the full model puts the text on the clear lens",
  "virtual": "virtual mark for identification, not a XINGLIGHT marking"
 },
 "files": {
  "xl-1606ubc.step": {
   "sha256": "d1eda0b2803fcdce55cb2ca580f7b4c80c0ee69504ea9536a843ccb6f2ac6f6e",
   "role": "plain"
  },
  "xl-1606ubc-etched.step": {
   "sha256": "c12227ac3f9a1c5761aefa549307915f28761d9b78eb87f9bd399a61fb915c95",
   "role": "eda"
  },
  "xl-1606ubc.glb": {
   "sha256": "8ae8617385b9720987704c11bacf1b14e748081af761c08758d8db20a16a704f"
  },
  "xl-1606ubc-etched.glb": {
   "sha256": "15399d75cd96c0e7f0ce029b4bc279fea914b84fb379ec153e5696b89b4290af"
  },
  "glb_note": "step2glb 0.13.2 (glTF-Transform v4.4.0, KHR_mesh_quantization, Z-up content in metres), then glbmat.py: matte-tin terminals, white substrate, water-clear lens (alpha 0.45, BLEND), green cathode mark, dark etch"
 },
 "footprint": {
  "changed": "F.CrtYd now -1.45..1.45 x -1.32..0.73 (0.25 mm around pads and the lens) and F.Fab the side-mounted body (base + lens outline, pin-1 triangle in the base); descr points to the XINGLIGHT PDF. Pads, paste, mask and silk unchanged",
  "previous": "courtyard -1.45..1.45 x -0.80..0.80 and F.Fab a 1.7 x 1.1 rectangle centred on the pads (the upright body): the lens tip at y -1.07 was outside the courtyard"
 },
 "checks": [
  "step_pose 0.2.0: Z-up, zmin 0, binding identity, centred in x; off-origin FAIL from its contact heuristic only (see models_3d pose_check and provenance/contact-proof.json)",
  "overlay on all four package views and the pattern at drawing scale: docs/proof/xl-1606-3d-vs-drawing.png",
  "tape orientation evidence: docs/proof/xl-1606-tape-orientation.png"
 ],
 "evidence": [
  "docs/proof/xl-1606-3d-vs-drawing.png",
  "docs/proof/xl-1606-tape-orientation.png",
  "provenance/contact-proof.json"
 ],
 "replaced": {
  "why": "the previous model was extracted from a board STEP export, stood the LED upright with the lens up, and carried no licence (page licence NOASSERTION); it is not kept in the bundle, the wiki history holds it",
  "files": {
   "xl-1606ubc.step": "a76e028ce1b688a66b6b2941c9a8bcbfc0c36ad1e0969346451a33e15b88362a",
   "xl-1606ubc-etched.step": "15faba628eda4028d2d109ecf4ff6d4f428bfa1fdde37d4abd247341aa41960f",
   "xl-1606ubc.glb": "50db76469d94e209baa66a173bc7cdcbf5dd253590993b38bbb8c73758bc114b",
   "xl-1606ubc-etched.glb": "670f069c657b9422f3497be1825c02dadcab68aad0360d56b511b00f3b25eee7"
  }
 },
 "tools": {
  "cadquery": "2.8.0",
  "step2glb": "0.13.2",
  "adom-chip-laser": "0.2.0"
 },
 "license": "CC-BY-SA-4.0"
}