Compact 3D Object Scanner with RPLidar
This project is a compact 3D scanning system I built for small objects using an RPLidar, an Arduino-controlled stepper motor, and a custom 3D-printed turntable. As the object rotates in precise increments, the lidar collects full 360-degree distance data that can be used to reconstruct its geometry.
The scanner is housed in a self-contained enclosure designed to keep the process consistent and largely hands-free. Once running, the system rotates the object automatically and records spatial data without needing constant manual adjustment. I built it as a way to explore low-cost 3D scanning through a combination of custom fabrication, electronics, and sensing.
The project reflects a broader interest of mine in building technical systems from the ground up and using accessible components to make useful tools. In this case, the goal was to create a compact platform for scanning small parts, models, and prototypes in a repeatable way.
Connection Table
| Component | Pin | Connects To |
|---|---|---|
| CNC Stepper Driver | PUL+ (STEP+) | Arduino Digital Pin 3 |
| PUL− (STEP−) | GND | |
| DIR+ | Arduino Digital Pin 4 | |
| DIR− | GND | |
| ENA+ (optional) | GND or Digital Pin 5 | |
| ENA− (optional) | GND | |
| Stepper Motor (NEMA 23) | A+ / A− | Connect to one coil (check motor datasheet) |
| B+ / B− | Connect to the other coil | |
| Power Supply | V+ | 24–48V DC Positive |
| V− | Power Supply GND | |
| RPLidar A1/A2 | VCC | 5V (Arduino or USB) |
| GND | GND | |
| TX | Arduino RX (via level shifter) | |
| RX | Arduino TX | |
| MOTOR CTRL (optional) | Arduino PWM (e.g. Pin 6) or leave unconnected |