master
AravK Merge characterization into the full-page README iframe (timeline viewer, seamless self-sizing); refresh hero render 2442da3 3mo ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566
{
  "_comment": "Effective config for IN-S42ATR-viewer.html — the editable source of truth for the Timeline captions, the hover tooltips, the chapter marks, and the swappable tape/nozzle models. Edit with ./viewer-cli, NOT by hand. Tooltip `rows` are the DATASHEET rows (the only editable rows); tooltips with \"measured\": true also append rows computed live from the model geometry, which are never edited. So every stated spec stays datasheet-cited and every measurement stays honest.",
  "assets": {
    "tape": null,
    "nozzle": null
  },
  "captions": [
    {
      "id": "part",
      "t0": 0.5,
      "t1": 5.6,
      "eyebrow": "Part",
      "head": "IN-S42ATR — Inolux 0402 red",
      "src": "Inolux IN-S42AT V1.1 · p.8 label + p.1 features",
      "rows": [
        [
          "package",
          "0402 · 1.0 × 0.5 × 0.45 mm"
        ],
        [
          "emitter",
          "AlInGaP · clear lens"
        ],
        [
          "λD",
          "631 nm"
        ]
      ],
      "note": ""
    },
    {
      "id": "forward-drive",
      "t0": 6.7,
      "t1": 8.9,
      "eyebrow": "Forward drive",
      "head": "IF 20 mA",
      "src": "Inolux IN-S42AT V1.1 · p.3 electro-optical table",
      "rows": [
        [
          "VF",
          "2.1 V typ · 2.6 V max"
        ],
        [
          "IV",
          "90 mcd"
        ],
        [
          "λD / λP",
          "631 / 645 nm"
        ]
      ],
      "note": ""
    },
    {
      "id": "viewing-angle",
      "t0": 9.2,
      "t1": 17.5,
      "eyebrow": "LED FOV",
      "head": "2θ½ = 130°",
      "src": "Inolux IN-S42AT V1.1 · p.3 electro-optical table",
      "rows": [
        [
          "2θ½ (full)",
          "130°"
        ],
        [
          "half-angle",
          "±65°"
        ],
        [
          "λD",
          "631 nm"
        ]
      ],
      "note": "Full-width half-power cone: on-axis intensity falls to 50 % at ±65°."
    },
    {
      "id": "assembly",
      "t0": 18.3,
      "t1": 21.7,
      "eyebrow": "Assembly",
      "head": "Lifted 1 mm to the joint",
      "src": "measured from the model geometry",
      "rows": [
        [
          "reveals",
          "pads · cathode silk · solder"
        ],
        [
          "pads",
          "2 × (model)",
          true
        ],
        [
          "lift",
          "model view",
          true
        ]
      ],
      "note": ""
    },
    {
      "id": "reflow",
      "t0": 22,
      "t1": 31.5,
      "eyebrow": "Reflow",
      "head": "Solder joints",
      "src": "Inolux IN-S42AT V1.1 · p.11 reflow profile",
      "rows": [
        [
          "tin-glue melt",
          "178–192 °C"
        ],
        [
          "joint Ø",
          "260 µm (model)",
          true
        ],
        [
          "proud of pad",
          "78 µm (model)",
          true
        ]
      ],
      "note": "One deposit per pad reflows and globs up; the body settles onto the joints."
    },
    {
      "id": "tape-reel",
      "t0": 32.6,
      "t1": 43,
      "eyebrow": "Tape & reel",
      "head": "8 mm carrier · 4 mm pitch",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "rows": [
        [
          "tape W",
          "8.00 mm"
        ],
        [
          "pitch P1",
          "4.00 mm"
        ],
        [
          "pocket",
          "0.57 × 1.12 × 0.55 mm"
        ],
        [
          "reel",
          "Ø178 · 5000 pcs"
        ]
      ],
      "note": ""
    }
  ],
  "chapters": [
    {
      "t": 0,
      "label": "The part"
    },
    {
      "t": 6.5,
      "label": "Powered on"
    },
    {
      "t": 9,
      "label": "LED FOV"
    },
    {
      "t": 18.2,
      "label": "Lift off"
    },
    {
      "t": 21.9,
      "label": "Solder"
    },
    {
      "t": 32.5,
      "label": "Tape & reel"
    },
    {
      "t": 46.1,
      "label": "Rest"
    }
  ],
  "tooltips": {
    "fov-cone": {
      "title": "fov_cone",
      "match": "^fov_cone",
      "sub": "emission cone",
      "src": "Inolux IN-S42AT V1.1 · p.3 electro-optical table",
      "srcComputed": false,
      "rows": [
        [
          "viewing angle 2θ½",
          "130°"
        ],
        [
          "half-angle",
          "±65°"
        ],
        [
          "λD / λP",
          "631 / 645 nm"
        ]
      ],
      "measured": true,
      "enabled": true
    },
    "led-lit": {
      "title": "LED_lit",
      "match": "^LED_lit",
      "sub": "emitter glow layer",
      "src": "Inolux IN-S42AT V1.1 · p.3 electro-optical table",
      "srcComputed": false,
      "rows": [
        [
          "λD (dominant)",
          "631 nm — red"
        ],
        [
          "IV",
          "90 mcd @ IF 20 mA"
        ],
        [
          "VF",
          "2.1 V typ · 2.6 V max"
        ],
        [
          "2θ½",
          "130°"
        ]
      ],
      "measured": true,
      "enabled": true
    },
    "in-s42atr": {
      "title": "IN-S42ATR",
      "match": "^IN-S42ATR",
      "sub": "Inolux 0402 red LED",
      "src": "Inolux IN-S42AT V1.1 · p.3 electro-optical table + Inolux IN-S42AT V1.1 · p.8 label + p.1 features",
      "srcComputed": false,
      "rows": [
        [
          "package",
          "0402 · 1.0 × 0.5 × 0.45 mm"
        ],
        [
          "λD / λP",
          "631 / 645 nm"
        ],
        [
          "VF @ 20 mA",
          "2.1 V typ · 2.6 V max"
        ],
        [
          "IV",
          "90 mcd"
        ],
        [
          "2θ½",
          "130°"
        ]
      ],
      "measured": true,
      "enabled": true
    },
    "fr4-board": {
      "title": "fr4_board",
      "match": "^fr4_board",
      "sub": "FR-4 substrate",
      "src": "measured from the model geometry (1.6 mm = standard FR-4 stack)",
      "srcComputed": false,
      "rows": [],
      "measured": true,
      "enabled": true
    },
    "pad-top": {
      "title": "pad_top",
      "match": "^pad_top",
      "sub": "copper pads",
      "src": "measured from the model geometry (built from the IN-S42ATR footprint)",
      "srcComputed": false,
      "rows": [],
      "measured": true,
      "enabled": true
    },
    "solder-top": {
      "title": "solder_top",
      "match": "^solder_top",
      "sub": "solder fillets",
      "src": "measured from the model geometry",
      "srcComputed": false,
      "rows": [],
      "measured": true,
      "enabled": true
    },
    "silk": {
      "title": "silk",
      "match": "^silk",
      "sub": "silkscreen cathode marker",
      "src": "measured from the model geometry",
      "srcComputed": false,
      "rows": [],
      "measured": true,
      "enabled": true
    },
    "embossed-pocket": {
      "title": "embossed pocket",
      "match": "^(pw\\d|pf\\d)",
      "sub": "carrier-tape cavity",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "srcComputed": false,
      "rows": [
        [
          "Ao (pocket W)",
          "0.57 mm"
        ],
        [
          "Bo (pocket L)",
          "1.12 mm"
        ],
        [
          "Ko (pocket depth)",
          "0.55 mm"
        ],
        [
          "P1 (pocket pitch)",
          "4.00 mm"
        ],
        [
          "F (pocket→sprocket row)",
          "3.50 mm"
        ],
        [
          "part seating",
          "0.45 mm body in 0.55 deep → top 0.10 mm below tape face"
        ]
      ],
      "measured": false,
      "enabled": true
    },
    "led-in-pocket": {
      "title": "LED in pocket",
      "match": "^tape_led_",
      "sub": "IN-S42ATR, as reeled",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified) + Inolux IN-S42AT V1.1 · p.3 electro-optical table",
      "srcComputed": false,
      "rows": [
        [
          "part",
          "IN-S42ATR · 0402 · 1.0 × 0.5 × 0.45 mm"
        ],
        [
          "pocket Ao × Bo × Ko",
          "0.57 × 1.12 × 0.55 mm"
        ],
        [
          "orientation",
          "cathode toward the sprocket holes"
        ],
        [
          "P1 (pitch)",
          "4.00 mm"
        ],
        [
          "reel",
          "Ø178 reel · Ø70 hub · Ø13.5 arbor · 9.0 slot · 12.0 wide · 5000 pcs"
        ]
      ],
      "measured": false,
      "enabled": true
    },
    "tape-top": {
      "title": "tape_top",
      "match": "^tape_top",
      "sub": "sprocket band",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "srcComputed": false,
      "rows": [
        [
          "Do (sprocket hole Ø)",
          "1.55 mm"
        ],
        [
          "Po (sprocket pitch)",
          "4.00 mm"
        ],
        [
          "E (hole centre→edge)",
          "1.75 mm"
        ],
        [
          "W (tape width)",
          "8.00 mm"
        ],
        [
          "T (tape thickness)",
          "0.20 mm"
        ],
        [
          "reel",
          "Ø178 reel · Ø70 hub · Ø13.5 arbor · 9.0 slot · 12.0 wide · 5000 pcs"
        ]
      ],
      "measured": false,
      "enabled": true
    },
    "tape-bot": {
      "title": "tape_bot",
      "match": "^tape_bot",
      "sub": "carrier tape body",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "srcComputed": false,
      "rows": [
        [
          "W (tape width)",
          "8.00 mm"
        ],
        [
          "T (tape thickness)",
          "0.20 mm"
        ],
        [
          "F (pocket→sprocket row)",
          "3.50 mm"
        ],
        [
          "P1 (pocket pitch)",
          "4.00 mm"
        ],
        [
          "reel",
          "Ø178 reel · Ø70 hub · Ø13.5 arbor · 9.0 slot · 12.0 wide · 5000 pcs"
        ]
      ],
      "measured": false,
      "enabled": true
    },
    "tape-band": {
      "title": "tape_band",
      "match": "^tape_band",
      "sub": "carrier band between pockets",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "srcComputed": false,
      "rows": [
        [
          "P1 (pocket pitch)",
          "4.00 mm"
        ],
        [
          "P2 (pocket→hole offset)",
          "2.00 mm"
        ],
        [
          "W (tape width)",
          "8.00 mm"
        ],
        [
          "T (tape thickness)",
          "0.20 mm"
        ],
        [
          "Bo (band height)",
          "1.12 mm"
        ]
      ],
      "measured": false,
      "enabled": true
    },
    "cover-tape": {
      "title": "cover_tape",
      "match": "^cover_tape",
      "sub": "heat-seal cover film",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "srcComputed": false,
      "rows": [
        [
          "covers",
          "8.00 mm wide carrier tape"
        ],
        [
          "Ao × Bo × Ko",
          "0.57 × 1.12 × 0.55 mm"
        ],
        [
          "P1 (pocket pitch)",
          "4.00 mm"
        ],
        [
          "packing",
          "5000 pcs per reel"
        ],
        [
          "reel",
          "Ø178 reel · Ø70 hub · Ø13.5 arbor · 9.0 slot · 12.0 wide · 5000 pcs"
        ]
      ],
      "measured": false,
      "enabled": true
    },
    "tape-reel": {
      "title": "tape & reel",
      "match": "^tape_reel$",
      "sub": "Inolux packing",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "srcComputed": false,
      "rows": [
        [
          "tape",
          "W 8.00 · T 0.20 · P1 4.00 · P2 2.00"
        ],
        [
          "sprockets",
          "Do 1.55 · Po 4.00 · E 1.75"
        ],
        [
          "pocket",
          "Ao 0.57 × Bo 1.12 × Ko 0.55 mm"
        ],
        [
          "row offset",
          "F 3.50 mm"
        ],
        [
          "reel",
          "Ø178 reel · Ø70 hub · Ø13.5 arbor · 9.0 slot · 12.0 wide · 5000 pcs"
        ]
      ],
      "measured": false,
      "enabled": true
    },
    "pnp-nozzle": {
      "title": "pnp_nozzle",
      "match": "^(pnp_nozzle|nozzle_)",
      "sub": "placement nozzle (ghost)",
      "src": "",
      "srcComputed": true,
      "rows": [],
      "measured": true,
      "enabled": true
    },
    "pick-place": {
      "title": "pick & place",
      "match": "^pnp_ghosts$",
      "sub": "ghost assembly",
      "src": "Inolux IN-S42AT V1.1 · p.9 packing table (verified)",
      "srcComputed": false,
      "rows": [
        [
          "scene",
          "nozzle + carrier tape + reeled parts"
        ],
        [
          "tape",
          "8 mm, P1 4.00 mm"
        ],
        [
          "reel",
          "Ø178 reel · Ø70 hub · Ø13.5 arbor · 9.0 slot · 12.0 wide · 5000 pcs"
        ]
      ],
      "measured": false,
      "enabled": true
    }
  }
}