component
Camille LED Nameplate
Public Made by Adomby adom
USB-C-powered desk nameplate spelling CAMILLE in 64 green 0402 LEDs (3x5 bitmap font, no MCU).
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
{
"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"
}