The AutoLoader is a high-precision, custom pick-and-place machine designed to automate the loading and unloading of both SMD and THT devices between various carriers.
Built upon the open-source Opulo LumenPnP V3.2.2, this machine was developed during my year-long placement as a Robotics & Automation Intern at Phlux Technology.
This repository is intended as a reference for developers looking to modify or extend the LumenPnP for specialised applications.
To meet the unique demands of Phlux’s production workflow, the AutoLoader required substantial hardware modifications from the base LumenPnP:
- Replaced stock legs with AlanaCat's Wide Body legs, modified for increased vertical clearance (to accommodate tall device carriers).
- Extended the X-axis with longer extrusions and linear rails to maximize both X and Y travel in the new wide-body frame.
- Developed a micro-servo mechanical gripper, inspired by the Annin Robotics AR4, for handling TO-46 (THT) devices not suited to vacuum-based picking.
- Designed and 3D-printed mounts for device carriers and waffle packs, enabling secure and modular attachment to the staging plates.

- Redesigned the bottom camera mount, relocating the camera and lighting above the staging plate to resolve focus issues from increased machine height.

- Replaced the original drag chain system with separate X and Y drag chains (inspired by LumenPnP V4) for better cable management and reliability.
- Added a dedicated power switch for easier power cycling.

Located in autoloader_controller/autoloader_controller/src/, the custom control API includes:
- Advanced Motion Control (w/ Runout & Backlash Compensation)
- Absolute & Relative Position Tracking
- Device Offset & Orientation Detection
- Modular Actuator Control (e.g., my custom gripper attachment)
Custom ROS2 packages and nodes were developed to handle high-level functionality:
- System State Management
- Homing (Both Mechanical & Visual) & Idle Routines
- Picking & Placing Routines
- Offset & Orientation Correction (Devices + Fiducials / Markers)
- Carrier Skew Correction
- Landmark (Carriers, Fiducials, Devices) Coordinate Tracking
- Running the GUI
User-friendly GUI built with PySide6 that allows for both manual control and loading/unloading run management.

William Nathanael Santoso
Robotics & Automation Intern, Phlux Technology
BEng Mechatronic & Robotic Engineering, University of Sheffield
Email: [email protected] GitHub: @willnatsan LinkedIn: William Santoso
The AutoLoader project wouldn't have been possible without the continued support from:



