3D Model

Symbol & Footprint

Schematic

Schematic

PCB Footprint

Footprint

Camille LED Nameplate

A USB-C-powered desk nameplate that spells CAMILLE in 64 green
0402 LEDs arranged as a 3 × 5 dot-matrix bitmap font. Plug any
USB-C cable in → CAMILLE lights up. No microcontroller, no firmware,
no animation — pure analog charm.

Live 3D viewer

The interactive viewer above auto-plays a guided walkthrough on load.
Add ?autoplay=off to the iframe URL to defer firing it.

How it works

  • Bitmap font. A 3 × 5 pixel grid per letter, defined as a FONT
    const in lib/index.tsx. The renderer walks each letter's pixels
    and emits one <led> + one <resistor> per lit pixel.
  • Letter counts — C=9, A=10, M=12, I=9, L=7, L=7, E=10 ⇒ 64 LEDs.
  • Per-LED current limit. Each LED is driven by its own 300 Ω 0402
    resistor (R = (5 V − 2.1 V) / 10 mA ≈ 290 Ω, rounded to 300 Ω E12).
    Independent fusing — one LED dying doesn't affect any other.
  • USB-C handshake. Two 5.1 kΩ pulldowns on CC1 / CC2 advertise
    the board as a downstream device drawing power, so a USB-C charger
    / laptop will actually deliver 5 V instead of leaving CC floating.
  • Inrush smoother. A 10 µF X5R bulk cap on VBUS soaks the inrush
    spike when 64 LEDs ignite simultaneously.
  • Total draw — ~640 mA at 5 V (3.2 W). Within USB-C 1 A budget
    for any modern source.

Hardware summary

Block Part JLCPCB Notes
LEDs ×64 Green 0402 (any 0402 green) Vf ≈ 2.1 V, ~10 mA each
Series R ×64 0402 300 Ω 1 % C137885 One per LED — independent fusing
USB-C J1 TYPE-C-31-M-12 C165948 South-edge cantilever mount
CC pulldowns ×2 0402 5.1 kΩ 1 % C25905 Required for power-only USB-C handshake
Bulk cap 0805 10 µF X5R C15850 VBUS inrush smoother
MC1–MC4 Adom machine-pin medium (Adom standard) Workcell-fixturing only — no electrical role

Mechanical

  • Board — 100 × 38 mm, 1.6 mm FR4, 2-layer.
  • Edges — rounded (default roundEdges={true} on the molecule).
  • USB-C placement — south edge centred, mouth cantilevered off
    the board for cable clearance.
  • Workcell pins — MC1–MC4 at the four corners (Adom standard
    medium machine-pins). Mechanical-only; no electrical function.
  • Front silkscreen — title bar above the LED letters, USB-C
    arrow callout, MC pin labels.
  • Back silkscreen — full documentation panel: HOW TO POWER IT,
    HOW IT WORKS, BILL OF MATERIALS, HOW IT WAS BUILT, WORKCELL
    FIXTURING, IF A LED GOES DARK (repair notes), and footer credits.
    Bake the board surface at 4096 px to read the dense back-side
    text at zoom (--texture-resolution 4096).

Source layout

Camille-LED-Nameplate/
├── lib/
│   ├── index.tsx            ← FONT + LED matrix + USB-C wiring
│   └── UsbCReceptacle.tsx   ← TYPE-C-31-M-12 wrapper
├── package.json
├── tscircuit.config.json    ← displayName + entrypoint
├── tsconfig.json
├── walkthrough.json         ← auto-generated guided tour
└── plan.md                  ← design brief (this page mirrors it)

Build commands

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

# Install deps (only on a fresh checkout)
bun install

# Build (writes dist/lib/index/{3d.glb,pcb.svg,schematic.svg,...})
bunx tsci build lib/index.tsx --glbs --svgs --3d-png --pcb-png

# Preview interactively, with the 4096-px board texture for legible silkscreen
adom-tsci start . --port 8863 --tsci-port 3063 --texture-resolution 4096

# Publish updated viewer + source bundle to this wiki page
adom-tsci export-wiki . \
  --slug camille-led-nameplate \
  --page-type molecules \
  --label "Live 3D viewer" \
  --texture-resolution 4096

Color options / variants

The LED color and series-resistor value are single-constant changes
in lib/index.tsx:

const R_VALUE = "300"     // bump to ~470 Ω if you want a dimmer (~6 mA) version
const LED_COLOR = "green" // "red" | "yellow" | "blue" | "white" | "pink" | ...

Different name? TEXT = "CAMILLE" is also a single constant — swap
it for any 7-or-fewer-letter name. For different lengths, also bump
BOARD_W proportionally. This template was forked from the Brianna
nameplate by doing exactly that.

Known issues / lessons learned

  • VBUS / GND fragmentation by autorouter — tscircuit's autorouter
    splits VBUS and GND into many tiny per-LED nets, so the Nets HUD
    x-ray glow on a single net is short. An explicit unified rail in
    lib/index.tsx would make the glow span the whole board.
  • 0402 vs 0603 trade-off — Adom's house default is 0402 (InstaPCB
    respin replaces hand-rework); LEDs at 0402 read as crisp pixels at
    3 mm pitch. 0603 is also fine for this board if you'd rather
    hand-prototype.
  • No power LED — deliberately omitted. The seven CAMILLE letters
    themselves are the power indicator: lit means 5 V is connected.

Build provenance

  • Author — John Lauer ([email protected])
  • Toolingadom-tsci + tscircuit 0.1.1317; molecule wrapper
    @tsci/adom-inc.molecule 1.1.15; Adom InstaPCB-friendly 0402
    passives.
  • Walkthrough — auto-generated by adom-tsci walkthrough-gen
    from circuit.json. Re-run after any edit to lib/index.tsx.
  • Date — 2026-05-07. Designed by Adom in Fort Worth, Texas.

Files attached

Source — recreate the molecule

  • plan.md — original design brief + refinements
  • camille-led-nameplate-source.tar.gz — full project (lib/,
    package.json, walkthrough.json, plan.md)

Build outputs

  • 3d.glb — board GLB (4096-px baked board surface)
  • pcb.svg — top-layer SVG
  • schematic.svg — schematic SVG

Files