component
Brianna's LED Nameplate
UnreviewedUSB-C-powered desk decoration: spells BRIANNA in ~70 green 0603 LEDs on a 100x38mm FR4 board. No microcontroller — LEDs wire directly to VBUS through individual 300 ohm current-limiting resistors. Bui
{
"schema_version": 1,
"type": "component",
"slug": "brianna-led-nameplate",
"title": "Brianna's LED Nameplate",
"brief": "USB-C-powered desk decoration: spells BRIANNA in ~70 green 0603 LEDs on a 100x38mm FR4 board. No microcontroller — LEDs wire directly to VBUS through individual 300 ohm current-limiting resistors. Bui",
"version": "1.2.2",
"tags": [],
"license": "MIT",
"sample_prompts": [
{
"label": "Open viewer",
"prompt": "Open the live 3D viewer"
},
{
"label": "Inspect chip",
"prompt": "Click any chip to see refdes + footprint"
},
{
"label": "Walkthrough",
"prompt": "Run the Walkthrough Demo"
}
],
"component": {
"mpn": "Brianna's LED Nameplate",
"manufacturer": "",
"package": "",
"pin_count": null,
"category": "molecule",
"subcategory": "",
"body_size": null,
"parts": {},
"distributor_links": {}
},
"readme": "# Brianna's LED Nameplate\n\nA USB-C-powered desk decoration that spells out **BRIANNA** in green\nLEDs. Plug a standard USB-C cable into the south edge and the seven\nletters light up — no microcontroller, no firmware, no setup. ~700 mA\ntotal on a 5 V rail, well within USB-C limits. Designed as an Adom\n**molecule** so it fixtures into the standard workcell via four corner\nmachine-contact pins.\n\n> **For AI handoff:** this page is the canonical writeup. If you're an\n> agent picking up this project, everything you need to continue work\n> — circuit decisions, BOM, build commands, file layout, known\n> issues — is on this page. Source lives on the user's container at\n> `/home/adom/project/adom-tsci-projects/Brianna-LED-Nameplate/`.\n\n## Live 3D viewer\n\nThe interactive viewer at the top of this page (or the iframe section\nbelow the brief, depending on template) is the full **adom-tsci**\n3D viewer with the project's actual GLB, circuit.json, and\nwalkthrough loaded. It auto-plays the Walkthrough Demo on load —\ncomponent flyovers, USB-C / CC pulldown / status callouts, and the\nNets HUD x-ray view (substrate goes transparent, selected net glows\nthrough the FR4). Use the toolbar to orbit, zoom, switch to PCB or\nSchematic views, or open the Components / Nets HUDs manually. Pass\n`?autoplay=off` to suppress the walkthrough.\n\n\n\n## How it works\n\nEach letter is rendered as a 3 × 5 LED bitmap (about 70 LEDs total),\nlaid out on a 3 mm grid. The font is a simple 3-wide bitmap embedded\nin `lib/index.tsx` as a `FONT` const — the renderer walks each\nletter's pixels and emits one `<led>` + one `<resistor>` per lit\npixel. Every LED has its own 300 Ω current-limiting resistor in\nseries, sized to drive a green LED at ~10 mA from the 5 V USB rail.\nThe resistors live in the inter-row gap below each LED to keep the\nfront face of the board clean and readable.\n\nThe seven letters themselves *are* the power indicator — when they're\nglowing, the board has 5 V; when they're dark, it doesn't. There is\nno separate status LED.\n\n\n\n## Hardware summary\n\n| Block | Part | JLCPCB | Notes |\n|---|---|---|---|\n| LEDs | green 0603 (~70 ea.) | — | one per lit pixel of the BRIANNA bitmap; Vf ≈ 2.1 V |\n| Resistors | 300 Ω 0402 (~70 ea.) | — | one per LED, sets ~10 mA current |\n| USB-C receptacle | TYPE-C-31-M-12 | C165948 | south edge, mouth cantilevered off the board |\n| CC pulldowns | 5.1 kΩ 0402 ×2 | — | makes the cable identify the board as a downstream device |\n| Bulk decoupling | 10 µF 0805 ×1 | — | smooths inrush as 70 LEDs light up together |\n| Workcell pins | 4 × machine contact at corners | — | Adom standard 4-pin molecule fixturing |\n\n## Mechanical\n\n- **Board:** 100 × 38 mm, FR4, 2-layer\n- **USB-C:** south edge, mouth points down (cable plugs in from below\n the board so the LEDs face the user)\n- **Workcell-ready:** four corner machine-contact pins so the board\n fixtures cleanly on the Adom assembly cell\n- **Top silkscreen:** \"BRIANNA NAMEPLATE\" caption above the LED\n letters, \"5V IN ←\" arrow next to the USB-C receptacle, MC1–MC4\n corner labels\n- **Bottom silkscreen** (extensive — board is meant to explain itself\n when flipped over): \"HOW TO POWER IT\" 4-step list, \"HOW IT WORKS\"\n description, \"BILL OF MATERIALS\" listing every component family,\n \"HOW IT WAS BUILT\" credit to tscircuit + adom-tsci, \"WORKCELL\n FIXTURING\" pin info, \"IF A LED GOES DARK\" repair notes, safety\n warnings, footer with the wiki URL and Apple-style provenance line\n *Designed by Adom in Fort Worth, Texas*.\n\n## Source layout\n\n```\nadom-tsci-projects/Brianna-LED-Nameplate/\n lib/\n index.tsx ← board source — FONT bitmap, layout, traces\n UsbCReceptacle.tsx ← TYPE-C-31-M-12 wrapper with rotation-aware cadModel\n package.json ← @tsci/<author>.Brianna-LED-Nameplate, deps\n tscircuit.config.json ← entrypoint config\n tsconfig.json ← TS config, jsx=react-jsx\n walkthrough.json ← Walkthrough Demo steps (manual, do_not_edit_by_hand)\n dist/lib/index/ ← build output (gitignored)\n circuit.json ← canonical circuit data\n 3d.glb ← GLB with 1024-px texture (default tsci build)\n pcb.svg, pcb.png ← layout renders\n schematic.svg ← schematic\n .npmrc ← @tsci registry pointer\n```\n\n## Build commands\n\n```bash\n# From the project directory:\ncd adom-tsci-projects/Brianna-LED-Nameplate\n\n# 1. Install deps (only needed once, or after package.json changes)\nbun install\n\n# 2. Build — produces dist/lib/index/{circuit.json, 3d.glb, pcb.svg, schematic.svg}\nbunx tsci build lib/index.tsx --glbs --svgs --3d-png --pcb-png\n\n# 3. Preview interactively (Hydrogen webview):\nadom-tsci start . --port 8861 --tsci-port 3061 --texture-resolution 4096\n\n# 4. Publish updated viewer to this wiki page:\nadom-tsci export-wiki . \\\n --slug brianna-led-nameplate \\\n --page-type molecules \\\n --label \"Live 3D viewer\"\n\n# Optional flags:\n# --rebuild force `bunx tsci build` first (slow on dense boards)\n# --texture-resolution N rebake board surface at N×N (4096 typical)\n# --no-upload produce the .tar.gz only, skip the wiki upload\n```\n\n## Color options\n\nCurrently rendered in **green**. Other colors that work with the same\ncircuit (just swap the LED part and adjust the resistor for the new Vf):\n\n| Color | LED Vf | Suggested R @ 10 mA |\n|---|---|---|\n| Red | ~2.0 V | 300 Ω |\n| Yellow | ~2.1 V | 300 Ω |\n| Green (current) | ~2.1 V | 300 Ω |\n| Pink (e.g. XL-1608PIC-04) | ~3.0 V | 200 Ω |\n| Blue | ~3.2 V | 180 Ω |\n| White | ~3.0 V | 200 Ω |\n\nTo change color: edit `LED_COLOR` and `R_VALUE` constants at the top\nof `lib/index.tsx`, rebuild, re-export.\n\n## How to power it (when Brianna receives it in the mail)\n\n1. Grab any USB-C cable — phone charger, laptop, USB-C wall wart.\n2. Plug one end into the south edge of the board.\n3. Plug the other end into a 5 V USB-C source.\n4. **BRIANNA** lights up green.\n\nSame instructions are silkscreened on the bottom of the board, in\ncase the package gets separated from the docs.\n\n## Known issues / lessons learned\n\n- **Each net is a 2-port LED↔resistor pair.** The board declares\n `<net name=\"VBUS\"/>` and `<net name=\"GND\"/>` in JSX, but the\n autorouter splits each LED's connection into its own pcb_trace so\n the Nets HUD lists 75 tiny nets instead of one mega-rail. The\n Nets-HUD auto-glow x-ray still works (substrate goes transparent,\n picks the largest net), but the highlighted segment is short. For\n a more dramatic glow effect, an explicit unified rail would help —\n unfilled feature request.\n- **Courtyard overlaps:** the autorouter complains about LED+R\n courtyards overlapping at the 3 mm pixel pitch. This is cosmetic;\n the build still produces valid Gerbers. If it becomes a fab issue,\n bump pitch to 3.5 mm and shift R to (LED_x ± 1.5 mm).\n- **Via-spacing DRC warnings:** a few via-pairs come out at <0.3 mm\n net-to-net spacing. Within most fab DRC; verify before a real\n fab run.\n\n## Build provenance\n\n- `@tsci/<author>.Brianna-LED-Nameplate` — built with\n [adom-tsci](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-tsci),\n Adom's tscircuit board viewer.\n- Walkthrough authored manually in `walkthrough.json` (the\n auto-generator overwrites it; the file's `_meta.do_not_edit_by_hand`\n flag is intentionally false to preserve the hand-edited steps).\n- 3D viewer bundle exported to this page via `adom-tsci export-wiki`\n (CLI v1.3.90+).\n\n## Files attached to this page\n\n**Source — recreate the molecule:**\n\n- [plan.md](/static/molecules/brianna-led-nameplate/plan.md) — the original design brief, refinements, and out-of-scope notes\n- [brianna-led-nameplate-source.tar.gz](/static/molecules/brianna-led-nameplate/brianna-led-nameplate-source.tar.gz) — full tscircuit project source: `lib/`, `package.json`, `tscircuit.config.json`, `tsconfig.json`, `walkthrough.json`, `.npmrc`, `plan.md`. Untar and `bun install && bunx tsci build` to recreate the GLB, PCB, and schematic from the same source the viewer above is showing.\n\n**Build outputs:**\n\n- [3d.glb](/static/molecules/brianna-led-nameplate/3d.glb) — full 3D model with 4096-px baked board surface\n- [pcb.svg](/static/molecules/brianna-led-nameplate/pcb.svg) — flat PCB layout (vector)\n- [pcb.png](/static/molecules/brianna-led-nameplate/pcb.png) — flat PCB layout (raster)\n- [schematic.svg](/static/molecules/brianna-led-nameplate/schematic.svg) — circuit diagram\n- [brianna-demo.mp4](/static/molecules/brianna-led-nameplate/brianna-demo.mp4) — 30-second narrated demo (early version, recorded before the wiki-embed flow shipped)\n\n*Designed by Adom in Fort Worth, Texas.*\n",
"author": {
"id": "695820315b5f1e4db2fcf602",
"name": "Kyle Bergstedt",
"email": "[email protected]"
},
"visibility": {
"public": true
},
"hero": null,
"discovery_triggers": [],
"discovery_pitch": null,
"metadata": {},
"created_at": "2026-05-28T05:31:06.707Z",
"updated_at": "2026-05-28T05:31:06.707Z"
}