AAScan: Open source, minimalist, fully automated 3D scanner based on Arduino and Android!

Community rules
1. Be kind and courteous
We're all in this together to create a welcoming environment. Let's treat everyone with respect. Healthy debates are natural, but kindness is required.

2. No hate speech or bullying
Make sure everyone feels safe. Bullying of any kind isn't allowed, and degrading comments about things such as race, religion, culture, sexual orientation, gender or identity will not be tolerated.

3. Only 3D printers advertised.
Only 3D printers or directly related product may be advertised. If you post anything else it will be moderated and you will be banned.

4. Replying to posts
If you reply to a post, make sure your reply is connected with the main topic, do NOT take a topic off track.

5. All post are moderated
Every post on here is moderated - always. Don't bother joining unless you have works to share or problems to inquiry about 3D printers. That is all that will be allowed on this group.
Post Reply
User avatar
Posts: 816
Joined: 2020-06-24 1:56



Download Link:
Hidden Content
This board requires you to be registered and logged-in to view hidden content.


AAScan: Open source, minimalist, fully automated 3D scanner based on Arduino and Android!
YouTube video:

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:

Second, it’s fully automated using the latest technology of Arduino and Android (And most importantly, Meshroom, another open source project that do all the photogrammetry!). For comparison, this design by Bribro12’s:
is minimalist, but is hand-driven.

AAScan is designed with minimalism and functionalism in mind, and I am happy to share with you all!

After software V3 update, the scanner is (potentially) able to work with multiple cameras and you can set the number of photos of your choice too!

Resources gathering
1. All 3D printed parts (I have to admit, some remixes are doing even better than my original design, so check them out before printing!)

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. Run "pip install pyserial" on the computer (for linux) or get the package from https://pypi.org/project/pyserial/

5. Install QPython on Android phone and give it camera permissions
(Source code also available on Github:

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/0 ... d-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. Set the “serverAddressList” in Server.py and “serverAddress" in 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.
(Note: if you have multiple cameras, just put all their IPs in the list in Client.py. It's a list, after all.)

5. (Optional) Set the number of photos to "nPhotos".

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.
If you find my guide hard to read, Dr Peter Falkingham has wrote another guide here:
https://peterfalkingham.com/2020/03/07/ ... oid-phone/
-maybe this one is easier

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.

Update: Software V2
I've uploaded a new version of software. The most important feature is probably allowing users to set different number of photos to take (Plus some other minor improvements). The new code is not fully tested. If it doesn't work, report it to my Github and use the old version. Thank you!

Update: Software V3
There are some minor bugs in previous version and I fixed them. Now the script can support multiple cameras too! This new function is NOT TESTED. If you have multiple phones, you may give it a try. Work or don't work, please do comment here or post issues on my Github. Thank you!

Related works
Below is some notable related works done by others. I didn't try any of these, so I can't vouch for their quality. If you are interested, have a try!

By Kidm - Install "BL IP-Camera - Free" from Google Play (not open source~). Use the following script to take FHD photos directly to PC.
- here is modified program.

By exilaus -

Same but with ESP32 cam

About me
I am more active on Reddit. Check out my page
and my subreddit
if you are interested.

Created by QLRO in https://www.thingiverse.com

Post Reply