#electronics #smt #pick-and-place #openpnp #lumenpnp #bom #sourcing #3d-printing # Overview Staged self-sourcing plan for a LumenPnP **v4** built from parts rather than bought assembled. Every line is cross-referenced against the canonical [bom.csv](https://github.com/opulo-inc/lumenpnp/blob/main/bom.csv) on GitHub and against the live Opulo store catalog as of **2026-09-21**. Sourcing rule for this note, per my own call: **Opulo sub-kit is the primary link**, third-party alternates from the BOM are listed alongside. Ordering is **long-lead first, then OHAI assembly order** — the 3- and 4-week items go out the door on day 0 so they're in transit while the print farm runs. Three things came out of the cross-reference that change the plan: 1. **Several sub-kits Opulo still sells are invisible on the storefront.** Frame Kit, Fastener Kit, GT2 Kit, Endstop Set, Ring Light Set, Drag Chain Kit, Datum Board, PSU, Z-Rail Set and Slot Harness Kit do **not** appear in [/collections/all](https://www.opulo.io/collections/all), but all have live product pages and current prices. Direct links below — don't try to browse to them. 2. **The BOM needs 2× Toolhead Kits, not 1.** bom.csv calls for 2× `nozzle-holder`, 2× `NEMA11-hollow-shaft-stepper` and 2× `rotary-pneumatic-adapter`; the Toolhead Kit listing contains 1× of each. This is the easiest $60 mistake to make on this build. 3. **The whole self-build lands ~$240 under the $1,995 assembled machine, like-for-like.** See [[#Cost reality check]]. The reason to do this is staged spend and knowing the machine, not savings. See [[Open Source Pick and Place Machines]] for the research that got me to LumenPnP in the first place. # BOM ↔ Store cross-reference ## Live Opulo products (2026-09-21 prices and lead times) | Opulo product | Price | Lead | Covers these bom.csv lines | | ---------------------------------------------------------------------------------------------- | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [MGN12H Linear Rail Kit](https://www.opulo.io/products/mgn12h-linear-rail-kit) | $249.99 | **4 wk** | `550mm-MGN12H` ×2, `525mm-MGN12H` ×1, `m3_t-nut_bar-525mm` ×3 | | [Slot Harness Kit](https://www.opulo.io/products/slot-harness-kit) | $155.00 | **4 wk** | `blade12-PCB` ×2, `blade13-PCB` ×2, `mobo-blade1-harness`, `blade2-blade3-harness`, `blade-jumper-harness` ×2 | | [LumenPnP Control Box](https://www.opulo.io/products/lumenpnp-control-box) | $249.99 | 3 wk | `mobo-REV05`, `solenoid-valve` ×2, `vacuum-pump` ×2, `reducing-union-tee-4-6-4` ×2, `pump1/pump2-harness`, `soft-pvc-tubing-6x4` red+blue, `usb-b-to-usb-a-cable` | | [Drag Chain Assembly Kit](https://www.opulo.io/products/lumenpnp-drag-chain-assembly-kit) | $159.99 | 2 wk | `drag-chain-link` ×64, `drag-chain-end` ×4, `x-cable-chain-support`, `x-harness`, `head-harness`, `top-camera-cable`, `pu-tube-4x2.5` red+blue 2 m each | | [LumenPnP v4 USB Camera Set](https://www.opulo.io/products/lumenpnp-v4-camera-set) | $140.00 | 2 wk | `top-camera`, `bottom-camera` — ==BOM link is stale, see below== | | [LumenPnP Frame Kit](https://www.opulo.io/products/lumenpnp-frame-kit) | $120.00 | 1 wk | `vslot-extrusion-20mmx20mmx600mm` ×7, `corner-bracket` ×6, `rubber-feet` ×8 | | [NEMA 17 Stepper Motor (4-Pack)](https://www.opulo.io/products/nema-17-stepper-motor-4-pack) | $79.99 | 1 wk | `NEMA17-stepper` ×4 (LDO-42STH40-1704AC) | | [CP40 6-Piece Nozzle Tip Set](https://www.opulo.io/products/cp40-pnp-nozzle) | $75.00 | 2 wk | `n045`, `n08`, `n14`, `n24`, `n40`, `n75` nozzles | | [Staging Plate](https://www.opulo.io/products/staging-plate) | $70.00 ea | 2 wk | `staging-plate` ×2 | | [24V 6A Power Supply](https://www.opulo.io/products/lumenpnp-24v-6a-power-supply) | $69.99 | 1 wk | `24v-power-supply` ×1 | | [LumenPnP v4 Toolhead Kit](https://www.opulo.io/products/lumenpnp-toolhead-kit) | $59.99 ea | 2 wk | `nozzle-holder`, `NEMA11-hollow-shaft-stepper`, `rotary-pneumatic-adapter`, `lubricant-packet` — **buy 2** | | [v4 DIY Fastener Kit](https://www.opulo.io/products/lumenpnp-v4-diy-fastener-kit) | $45.00 | 1 wk | 100% of the `FST` lines — all 27 of them, plus rubber feet, rubber bands, O-rings, PTFE lube | | [GT2 Belt and Pulley Kit](https://www.opulo.io/products/lumenpnp-gt2-belt-and-pulley-kit) | $39.99 | 1 wk | `GT2-idler` ×4, `GT2-pulley` ×4, `z-belt-loop` (260 mm/130T), `gt2-timing-belt` 5 m | | [Z-Axis Linear Rail Set](https://www.opulo.io/products/lumenpnp-z-axis-linear-rail-set) | $39.99 | 1 wk | `linear-rail-100mm` ×2 (MGN9C) | | [Getting Started Kit](https://www.opulo.io/products/getting-started-kit) | $29.00 | 2 wk | Hardware for `board-support` ×8, `board-mount-static` ×4, `board-mount-dynamic` ×4 | | [Frame Cable Harness Set](https://www.opulo.io/products/lumenpnp-frame-cable-harness-set) | $29.99 | 2 wk | `y1-motor-harness`, `y2-motor-harness`, `bottom-light-harness`, `bottom-camera-cable` | | [Ring Light Set](https://www.opulo.io/products/lumenpnp-ring-light-set) | $19.99 | 2 wk | `top-ring-light`, `bottom-ring-light` | | [Endstop Set](https://www.opulo.io/products/lumenpnp-endstop-set) | $19.99 | 2 wk | `xy-limit`, `z-limit` | | [Board Mounting Hardware](https://www.opulo.io/products/board-mounting-hardware) | $10.00 | — | M3×10 hex + M3 wing nuts for the PCB fixtures | | [Datum Board](https://www.opulo.io/products/lumenpnp-datum-board) | $9.99 | 1 wk | `datum-board` ×1 | | [Strip Feeder](https://www.opulo.io/products/lumenpnp-strip-feeder) | $9.99 ea | 1 wk | `8mm-strip-feeder` (+ optional 12/16/24/32/adj) — or just print them | | [Secondary Fiducial Upgrade Kit](https://www.opulo.io/products/secondary-fiducial-upgrade-kit) | $7.50 | 2 wk | Not in bom.csv — see below | ## Problems found in bom.csv - ==`top-camera` / `bottom-camera` point at `/products/openpnp-usb-camera-set`, which is retired.== Current product is [lumenpnp-v4-camera-set](https://www.opulo.io/products/lumenpnp-v4-camera-set), $140. The v4 set matters: the cameras ship with fixed lenses (12 mm / 33° top, 4 mm / 120° bottom) and hard-coded USB device IDs — "LumenPnP Top" and "LumenPnP Bottom" — that OpenPnP's config expects. - ==`M5-tslot-nut` ×60 has an Amazon *image* URL in the Source column, not a product link.== Covered by the Fastener Kit; otherwise source generic 2020 t-slot hammer nuts. - ==`m3x10-thumb-screw` ×2 has no purchasable source== — it's a custom Opulo part. BOM note says generic M3×10 bolts substitute fine. Also in the Fastener Kit. - ==bom.csv appears to predate v4.1 and does not include the secondary fiducial.== v4.1+ machines ship with it; the $7.50 upgrade kit exists for 4.0-and-older. Need to confirm whether the current `datum-board` revision already carries both fiducials before ordering. - `lumenpnp-packaged-cable-harness-set` and `z-limit - replacement` are listed at $0.00 — warranty/replacement placeholders, not orderable. - Quantities in the Fastener Kit are generous against the BOM (100× M3×8 button head vs. BOM's 48; 72× M5×10 socket vs. 54; 44× M5 hex nut vs. 31). It's sized for the machine plus feeder and fixture usage. No shortfall risk. ## What the BOM says you may self-source - `m3_t-nut_bar-525mm` ×3 — custom LDO part. BOM explicitly says self-sourcers can substitute **36× generic M3 t-nuts** instead. - `525mm`/`550mm MGN12H` — generic rails work; the LDO ones are pre-loaded. - `GT2-idler` / `GT2-pulley` — [WINSINN idlers](https://www.amazon.com/WINSINN-Aluminum-Timing-Pulley-Printer/dp/B07BPGYX3G/) and [pulleys](https://www.amazon.com/WINSINN-Aluminum-Synchronous-Timing-Printer/dp/B077GNZK3J/). - `linear-rail-100mm` ×2 — generic MGN9C 100 mm. - `24v-power-supply` — anything that does ≥6 A at 24 VDC. - `corner-bracket` ×6 — [McMaster 5537T498](https://www.mcmaster.com/5537T498/). - `nozzle-holder` — fully documented scratch build (inner/outer body, [Lee Spring LCM050C03M](https://www.leespring.com/compression-springs?search=LCM050C03M), 4 mm ID × 0.6 mm CS nitrile O-rings, [2 mm dowel pins](https://www.mcmaster.com/97049A101/)). ==Not worth it at $59.99/kit unless I want the machining exercise.== - Every `FST` line has a McMaster / Amazon / AliExpress / Misumi part number in bom.csv if I'd rather not buy the kit. # The staged sequence Dollar figures are Opulo list, 2026-09-21, before shipping and tax. ## Order log | Date | Items | Subtotal | Shipping | Total | |---|---|---|---|---| | 2026-09-21 | MGN12H Linear Rail Kit, Z-Axis Linear Rail Set | $289.98 | $13.95 | **$303.93** | | 2026-09-21 | Feeder Connection Kit | $155.00 | $13.95 | **$168.95** | | 2026-09-21 | LumenPnP Control Box | $249.99 | $13.95 | **$263.94** | | | **Spent to date** | **$694.97** | $41.85 | **$736.82** | **Step 1 is complete.** Every long-lead item went out on 2026-09-21. Both 4-week items and the 3-week item are on the clock from the same day, so nothing is stacked end-to-end — earliest hardware-complete is roughly **2026-10-19**. Parts remaining: **~$1,129**, none of it longer than a 2-week lead. From here the schedule is governed by the print farm, not by Opulo. ## Step 1 — Long-lead, order on day 0 Nothing here is blocked by anything else, and everything here blocks the finish. Order the day I commit. | Item | Qty | Cost | Lead | |---|---|---|---| | [MGN12H Linear Rail Kit](https://www.opulo.io/products/mgn12h-linear-rail-kit) — **ordered 2026-09-21** | 1 | $249.99 | 4 wk | | [LumenPnP Control Box](https://www.opulo.io/products/lumenpnp-control-box) — **ordered 2026-09-21** | 1 | $249.99 | 3 wk | | [Feeder Connection Kit](https://www.opulo.io/products/slot-harness-kit) — **ordered 2026-09-21** | 1 | $155.00 | 4 wk | | | | **$654.98** | | **Naming note:** bom.csv and the product URL both say `slot-harness-kit`; the store now displays it as **Feeder Connection Kit**. Same SKU-0007, same $155. **Gate resolved 2026-09-21 — bought it.** Right call on lead time: it's 4 weeks and it's now running concurrently with the rail kit instead of tacking 4 weeks onto the end of the build. Opulo's listing explicitly names DIY scratch-builds as the intended buyer, and it carries two things bom.csv doesn't list: - **1× feeder programmer** for flashing feeder firmware updates. Not in the BOM at all. Would have been an annoying thing to discover missing later. - 1× adapter board for v2.x–v3.2 machines — not needed here, v4 connects directly. Plus the 4× feeder slot blades (the `blade12-PCB` ×2 / `blade13-PCB` ×2 lines), all harnesses, cable clips and mounting hardware. Install guide: [docs.opulo.io/feeders/2-install-harness](https://docs.opulo.io/feeders/2-install-harness/). **Step 1 closed out the same day it opened.** All three long-lead items ordered 2026-09-21, $654.98 in parts. Nothing is sequenced behind anything else — the 4-week and 3-week clocks all started together, which is the entire point of the long-lead-first structure. Note this overrode the strips-first reasoning in [[Open Source Pick and Place Machines#Decisions]], which said to skip powered feeders for now. Buying the Feeder Connection Kit doesn't commit me to feeders — it's the $155 rail-side infrastructure, and buying it now avoids a standalone 4-week wait later. The actual feeder decision (a $495 5-pack) is still open and still deferred. ## Step 2 — Print farm (no purchase) Runs in parallel with Step 1's lead times. ~38 part types, ~82 pieces. Full list in [[#3D print job list]]. STLs come from the [latest release](https://github.com/opulo-inc/lumenpnp/releases), not the repo tree. Filament needed: **1.75 kg PLA** (mostly black) + small amounts of **white**, **red**, **blue** PLA, and **~50 g white PETG**. Likely all on hand. ## Step 3 — Frame and fasteners First thing to physically assemble. Order at the ~2-week mark of Step 1's wait. | Item | Qty | Cost | Lead | Self-source alternate | |---|---|---|---|---| | [LumenPnP Frame Kit](https://www.opulo.io/products/lumenpnp-frame-kit) | 1 | $120.00 | 1 wk | 7× 2020 V-slot @ 600 mm, [McMaster 5537T498](https://www.mcmaster.com/5537T498/) brackets, [Amazon rubber feet](https://www.amazon.com/gp/product/B088HGQSZT/) | | [v4 DIY Fastener Kit](https://www.opulo.io/products/lumenpnp-v4-diy-fastener-kit) | 1 | $45.00 | 1 wk | 27 individual McMaster/Amazon/AliExpress lines in bom.csv | | | | **$165.00** | | | The Fastener Kit is the single best-value line in this whole plan — $45 against 27 separate McMaster minimums. ## Step 4 — Motion Gantries, belts, motors. Goes on once the frame is squared. | Item | Qty | Cost | Lead | |---|---|---|---| | [NEMA 17 Stepper Motor (4-Pack)](https://www.opulo.io/products/nema-17-stepper-motor-4-pack) | 1 | $79.99 | 1 wk | | [GT2 Belt and Pulley Kit](https://www.opulo.io/products/lumenpnp-gt2-belt-and-pulley-kit) | 1 | $39.99 | 1 wk | | [Z-Axis Linear Rail Set](https://www.opulo.io/products/lumenpnp-z-axis-linear-rail-set) — **ordered 2026-09-21** | 1 | $39.99 | 1 wk | | | | **$159.97** | | The Z-rail set was pulled forward into the Step 1 order to share shipping — sensible, it's $39.99 and 1-week lead, so it costs nothing to have it sitting on the shelf. **$119.98 of Step 4 still outstanding** (NEMA 17 4-pack + GT2 kit). Step 1's MGN12H kit installs here too. `squaring-bracket` (printed, Step 2) is used to align the front and rear feeder rails to the staging plates — print it before this step, not after. ## Step 5 — Toolhead | Item | Qty | Cost | Lead | |---|---|---|---| | [LumenPnP v4 Toolhead Kit](https://www.opulo.io/products/lumenpnp-toolhead-kit) | **2** | $119.98 | 2 wk | | [CP40 6-Piece Nozzle Tip Set](https://www.opulo.io/products/cp40-pnp-nozzle) | 1 | $75.00 | 2 wk | | | | **$194.98** | | **Two toolhead kits.** Each contains 1× nozzle holder, 1× NEMA 11 hollow shaft, 1× rotary pneumatic fitting, 1× PTFE grease packet, 2× spare O-rings. The BOM needs two of each for the dual-nozzle head. The kits ship unassembled because they're built *around* the printed `z-gantry` — so Step 2 must be done first. Lube the nozzle-holder O-rings with the included silicone PTFE grease before inserting into each nozzle tip. ==Never white lithium grease — it destroys the O-rings.== ## Step 6 — Electronics, vision, cabling | Item | Qty | Cost | Lead | |---|---|---|---| | [LumenPnP v4 USB Camera Set](https://www.opulo.io/products/lumenpnp-v4-camera-set) | 1 | $140.00 | 2 wk | | [Drag Chain Assembly Kit](https://www.opulo.io/products/lumenpnp-drag-chain-assembly-kit) | 1 | $159.99 | 2 wk | | [24V 6A Power Supply](https://www.opulo.io/products/lumenpnp-24v-6a-power-supply) | 1 | $69.99 | 1 wk | | [Frame Cable Harness Set](https://www.opulo.io/products/lumenpnp-frame-cable-harness-set) | 1 | $29.99 | 2 wk | | [Ring Light Set](https://www.opulo.io/products/lumenpnp-ring-light-set) | 1 | $19.99 | 2 wk | | [Endstop Set](https://www.opulo.io/products/lumenpnp-endstop-set) | 1 | $19.99 | 2 wk | | [Datum Board](https://www.opulo.io/products/lumenpnp-datum-board) | 1 | $9.99 | 1 wk | | | | **$449.94** | | Print `top-light-mount` and `bottom-light-mount` in **white** — they are the diffusers for the ring lights, not just brackets. Print `nozzle-camera-mask` ×2 in a **dark** color; they block overhead light from washing out bottom vision. ## Step 7 — Work holding and feeding | Item | Qty | Cost | Lead | |---|---|---|---| | [Staging Plate](https://www.opulo.io/products/staging-plate) | 2 | $140.00 | 2 wk | | [Getting Started Kit](https://www.opulo.io/products/getting-started-kit) | 1 | $29.00 | 2 wk | | [Board Mounting Hardware](https://www.opulo.io/products/board-mounting-hardware) | 1 | $10.00 | — | | Strip feeders — **print them** | ~10 | $0 | — | | | | **$179.00** | | bom.csv calls for **2× staging plates**; the machine accepts up to three. Remove the camera knock-out from the center of whichever plate becomes the primary. The `aux-staging-plate-foot` (printed) stabilizes the second plate — M3×14 bolt + M3 square nut. Strip feeders are $9.99 each from Opulo or free from the STL pack. Buying ten of them is $100 to avoid a print job I'm already set up for. Print the 8 mm ones; buy only if a width I need prints badly. Each attaches with 2× M3×10 ULP button head + 2× M3 wing nuts. ## Step 8 — Commissioning (~$20 consumables) No major purchase. Zip ties (~200 mm, ×2), silicone rubber bands ([Uline S-15809](https://www.uline.com/Product/Detail/S-15809/Desk-Supplies/33-Latex-Free-Rubber-Bands-3-1-2-x-1-8) — ×4, the silicone ones don't dry out), 2 m USB-B→USB-A cable if not using the one in the Control Box. Then: flash firmware, install OpenPnP on the Dell OptiPlex Micro (Ubuntu 22.04 — ==not macOS, see [[Open Source Pick and Place Machines#Software Reality]]==), work the [v4.1 preflight/calibration track](https://docs.opulo.io/openpnp/v4-1/preflight/install-config/install-openpnp/). # 3D print job list ~38 part types, ~82 pieces. Download STLs from the [latest GitHub release](https://github.com/opulo-inc/lumenpnp/releases). ## Color-critical — do not substitute | Part | Qty | Material | Why | |---|---|---|---| | `top-light-mount` | 1 | **White** PLA | Acts as the ring-light diffuser | | `bottom-light-mount` | 1 | **White** PLA | Acts as the ring-light diffuser | | `z-gantry-backplate-left` | 1 | **Red** PLA | Left/right identification | | `z-gantry-backplate-right` | 1 | **Blue** PLA | Left/right identification | | `nozzle-camera-mask` | 2 | **Dark** PLA | Blocks overhead light from bottom vision | | `board-mount-dynamic` | 4 | **White PETG** | Needs the flex; PETG specifically | | `board-support` | 8 | White PLA | Spec'd PLA | | `board-mount-static` | 4 | White PLA | Spec'd PLA | ## Frame and legs | Part | Qty | |---|---| | `front-left-leg` | 1 | | `front-right-leg` | 1 | | `back-leg` | 2 | | `front-leg-extension` | 2 | | `back-leg-extension` | 2 | ## Gantries and motion | Part | Qty | |---|---| | `x-gantry-front` | 1 | | `x-gantry-back` | 1 | | `x-idler-mount` | 1 | | `x-motor-mount` | 1 | | `y-gantry-left` | 1 | | `y-gantry-right` | 1 | | `z-gantry` | 2 | | `belt-clamp` | 6 | | `belt-tension-arm` | 3 | | `y-limit-striker` | 1 | ## Toolhead and vision | Part | Qty | |---|---| | `nozzle-rack` | 1 | | `bottom-camera-mount` | 1 | | `bottom-camera-cover` | 1 | | `static-camera-foot` | 1 | | `datum-board-mount` | 1 | ## Electronics and cable management | Part | Qty | |---|---| | `control-box` | 1 | | `control-box-lid` | 1 | | `extrusion-cable-clip` | 16 | | `peek-cable-clamp` | 3 | | `cable-splay` | 1 | | `blade12` | 2 | | `blade13` | 2 | `blade12`/`blade13` are the printed housings for the feeder slot blade PCBs. **Confirmed needed** — the Feeder Connection Kit was ordered 2026-09-21. Each mounts with M3×8 self-tapping flat heads (20 in bom.csv, covered by the Fastener Kit). ## Fixtures and feeders | Part | Qty | |---|---| | `squaring-bracket` | 1 | | `aux-staging-plate-foot` | 1 | | `8mm-strip-feeder` | 1+ | | `12/16/24/32mm-strip-feeder`, `adj-strip-feeder` | optional | # Cost reality check | | Self-source | Assembled | |---|---|---| | Steps 1–8, as actually being built (2 staging plates) | **~$1,824** | — | | Same, minus the 2nd staging plate (like-for-like vs. the machine) | **~$1,754** | **$1,995** | | Shipping, at $13.95/order | ~$100 over ~7 orders | included | | **Realistic like-for-like** | **~$1,854** | **$1,995** | | Print time | ~82 parts | 0 | | Assembly time | est. 2–3 days | 0 | Once shipping is counted the margin is closer to **$140, ~7%** — thinner than the $240 headline. Which confirms what I already concluded in [[Open Source Pick and Place Machines#Decisions]]: scratch-building from Opulo sub-kits doesn't save meaningful money. What it *does* buy, and why I'm doing it anyway: - **Staged spend.** No single $1,995 hit. Largest step was $655, and Steps 3–8 are $165–450 each. - **A bail-out point after every step.** Committed so far: $736.82. - **Knowing the machine.** I'll have had every subassembly apart before it ever has to place a 0402. - **Parallel lead times instead of one 3-week machine queue** — and in practice the print farm, not Opulo, is now the schedule. The counter-argument I should hold onto: ==~$140 net is a thin margin for 2–3 days of assembly plus ~82 printed parts, and Opulo explicitly does not support DIY builds.== If the goal were purely a working machine soonest, buying it assembled is the right call. # TODO - ==Confirm whether the current `datum-board` revision includes the secondary fiducial, or whether I need the $7.50 upgrade kit on top. bom.csv predates v4.1.== - ~~Decide the Slot Harness Kit gate.~~ Resolved 2026-09-21 — bought it as the **Feeder Connection Kit**, $155. - ==Next up: Step 2 print farm.== Pull STLs from the [latest release](https://github.com/opulo-inc/lumenpnp/releases) and start with `z-gantry` ×2 — Step 5's toolhead kits are built around it and can't be assembled without it. Then the white diffusers and the red/blue backplates, since those need filament changes. - ~~Verify the Frame Kit's extrusion count.~~ Confirmed 2026-09-21 against the product record: 7× 600 mm 2020 V-slot, 6× corner brackets, 8× adhesive rubber feet, 1.91 kg, $120, 1 wk. Matches bom.csv exactly — that's the whole extrusion content of the build. - ==Price generic MGN12H 525/550 mm + 36× M3 t-nuts against the $249.99 LDO kit. This is the biggest single line and the longest lead — a generic substitute could compress the whole schedule.== - Shipping appears to be a flat **$13.95 per order** regardless of contents — three separate orders on 2026-09-21 all billed the same. Not optimizing for it; noted so the running total stays honest. - ==Read the [DIY v4 guide](https://docs.opulo.io/guides/diy-v4/) — marked WIP as of last check — and the [OHAI](https://ohai.opulo.io/lumen/) work instructions before Step 3.== - Join the LumenPnP Discord `#lumenpnp-builds` channel. Opulo points DIY builders there explicitly since they don't support DIY assembly directly. # Build Log ## 2026-09-21 - Pulled [bom.csv](https://github.com/opulo-inc/lumenpnp/blob/main/bom.csv) (main, 522 commits) and the full Opulo Shopify catalog (43 products). - Cross-referenced every BOM line against live store products. Found ~10 sub-kits that are sold but **not listed** in `/collections/all` — they're only reachable by direct URL. Captured all of them above. - Caught three BOM defects: stale `openpnp-usb-camera-set` link, an image URL in place of a product link for `M5-tslot-nut`, and no purchasable source for `m3x10-thumb-screw`. - Caught the **2× Toolhead Kit** requirement — BOM quantity 2, kit contents 1. - Built the eight-step sequence: long-lead (MGN12H 4 wk / Control Box 3 wk / Slot Harness 4 wk) on day 0, print farm in parallel, then OHAI assembly order. - Costed it: ~$1,824 all-in, ~$1,754 like-for-like vs. $1,995 assembled. Confirms the earlier conclusion that self-sourcing isn't a money decision. - Flagged the Slot Harness Kit as a live decision gate — $155 and the only 4-week item the strips-first plan lets me skip. **Step 1 ordered — all of it, same day. $694.97 in parts, $736.82 with shipping.** | Order | Items | Total | |---|---|---| | 1 | MGN12H Linear Rail Kit + Z-Axis Linear Rail Set | $303.93 | | 2 | Feeder Connection Kit | $168.95 | | 3 | LumenPnP Control Box | $263.94 | - Pulled the Z-rail set forward from Step 4 — 1-week lead, $39.99, nothing lost by holding it. - **Slot Harness gate resolved: bought.** Store now lists it as **Feeder Connection Kit** (same handle `slot-harness-kit`, same SKU-0007, same $155). Opulo's listing names DIY scratch-builds as the intended buyer. Ships with a **feeder programmer** that bom.csv never mentions, plus an adapter board for v2.x–v3.2 machines that I don't need. - This does *not* reverse the strips-first decision — the $495 feeder 5-pack is still deferred. It buys the rail-side infrastructure now so it isn't a standalone 4-week wait later. - Shipping billed **$13.95 flat on each of the three orders** ($41.85 total). Not worth consolidating against; noted for the running total only. - **Critical path is now the print farm, not Opulo.** Everything still to buy is ≤2-week lead. Earliest hardware-complete ≈ **2026-10-19** on the 4-week items. - Next: Step 2 print farm. Pull STLs from the latest release and start with the parts Step 5 blocks on — the toolhead kits build *around* the printed `z-gantry`. # Resources - [bom.csv on GitHub](https://github.com/opulo-inc/lumenpnp/blob/main/bom.csv) · [repo](https://github.com/opulo-inc/lumenpnp) · [releases — STLs, schematics, binaries](https://github.com/opulo-inc/lumenpnp/releases) · [wiki](https://github.com/opulo-inc/lumenpnp/wiki) - [Opulo store — all products](https://www.opulo.io/collections/all) · [spare parts](https://www.opulo.io/collections/parts) · [accessories](https://www.opulo.io/collections/accessories) - [OHAI assembly instructions](https://ohai.opulo.io/lumen/) · [DIY v4 guide (WIP)](https://docs.opulo.io/guides/diy-v4/) · [Opulo docs](https://docs.opulo.io/) - [LumenPnP Discord](https://discord.gg/fWxdedF2Vn) — `#lumenpnp-builds` - [Layout config tool](https://config.opulo.io/) · [feeder debug tool](https://debug.opulo.io/) - Related: [[Open Source Pick and Place Machines]] # References - bom.csv retrieved from `main` on **2026-09-21**. Opulo pricing, lead times and product availability pulled from the live Shopify catalog the same day. - Lead times are Opulo's own published estimates (product tags `1week` / `2weeks` / `3weeks` / `4weeks`), not observed. ==Community reports through early 2026 had actual machine lead times running past Opulo's stated figures — assume the same risk applies to sub-kits.== - Cost totals exclude shipping, tax, and filament.