{
  "schema_version": 1,
  "type": "component",
  "slug": "camille-led-nameplate",
  "title": "Camille LED Nameplate",
  "brief": "USB-C-powered desk nameplate spelling CAMILLE in 64 green 0402 LEDs (3x5 bitmap font, no MCU).",
  "version": "1.0.0",
  "tags": [],
  "license": "MIT",
  "sample_prompts": [
    {
      "prompt": "Open the Camille LED nameplate viewer"
    },
    {
      "prompt": "Show me the BOM for the Camille nameplate"
    },
    {
      "prompt": "Fork the Camille nameplate to spell a different name"
    },
    {
      "prompt": "How is the Camille nameplate powered?"
    },
    {
      "prompt": "What's the LED layout for the Camille nameplate"
    },
    {
      "prompt": "Walk me through the Camille nameplate design"
    }
  ],
  "component": {
    "mpn": "Camille LED Nameplate",
    "manufacturer": "",
    "package": "",
    "pin_count": null,
    "category": "molecule",
    "subcategory": "",
    "body_size": null,
    "parts": {},
    "distributor_links": {}
  },
  "readme": "# Camille LED Nameplate\n\nA USB-C-powered desk nameplate that spells **CAMILLE** in 64 green\n0402 LEDs arranged as a 3 × 5 dot-matrix bitmap font. Plug any\nUSB-C cable in → CAMILLE lights up. No microcontroller, no firmware,\nno animation — pure analog charm.\n\n## Live 3D viewer\n\nThe interactive viewer above auto-plays a guided walkthrough on load.\nAdd `?autoplay=off` to the iframe URL to defer firing it.\n\n## How it works\n\n- **Bitmap font.** A 3 × 5 pixel grid per letter, defined as a `FONT`\n  const in `lib/index.tsx`. The renderer walks each letter's pixels\n  and emits one `<led>` + one `<resistor>` per lit pixel.\n- **Letter counts** — C=9, A=10, M=12, I=9, L=7, L=7, E=10 ⇒ 64 LEDs.\n- **Per-LED current limit.** Each LED is driven by its own 300 Ω 0402\n  resistor (R = (5 V − 2.1 V) / 10 mA ≈ 290 Ω, rounded to 300 Ω E12).\n  Independent fusing — one LED dying doesn't affect any other.\n- **USB-C handshake.** Two 5.1 kΩ pulldowns on CC1 / CC2 advertise\n  the board as a downstream device drawing power, so a USB-C charger\n  / laptop will actually deliver 5 V instead of leaving CC floating.\n- **Inrush smoother.** A 10 µF X5R bulk cap on VBUS soaks the inrush\n  spike when 64 LEDs ignite simultaneously.\n- **Total draw** — ~640 mA at 5 V (3.2 W). Within USB-C 1 A budget\n  for any modern source.\n\n## Hardware summary\n\n| Block | Part | JLCPCB | Notes |\n|---|---|---|---|\n| LEDs ×64 | Green 0402 | (any 0402 green) | Vf ≈ 2.1 V, ~10 mA each |\n| Series R ×64 | 0402 300 Ω 1 % | C137885 | One per LED — independent fusing |\n| USB-C J1 | TYPE-C-31-M-12 | C165948 | South-edge cantilever mount |\n| CC pulldowns ×2 | 0402 5.1 kΩ 1 % | C25905 | Required for power-only USB-C handshake |\n| Bulk cap | 0805 10 µF X5R | C15850 | VBUS inrush smoother |\n| MC1–MC4 | Adom machine-pin medium | (Adom standard) | Workcell-fixturing only — no electrical role |\n\n## Mechanical\n\n- **Board** — 100 × 38 mm, 1.6 mm FR4, 2-layer.\n- **Edges** — rounded (default `roundEdges={true}` on the molecule).\n- **USB-C placement** — south edge centred, mouth cantilevered off\n  the board for cable clearance.\n- **Workcell pins** — MC1–MC4 at the four corners (Adom standard\n  medium machine-pins). Mechanical-only; no electrical function.\n- **Front silkscreen** — title bar above the LED letters, USB-C\n  arrow callout, MC pin labels.\n- **Back silkscreen** — full documentation panel: HOW TO POWER IT,\n  HOW IT WORKS, BILL OF MATERIALS, HOW IT WAS BUILT, WORKCELL\n  FIXTURING, IF A LED GOES DARK (repair notes), and footer credits.\n  Bake the board surface at **4096 px** to read the dense back-side\n  text at zoom (`--texture-resolution 4096`).\n\n## Source layout\n\n```\nCamille-LED-Nameplate/\n├── lib/\n│   ├── index.tsx            ← FONT + LED matrix + USB-C wiring\n│   └── UsbCReceptacle.tsx   ← TYPE-C-31-M-12 wrapper\n├── package.json\n├── tscircuit.config.json    ← displayName + entrypoint\n├── tsconfig.json\n├── walkthrough.json         ← auto-generated guided tour\n└── plan.md                  ← design brief (this page mirrors it)\n```\n\n## Build commands\n\n```bash\ncd adom-tsci-projects/Camille-LED-Nameplate\n\n# Install deps (only on a fresh checkout)\nbun install\n\n# Build (writes dist/lib/index/{3d.glb,pcb.svg,schematic.svg,...})\nbunx tsci build lib/index.tsx --glbs --svgs --3d-png --pcb-png\n\n# Preview interactively, with the 4096-px board texture for legible silkscreen\nadom-tsci start . --port 8863 --tsci-port 3063 --texture-resolution 4096\n\n# Publish updated viewer + source bundle to this wiki page\nadom-tsci export-wiki . \\\n  --slug camille-led-nameplate \\\n  --page-type molecules \\\n  --label \"Live 3D viewer\" \\\n  --texture-resolution 4096\n```\n\n## Color options / variants\n\nThe LED color and series-resistor value are single-constant changes\nin `lib/index.tsx`:\n\n```tsx\nconst R_VALUE = \"300\"     // bump to ~470 Ω if you want a dimmer (~6 mA) version\nconst LED_COLOR = \"green\" // \"red\" | \"yellow\" | \"blue\" | \"white\" | \"pink\" | ...\n```\n\nDifferent name? `TEXT = \"CAMILLE\"` is also a single constant — swap\nit for any 7-or-fewer-letter name. For different lengths, also bump\n`BOARD_W` proportionally. This template was forked from the Brianna\nnameplate by doing exactly that.\n\n## Known issues / lessons learned\n\n- **VBUS / GND fragmentation by autorouter** — tscircuit's autorouter\n  splits VBUS and GND into many tiny per-LED nets, so the Nets HUD\n  x-ray glow on a single net is short. An explicit unified rail in\n  `lib/index.tsx` would make the glow span the whole board.\n- **0402 vs 0603 trade-off** — Adom's house default is 0402 (InstaPCB\n  respin replaces hand-rework); LEDs at 0402 read as crisp pixels at\n  3 mm pitch. 0603 is also fine for this board if you'd rather\n  hand-prototype.\n- **No power LED** — deliberately omitted. The seven CAMILLE letters\n  themselves are the power indicator: lit means 5 V is connected.\n\n## Build provenance\n\n- **Author** — John Lauer (`[email protected]`)\n- **Tooling** — `adom-tsci` + `tscircuit` 0.1.1317; molecule wrapper\n  `@tsci/adom-inc.molecule` 1.1.15; Adom InstaPCB-friendly 0402\n  passives.\n- **Walkthrough** — auto-generated by `adom-tsci walkthrough-gen`\n  from `circuit.json`. Re-run after any edit to `lib/index.tsx`.\n- **Date** — 2026-05-07. Designed by Adom in Fort Worth, Texas.\n\n## Files attached\n\n**Source — recreate the molecule**\n\n- `plan.md` — original design brief + refinements\n- `camille-led-nameplate-source.tar.gz` — full project (lib/,\n  package.json, walkthrough.json, plan.md)\n\n**Build outputs**\n\n- `3d.glb` — board GLB (4096-px baked board surface)\n- `pcb.svg` — top-layer SVG\n- `schematic.svg` — schematic SVG\n",
  "author": {
    "name": "Kyle Bergstedt",
    "email": "[email protected]"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "discovery_triggers": [],
  "discovery_pitch": null,
  "metadata": {},
  "created_at": "2026-05-28T05:30:58.772Z",
  "updated_at": "2026-05-28T05:30:58.772Z",
  "org": "adom"
}