The hardest part of turning a hobby printer into an assembly machine is getting placement accuracy out of hardware that was never meant for it, and tweezy1337 handled that from two directions. Cutting a hole in the bed allowed the upward-facing camera to be mounted underneath, which cut down the number of Z moves the machine needed. Later, a spring-loaded pickup tool removed the need for very precise Z moves altogether, and top and bottom vision were both working, with live camera feeds used to calibrate how components sit.
The base machine is a Creality Ender 2, and the frame is black aluminum extrusions. The moving head carries a downward-facing camera, a vacuum nozzle and LED illumination, with a small control board sitting on top of it. Printed mounts hold the cameras and the pickup tool, which started life as a cheap SMD suction pen. The cameras are ELP-USB100W03M USB models feeding a PC, where OpenPnP sends all the gcode to the machine. Suction comes from a budget vacuum pump, and a 12V solenoid on a fan port routes it between the pickup tool and ambient air, switched with m106 and m107 commands. Lighting runs through m42 on pin 29, and the stock firmware stays untouched, with configuration done through gcode driver tricks in OpenPnP.
The board workflow around it is stencil plus solder paste, then automated placement, then a toaster reflow oven, and the machine served many PCB builds in this form.
One trade-off: at the time there was no part rotation yet, and a hollow shaft NEMA8 plus a Juki nozzle were on the way, though how that upgrade turned out is not stated. The machine was eventually stripped for parts after the need for big batches of boards went away.
Project by tweezy1337. Watch it on their YouTube channel: