Camille LED Nameplate
UnreviewedUSB-C-powered desk nameplate spelling CAMILLE in 64 green 0402 LEDs (3x5 bitmap font, no MCU).
3D Model
Symbol & Footprint
Schematic
PCB 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 inlib/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 bumpBOARD_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 inlib/index.tsxwould 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]) - Tooling —
adom-tsci+tscircuit0.1.1317; molecule wrapper@tsci/adom-inc.molecule1.1.15; Adom InstaPCB-friendly 0402
passives. - Walkthrough — auto-generated by
adom-tsci walkthrough-gen
fromcircuit.json. Re-run after any edit tolib/index.tsx. - Date — 2026-05-07. Designed by Adom in Fort Worth, Texas.
Files attached
Source — recreate the molecule
plan.md— original design brief + refinementscamille-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 SVGschematic.svg— schematic SVG