Download

Oliver's LED Nameplate

Overview

A USB-C powered desk nameplate PCB that spells "OLIVER" in 57 white 0603 LEDs. Plug in any phone charger and the name lights up.

Design decisions

  • Font: 3x5 pixel dot-matrix, 6 mm pitch between LED centers, 8 mm gap between letters
  • LEDs: 57 white 0603 LEDs (O=12, L=7, I=9, V=9, E=10, R=10)
  • Current limiting: 57 individual 330 ohm 0603 resistors (one per LED), each sitting 3 mm below its LED
  • Power: USB-C receptacle (TYPE-C-31-M-12 / JLCPCB C165948) on the east edge at pcbX = W/2 - 4 (the audited value from the adom-usbc guide)
  • CC pulldowns: 2x 5.1k on CC1/CC2 so any USB-C host actually supplies 5 V default power
  • Bypass: 100 nF 0603 cap on the VBUS rail
  • Board: 178x58 mm absolute, 2-layer, roundEdges=false (required with large corner machine pins)
  • Machine contacts: 4 corner contacts for Adom workcell compatibility

Power budget

  • White LED Vf ~3.2 V; (5 - 3.2) / 330 = ~5.5 mA per LED
  • 57 LEDs x ~5.5 mA = ~310 mA, comfortably inside the USB-C 5 V default budget
  • All LEDs in parallel: VBUS -> resistor -> LED anode, cathode -> GND

Verified results

  • 185 / 187 traces routed; KiCad reports Unrouted 0, 951 track segments, 55 vias, 61 nets, 264 pads
  • USB-C geometry lint: body_fwd = 5.34 mm, mouth exits the board edge at x = 89.2 mm (cable seats correctly)

Gotcha found while building this (worth keeping)

USB-C pin labels must be UNIQUE. The upstream wrapper labelled two different pins GND1 (pin1 + pin15) and two VBUS1 (pin3 + pin13). tscircuit merges same-labelled ports into one pcb_port, so their pads land on top of each other:

pcb_pad_pad_clearance_error: Pads J1>GND1 and J1>GND2 too close (0mm, min 0.1mm)
pcb_autorouting_error: Autorouting was skipped because 4 PCB placement errors were found

The board then ships completely unrouted. Fix: label them GND_A1, GND_B12, GND_A12, GND_B1, VBUS_A4, VBUS_B9, VBUS_A9, VBUS_B4 and tie them together with traces. Also: tracing a USB-C pin by NUMBER (J1.pin3) instead of by label makes tsci build hang indefinitely -- always trace by label.

The wrapper must also forward schX/schY/schRotation to the inner <chip> or the receptacle silently piles at the schematic origin.

Known limitation

MP1..MP4 (the Molecule library's internally-emitted machine pins) still overlap at the schematic origin. They can't be placed from board source -- the rest of the layout is lifted clear of the origin to compensate.