Automating photogrammetry – 3D printing, an Arduino, and an Android phone

Quick Overview & Specifications

AttributeDetails
PublicationVinjo Engineering & Technology
CategoryHardware & IoT
AuthorVinay
Article TypeTechnical Tutorial & Case Study
Published2026-10-20
Last Updated2026-10-20
License / AccessOpen Educational Resource
Core Engineering Highlights:
  1. Verified hardware architecture, schematics, and pinout diagrams.
  2. Comprehensive firmware routines, protocol benchmarks, and build steps.
  3. Production design rules, tolerances, and thermal considerations.
Related Topic Taxonomy:
  • #Technology
  • #Engineering
  • #Open Hardware

Automating photogrammetry – 3D printing, an Arduino, and an Android phone

Summary: Capturing hundreds of photographs for high-detail photogrammetry can be a tedious manual chore. By combining a 3D-printed turntable, an Arduino-driven stepper motor, and a networked Android phone running Python, small-object 3D scanning can be fully automated with outstanding reconstruction quality.

Key Takeaways

  • Automated Capture Pipeline: Eliminates the manual effort of shooting hundreds of angles by synchronizing a motor-driven turntable with a smartphone camera over Wi-Fi.
  • Accessible Hardware: Built using an entry-level 3D printer (Dremel 3D20), basic Arduino starter components, and an inexpensive stepper motor driver.
  • Seamless Software Reconstruction: AliceVision Meshroom successfully aligned 720 images across four distinct object orientations without requiring manual feature alignment.

Detailed Overview

Photogrammetry provides an accessible way to digitize physical objects for free, but manually snapping hundreds of photos is time-consuming. To solve this, a fully automated capture rig can be constructed to rotate an object incrementally while triggering a smartphone camera.

Fabrication: 3D Printing the Rig

The mechanical turntable design originated from a design shared on Reddit and Thingiverse.

Thingiverse 3D Scanner Design

Because the build volume of a Dremel 3D20 is limited, parts that exceeded the print bed were split in half using Autodesk MeshMixer and printed individually:

3D Printed Turntable Base Component 3D Printed Segment Turntable Gearing Section Assembled Turntable Structure Completed 3D Printed Scanner Platform

The printed components press-fit together cleanly without requiring glue.


Deep Dive & Technical Insights

Wiring the Stepper Motor and Arduino

The hardware setup utilizes an Arduino Uno and a 5 V stepper motor paired with a driver board.

Improvised Jumper Wire Connections to Stepper Driver

The wiring configuration connects:

  • Pins 2, 3, 4, 5 on the Arduino to driver pins IN1 through IN4.
  • 5 V power and GND from the Arduino to the stepper driver power rails.

The control sketch (.ino file from the Thingiverse release) is uploaded directly to the Arduino board via the Arduino IDE.

Network Communication & Automation Scripts

The scanning process is coordinated between a PC (such as a Microsoft Surface Go) and an Android smartphone via Python over a local Wi-Fi network.

Complete Photogrammetry Setup with Laptop and Phone

  1. Android Configuration:

    • Install QPython on the Android device.
    • Load Server.py (available via the modified AA-Scan repository).
    • Set serverAddress to match the local IP of the smartphone (e.g., 192.168.8.100), define the image storage directory, and execute the script.

    QPython Server Terminal on Android

  2. Computer Configuration:

    • Identify the Arduino's serial port (e.g., COM3).
    • Open Client.py, update serverAddressList with the phone's IP address, and specify the correct COM port.
    • Run the script:
      python Client.py
      

Automated Scanning in Action

Once triggered, the computer commands the Arduino to step the turntable, pausing at each increment while notifying the phone over Wi-Fi to snap a photograph.

Watch Video Demonstration: Automated Turntable and Phone Capture

Results and Model Processing

To evaluate the rig, a small rabbit vertebra measuring under 2 cm in length was captured across four separate resting orientations (dorsal, ventral, cranial, and caudal sides), producing 720 images in total.

All 720 photographs were fed into AliceVision Meshroom in a single batch. Due to the high-key lighting setup and neutral white turntable plate, Meshroom successfully aligned the entire image set without requiring manual feature masking or multi-chunk alignment.


Conclusion & Resources

By offloading repetitive capture tasks to an Arduino and utilizing an existing smartphone camera over Wi-Fi, this setup provides a portable, highly effective photogrammetry workflow suited for digitizing delicate, small-scale specimens.