TurnTable: ESP32 Automated Photo Capture

Executive summary

An automated rotating table that uses a stepper motor and an ESP32 to facilitate perfectly spaced 360° product photography and 3D scanning. It coordinates physical rotation with wireless Bluetooth HID commands to fire a smartphone camera shutter without any physical contact.

Business strategy & value proposition

The problem

  • Manual inconsistency: Rotating an object by hand for 3D scanning (photogrammetry) results in overlapping, missed, or blurry frames.
  • Expensive gear: Professional automated turntable systems are notoriously costly.

The solution

  • Automated precision: Uses a micro-stepper motor to guarantee exact angular offsets between photos.
  • Universal compatibility: Leverages Bluetooth HID to emulate a device volume button, remotely triggering the native camera app on virtually any iOS or Android phone.

Product features & UX

Hands-free workflow

  • Detail: Once initiated, the table turns a predetermined number of degrees, pauses for stabilization, triggers the camera via Bluetooth, and repeats.
  • Interaction: The user sets the phone on a tripod, presses start on the turntable (or web UI), and walks away while the session completes.

Stable mechanical design

  • Detail: A 3D-printed geared base optimized to support various object weights without wobbling.

Technical architecture

High-level stack

Component Technology Role
Controller ESP32 Main sequencing, delays, and Bluetooth HID profile.
Actuator Stepper Motor + A4988 Provides precise, degree-perfect physical rotation.
Structural 3D Printing (PETG/PLA) The table surface, bearing track, and motor mount.
Interface Bluetooth / Web UI Configures speed, step angles, and triggers the phone.

Core systems logic

  1. Configuration: The user defines the step angle (e.g., 10 degrees = 36 photos) using a web UI or physical dial.
  2. Rotation: ESP32 commands the A4988 driver to step the motor.
  3. Stabilization: The system enforces a hard delay (e.g., 2 seconds) to eliminate mechanical vibrations in the product.
  4. Trigger: ESP32 sends a Bluetooth "Volume Down" command to fire the smartphone shutter. Loop repeats.

Handling edge cases

  • Camera lag: Phones without sufficient buffer time might miss the Bluetooth trigger or capture a blurry image before focus is obtained.
    • Mitigation: Implement configurable trigger delays and stabilization pauses directly in the UI.
  • Weight handling and torque: Heavy objects can cause the stepper motor to skip steps, ruining the 360-degree calculation.
    • Mitigation: Use a geared down mechanism (e.g., GT2 belt or planetary gears) rather than direct drive, and design a stable bearing track near the outer edge of the platform.

Future roadmap

Phase 1 (MVP)

  • [ ] Wire and configure stepper motor driver (e.g., A4988) with the ESP32.
  • [ ] Implement rotation sequence logic with hardcoded step angles and delays.
  • [ ] Integrate Bluetooth HID profile to simulate the volume/shutter press.

Phase 2

  • [ ] Design and 3D print the rotating table, motor mounts, and support structure.
  • [ ] Install load-bearing mechanisms (bearings/wheels) and assemble the physical unit.
  • [ ] Conduct live timing and rotation accuracy tests for full 360° capture.

Phase 3

  • [ ] Build a Web/Bluetooth UI for real-time speed, delay, and rotation control.
  • [ ] Document the build process, schematic, and KiCad/Fusion360 files.
  • [ ] Publish as a fully open-source photogrammetry tool.