# Plan — Camille's LED Nameplate

The original ask, captured retroactively from the design conversation
on 2026-05-07. Carried forward to the molecule wiki page so a future
AI picking this up sees the same brief that drove the build.

## Original prompt

> can you use adom-tsci to make an led board that says camille on it
> spelled out in led lights with a usbc connector so camille can put
> this on her desk and show it off to folks. just use 0604 green leds.

## Refinements during the build

- **LED size** — user said "0604" which isn't a standard imperial size;
  clarified to **0402** (Adom standard passive — InstaPCB respin replaces
  the hand-rework argument that traditionally favours 0603). User
  approved 0402.
- **Letter rendering** — first proposed "block-letter style" with LEDs
  forming letter shapes. User confirmed each letter must be **spelled
  out with individual LEDs**. Rendered using a 3 × 5 dot-matrix bitmap
  font, one 0402 LED per lit pixel.
- **Color** — green, per user request. Color list documented on the
  wiki page so a re-render in any other LED color is a single-constant
  change.
- **Workcell-fixturing** — should be a proper Adom **molecule**, not a
  generic board. Four corner machine-contact pins (`MC1`–`MC4`) via
  the `<Molecule type="4pin" size="100x38">` wrapper.
- **Texture resolution** — bake the board surface at 4096 px so the
  silkscreen reads cleanly at zoom (silkscreen is intentionally dense
  — see "Bottom silkscreen" below).
- **Power LED** — explicitly *not* added. The seven CAMILLE letters
  themselves are the power indicator: lit means 5 V is connected,
  dark means it isn't.
- **Provenance line** — Apple-style. Bottom silkscreen reads
  *Designed by Adom in Fort Worth, Texas*.
- **No private references on the silkscreen** — no GitHub URL, no
  per-author package name. Just the wiki URL and the brand mark.
- **Bottom silkscreen as documentation** — board "explains itself when
  flipped over." Bottom side carries HOW TO POWER IT (4-step
  instructions), HOW IT WORKS (the LED matrix explanation), BILL OF
  MATERIALS, HOW IT WAS BUILT, WORKCELL FIXTURING, IF A LED GOES DARK
  (repair notes), and footer credits.

## Hardware decisions

- **64 green 0402 LEDs** — one per lit pixel of a 3 × 5 bitmap font
  rendered for "CAMILLE". The font is a `FONT` const in
  `lib/index.tsx`; the renderer walks each letter's pixels and emits
  one `<led>` + one `<resistor>` per pixel. Per-letter counts:
  C=9, A=10, M=12, I=9, L=7, L=7, E=10.
- **300 Ω 0402 resistor per LED** — sized to drive a green LED at
  ~10 mA from 5 V (Vf ≈ 2.1 V → ~2.9 V across resistor → R = 290 Ω
  → 300 Ω E12 series). All resistors live in the inter-row gap below
  their LED to keep the front face clean. One resistor per LED keeps
  every LED independently fused (one LED dying does not affect
  others).
- **USB-C TYPE-C-31-M-12 receptacle** on the south edge, mouth
  cantilevered off the board so any standard USB-C cable plugs in
  cleanly. JLCPCB part C165948.
- **5.1 kΩ CC pulldowns ×2** — required so a USB-C cable identifies
  the board as a downstream device drawing power.
- **10 µF 0805 bulk decoupling cap** on VBUS — smooths inrush as 64
  LEDs light up together.
- **Total draw** — ~640 mA at 5 V (3.2 W). Within USB-C 1 A budget
  for any modern charger / laptop.

## Out of scope (deliberate)

- No microcontroller, no firmware, no networking. The board is pure
  analog charm; it lights up when you plug it in.
- No PWM dimming, no animation, no individually-addressable LEDs.
- No assembly cost optimisation pass — current BOM is straightforward
  JLC-orderable parts; price isn't tuned for volume.

## Build → publish workflow

```bash
cd adom-tsci-projects/Camille-LED-Nameplate

# Build
bun install
bunx tsci build lib/index.tsx --glbs --svgs --3d-png --pcb-png

# Preview interactively (4096 px texture for readable silkscreen at zoom)
adom-tsci start . --port 8863 --tsci-port 3063 --texture-resolution 4096

# Publish updated viewer + source bundle to the wiki molecule page
adom-tsci export-wiki . \
  --slug camille-led-nameplate \
  --page-type molecules \
  --label "Live 3D viewer"
```

## Future work

- **Vivid x-ray net glow** — current build's autorouter splits VBUS
  and GND into many tiny per-LED nets, so the Nets-HUD x-ray glow on
  any single net is visually short. An explicit unified rail
  declaration in `lib/index.tsx` would make the glow span the whole
  board.
- **Manufactured copy** — JLCPCB fab quote pending. The bundle on the
  wiki includes the `circuit.json` and SVGs; a real fab run needs
  `tsci export --format gerbers` and the BOM/CPL splice (see the
  adom-tsci skill's "Exporting fab files" section).
- **Different name** — the FONT bitmap is parameterised; swapping
  `TEXT = "CAMILLE"` for any other 7-or-fewer-letter name (or
  different length with proportional board resize) is a single-line
  change. This template was forked from the Brianna nameplate by
  doing exactly that.
