Bill of Materials — interactive checklist¶
This checklist covers the earlier bench, perception and hand-wired fixture stages. Check items off as you order — state persists in your browser (nothing leaves your device). The full "Notes / traps" for each part live in the chapter BoM tables: Doc 3, Doc 4, Doc 5, Doc 8.
Building the latest LIGHT v0.2 PCB prototype? Use the PCB build shopping checklist for two fixtures. Its saved progress is separate: the PCB replaces many modules and wiring parts below. The factory-fitted component BOM remains in Doc 9.
Prices verified July 2026
All prices in the series were verified in July 2026 — re-check live prices when ordering. This is the docs' own pre-purchase-recheck rule (see Doc 7's risk register).
Two distinctions that cost more wrong orders than anything else on this page
Solid and stranded wire are not interchangeable, and the listing photos look identical. Breadboard contacts and soldered bus rails want solid core — stranded frays, buckles and reads intermittent in a breadboard, and won't hold its shape as a rail. Anything that flexes or gets handled wants stranded — the 24 V runs, the service loops across the pan/tilt joints. "Marine" and "silicone" wire is always stranded, and deliberately floppy.
On fuses the letters carry the meaning, not the millimetres. In 5×20 mm, GMC is slow-blow and GMA is fast; in 6.3×32 mm, MDL is slow and AGC is fast. Same glass, same size, opposite behaviour. Automotive blade fuses (ATM/ATO/APM) are fast-acting and assortments rarely stock a 3 A at all. Every fuse in this series is a time-delay part, because motor inrush plus the bulk cap will nuisance-blow a fast one on power-up.
Doc 3 · Gimbal (~$350–405)
| Part | Qty | Est. | Where | Why | |
|---|---|---|---|---|---|
| 2 (+1 spare rec.) | $215 / $322.50 for 3 | Dings Motion USA, $107.50 ea | The smart pan/tilt actuators — order the -C (CAN) variant, and ask for mating cables for the 6-pin JST ZH port — ZH, not the larger XH (Doc 3a); third unit = permanent bench spare | ||
| 1 | $9–15 | Amazon, Adafruit, DigiKey | Same chip as the fixture — everything learned transfers | ||
| 2 (1+spare) | $8 | Amazon | The CAN line driver — turns chip signals into the differential wire pair | ||
| few | $1 | any resistor kit | CAN bus termination | ||
| 1 | $45–60 | Amazon (any 30 V/5 A unit) | Powers the whole bench — run the motor rail at 24 V (12 V is the motor's undervoltage-latch line); the adjustable current limit is smoke insurance | ||
| 1 | $20 | Amazon | Non-negotiable — polarity check before every first power-up | ||
| 1 kit | $10 | Amazon | Signals only — power never routes through it | ||
| 1 | — | you own one | Charge-only cables are a classic trap | ||
| 1 box | $10 | Amazon | Confirm sizes against the motor drawing | ||
| 1 | $20–25 | Amazon | Lets your laptop eavesdrop on the bus — turns "nothing happens" into evidence. Doc 3a shows where it taps in; Doc 3c proves your CAN side with it before any motor exists | ||
| ~250 g | $20 | Amazon / local makerspace | Four printed parts plus three test pieces, ~165 g of frame — a makerspace or print service works. See Doc 3b | ||
| — | 0 | $0 | — | Frame v8 deleted the idle side of the tilt axis: no trunnion, no bearing carrier, no bearing. The head cantilevers off the tilt motor's own output, which carries 0.505 N and 0.0146 N·m — about 3.5% of the motor's peak torque. Kept here, struck through, so anyone who bought one against an earlier revision knows why it is not in the build | |
| 1 | $10 | hardware store | Clamps the bare motor before its first move | ||
| 1 | — | — | Real LED head comes from Doc 4 | ||
| 1 | $10–20 | Amazon | The frame chapter (Doc 3b) runs on measurements |
Doc 4 · LED bench (~$170–240)
| Part | Qty | Est. | Where | Why | |
|---|---|---|---|---|---|
| 2 | $30 / ~$10 clones | Adafruit, Amazon | The PWM expanders — bridge the A0 jumper on board #2 (address 0x41) | ||
| 4 (+1 spare) | $10 | Adafruit #970, Amazon | Lets 3.3 V dimmer signals switch the 24 V tape channels | ||
| 1 | $25–40 | Amazon | For the tape-pad wires and the address jumper | ||
| 1 | $17.50 | sparkfun.com | The spotlight's 3-channel constant-current driver, PWM-dimmable | ||
| 1 | $486 | BuyRite, LBC Lighting | 7 short zones ≈ 3.3 ft used — one spool covers everything with spare. Budget bench substitute: BTF 24 V CCT FCOB (~$30, 2-channel, no 1800 K) | ||
| 1 | $15–25 (optics $3 ea) | LEDSupply | The spotlight payload — optics snap-swap in seconds, which is the beam-width experiment. Check the dies are electrically isolated (own pads each): stock 3-ups are usually series-wired and cannot be driven per channel | ||
| 1 | $8 | Amazon | The star cooks itself bare in under a minute — never run unmounted | ||
| 1 pack | $15 | Amazon, Home Depot | 24 V power distribution — high current stays off the breadboard | ||
| 1 | $7 | Amazon | Cheap insurance on the 24 V rail. Time-delay, not fast-acting. 3.15 A is the standard IEC value that is "3 A" — there is no 3.00 A in this family. Buy a few T4AL250V at the same time: that's the fuse you step to if you ever run 2× tape | ||
| 1 | $7.95 | pololu.com/product/2858 | Fixed 5 V, nothing to mis-adjust | ||
| — | $20 | Amazon | Three jobs, and the wire is different for each. The 10 kΩ are the PicoBuck IN pulldowns — ~1 mW each, so ¼ W is 200× margin and the smaller body crowds the board less. Signal wire must be solid to hold in breadboard contacts. The 24 V feeds are stranded because they get handled. Correction to an earlier version of this row: it said a ULN output feeding a tape zone "carries amps, not milliamps." It does not. This build's seven zones share ~3.3 ft of 4.6 W/ft tape, so a zone is about 90 mA — 24 AWG is fine for them. The number to respect is the ULN2803's own 500 mA per-channel ceiling |
Doc 5 · Per-room perception (~$120–320)
| Part | Qty | Est. | Where | Why | |
|---|---|---|---|---|---|
| 1/room | $80 | amcrest.com | The room's eyes — wide fixed lens, standard RTSP, one PoE cable, internet-isolated | ||
| opt. | $185 | empiretech01.com | Night matters — IR cameras output grayscale, degrading RGB-trained models | ||
| 1/home | $150–400 | Amazon | Cameras on their own VLAN with no internet route — privacy by construction | ||
| 1 | ~$10 | print it (calib.io generator) | Registers each camera to the room scan — rigid and flat matters | ||
| 1 | free–$ | App Store | One-time room scan, ~1–3 cm accuracy — use Space Mode (LiDAR) | ||
| 0–1 | $359 / $579 | store.orbbec.com, shop.luxonis.com | Buy only after Tier-0 tracking measurably misses, not before | ||
| — | Already owned | — | — | — | RTX 6000 Blackwell box (runs all perception), the Doc 3/4 bench rig, Home Assistant + MQTT |
Doc 8 · Fixture build (~$105–120)
| Part | Qty | Est. | Where | Why | |
|---|---|---|---|---|---|
| 1 pack of 4 | $15 | Etsy | All three get used — B1 power, B2 drivers, B3 logic — plus a spare. No power rails, which is why the trunk rule exists | ||
| 1 | ~$25 | Bravo Electro, DigiKey, Mouser | The fixture's PSU — ST (screw-terminal) on purpose: the plain IRM outspans a 72 mm round, so this one mounts to the body. Don't tin stranded ends before clamping them — solder cold-flows and the joint loosens | ||
| 1 (+1 spare) | $8–12 | Amazon, hardware store | The entire AC feed (~0.6–0.9 A at 120 V) — treat both leads as live; no wall dimmer on that circuit | ||
| 1 kit | $7 | Amazon | Socket every module — C6, both PCAs, CAN board, buck. Dead module = 10-second swap | ||
| 1 kit | $12 | Amazon | 7 tape zones (4-pin) + the spot (3 ± pairs = six conductors, returns never shared). Solder the tails — never crimp | ||
| 3 pairs | $8 | Amazon | Motor power (one pair per motor) + the bench-feed break — JST-XH is a 3 A part; motor peaks hit 5–8 A | ||
| ~10 | $6 | Amazon | One at every module's supply pins — long soldered rails need what the breadboard never did | ||
| 1 | $3 | Amazon, DigiKey | Rides the motors' millisecond slew peaks. Start at 1000 µF — if the IRM hiccups at power-on, the cap is too big | ||
| 1 | $9 | Amazon | Stack spacing + a vent path; nylon can't short against pad-side joints | ||
| 1 roll | $8 | Amazon | Becomes the two trunks — +24 V and ground. Solid, and bare. Stranded won't hold a rail; insulated just means stripping it at every junction. You lay it along a row of pads and solder each one — don't try to thread it, since 16 AWG is 1.3 mm against a ~1 mm hole. Keep the two rails on non-adjacent rows | ||
| 1 each | ~$15 | Amazon | Never in an earlier BoM — the bench got by, but 100+ soldered joints won't | ||
| — | ~$17 | Amazon | Stranded is right here: it's all soldered, and the service loops across the pan/tilt joints want the floppiest wire available. Silicone insulation is worth paying for at 100+ joints — it won't shrink back and bare a neighbour when the iron brushes it. Get two gauges, but not for the reason an earlier version of this row gave: a tape zone is ~90 mA, so 24 AWG covers signals and zone outputs. The 20 AWG is for the 24 V feeds that run the length of the fixture and carry every zone at once | ||
| — | Already owned | — | — | — | Everything else installs from Docs 3/4 — motors, C6, CAN board, PCAs, ULNs + sockets, PicoBuck, star + optics + heatsink, tape spool, Pololu buck, fuse holder + T3.15AL250V fuses (step to T4AL250V if you 2× the tape), screws, wire + 10 kΩ ¼ W stock. Retired: breadboards and WAGOs |