Main Content

Introduction
I’ve designed my own 3D scanner!

So, what’s different between this and many other designs on Thingiverse?

First, it is minimalist. It only include minimum features that keep it functional. For comparison, check out this beautiful design by daveyclk: https://www.thingiverse.com/thing:1762299

Second, it’s fully automated using the latest technology of Arduino and Android (And Linux if you count the computer). For comparison, this design by Bribro12’s: https://www.thingiverse.com/thing:3723618 is minimalist, but is hand-driven.

Here is my design. Once you’ve got everything set up, it will run on its own and no supervision is needed.

Resources gathering
1. All 3D printed parts
2. 28BYJ-48 stepper motor, ULN2003 motor driver board
3. Arduino
4. An android phone
5. A computer (Unfortunately, due to limitations of Meshroom, a CUDA enabled Nvidia GPU is required)
6. A lamp (Optional)
7. A local WiFi network that both of your computer and phone can connect to

Software preparations
1. Install Python and some kind of IDE (I recommend VSCodium. Or Notepad++ if you are on Windows) on computer
2. Install Meshroom on computer
3. Install Arduino IDE on computer
4. Install QPython on Android phone and give it camera permissions
(Source code also available on Github: https://github.com/QLRO/AA-Scan/tree/master)

Steps to make this design
1. The parts should be quite straight-forward to assemble. Check out the included assembly diagram if you get stuck.
2. Connect the motor and motor driver to Arduino (This page may help: https://www.seeedstudio.com/blog/2019/03/04/driving-a-28byj-48-stepper-motor-with-a-uln2003-driver-board-and-arduino/). Note that I am using pin 2,3,4,5 for the driver board. If you want to use different pins, you need to modify the Arduino script.
3. Connect Arduino to the computer and upload the Arduino script “Turntable.ino”
4. Change the “serverAddress” variable in both Server.py and Client.py to the IP address of your Android phone (can be checked from “About phone” page on Android). Set the correct COM port number for serial connection if you are on Windows.
5. Transfer the Server.py to the phone and run it with QPython
6. Run Client.py on your computer
7. Your phone should start taking pictures and the turntable is starting to move as programmed! Sit back and relax!
8. Once the program ended. Your photos should be available on qpython/tmp folder. Transfer them to the computer and you can use Meshroom to generate the 3D model.

Update: SOLIDWORKS files
I have released the original SOLIDWORKS files under the same license as other STL files (CC BY-NC-SA). Making modifications difficult, in my opinion, is against the very spirit of open source project. However, you are required to release all modified SOLIWORKS files, if you will distribute the derivative works.”

Link to article