Smart 360° Photo Turntable – ESP32 + ESPHome + Home Assistant
by espboards in Circuits > Electronics
430 Views, 6 Favorites, 0 Comments
Smart 360° Photo Turntable – ESP32 + ESPHome + Home Assistant


I built a smart, WiFi-controlled 360° photo turntable for smooth and consistent product photography.
Powered by an ESP32, it uses ESPHome to integrate with Home Assistant, giving you speed control, start/stop buttons, and a “return to home” function — all from your phone or computer.
It also has a physical push button for quick local control, making it perfect for hands-free 360° product shots, dev board demos, and timelapse photography.
Full build log and updates are available on my project page: https://www.espboards.dev/blog/smart-360-photo-turntable-esphome-home-assistant/
Supplies
Mechanical
- 3D Printed Turntable Base + Casing – Original Printables Model (remixed to mount ESP32 and push button)
Electronics
- ESP32 Development Board – Amazon US | Amazon DE | AliExpress
- Stepper Motor (28BYJ-48) + ULN2003 Driver Board – Amazon US | Amazon DE | AliExpress
- Momentary Push Button (12×12×7.3mm) – Amazon US | Amazon DE | AliExpress
- 5.5×2.1 mm DC Barrel Jack Socket – Amazon US | Amazon DE | AliExpress
- 5V Regulated Power Supply (1A or more) – Amazon US | Amazon DE | AliExpress
- DuPont Jumper Wires – Amazon US | Amazon DE | AliExpress
- Hot Glue Gun – Amazon US | Amazon DE | AliExpress
Tools
- 3D Printer
- Small screwdriver set
- Wire cutters/strippers
- Optional: soldering iron (not required for this build)
Print the Turntable Parts

The base of this build comes from the excellent minimalist design by Derek Harper on Printables.
It uses a stepper motor, a 608 bearing, and a 3D-printed frame for smooth, precise rotation.
Instructions:
- Download the STL files from the link above.
- Print the parts in PLA or PETG. I used PLA for simplicity — PETG is a good choice if you want more durability.
- Use 0.2 mm layer height for a nice surface finish on the visible turntable top.
- Print with at least 20–30% infill to make the platform more stable during rotation.
- If desired, tweak the base model to add:
- A mounting bracket for the ESP32
- A hole or slot for the push button
Tip: If your printer bed is small, you can scale the turntable top down — just remember you may need to adjust your photography framing later.
Wiring the Electronics

This project needs no soldering - all connections are made using DuPont jumper wires.
We’ll connect the ESP32 to the ULN2003 stepper driver, add a push button for manual control, and power everything from a 5V adapter.
Connections:
ESP32 -> ULN2003 Driver Board
- GPIO9 -> IN1
- GPIO7 -> IN2
- GPIO5 -> IN3
- GPIO3 -> IN4
Push Button
- One leg -> GPIO12
- Other leg -> GND
Power
- 5V power adapter -> barrel jack -> ULN2003 VCC
- GND shared between ESP32 and ULN2003
Tips for Clean Wiring:
- Use female-to-female DuPont jumpers for easy plugging into the driver board and ESP32 headers.
- Route wires around the edges of the base so they don’t rub against the rotating platform.
- Keep wire lengths short to avoid tangles inside the housing.
Setting Up ESPHome
With the hardware wired up, it’s time to give the turntable a brain.
We’ll use ESPHome so the ESP32 can talk to Home Assistant over WiFi, with controls for start/stop, speed, and “return to home.”
1. Install ESPHome
You can run ESPHome:
- Inside Home Assistant (Add-on Store)
- Or on your computer (ESPHome Getting Started Guide)
2. Create a New Device
- Open ESPHome.
- Click “+ New Device” and name it 360-pod.
- Choose ESP32 as the board type (match your actual ESP32 variant).
3. Paste the Configuration
Replace the auto-generated YAML with this configuration:
4. Update the Settings
Before uploading:
- Enter your WiFi SSID and password
- Set your API encryption key and OTA password
- Make sure the GPIO pins match your wiring
5. Upload to ESP32
- First upload via USB cable
- After that, you can update it over the air from ESPHome
When the ESP32 boots, it will connect to WiFi and appear in Home Assistant — ready for control.
Assembly

Now that the electronics are wired and the ESP32 is flashed, it’s time to put everything into the 3D-printed housing and turn it into a working device.
1. Mount the Stepper Motor
- Place the 28BYJ-48 stepper motor into its slot in the printed base.
- Secure it with the provided screw holes in the model.
- Make sure the output shaft is centered and spins freely.
2. Install the Bearing
- Drop the 608 bearing into its recess in the turntable top or base (depending on the model design).
- This helps keep rotation smooth and wobble-free.
3. Place the Electronics
- Fit the ULN2003 driver board next to the motor.
- Mount the ESP32 board inside the base — either with screws, a 3D-printed bracket, or a blob of hot glue.
- Route jumper wires neatly along the inside walls to avoid rubbing against moving parts.
4. Add the Push Button
- Insert the momentary switch into its mounting hole.
- Ensure it clicks cleanly and doesn’t stick.
- Connect it to the ESP32 as per the wiring from Step 2.
5. Power Input
- Install the DC barrel jack socket in the base.
- Connect it to the ULN2003 board’s VCC and GND, sharing GND with the ESP32.
6. Secure Everything
- Use hot glue to lock boards and wires in place.
- Avoid gluing moving parts or the motor shaft.
7. Attach the Turntable Top
- Align it with the motor shaft and bearing.
- Push down gently until it’s seated — it should rotate smoothly without binding.
Testing & Using the Turntable

With everything assembled, it’s time to bring the turntable to life.
You can control it using the physical push button or Home Assistant via WiFi.
1. Power It Up
- Plug in your 5V power adapter.
- Wait for the ESP32 to boot and connect to your WiFi (you’ll see it show up in Home Assistant if configured correctly).
2. Physical Button Control
- Short Press → Starts a full rotation (or stops if already spinning).
- Long Press → Returns the turntable to the “home” position (great for consistent photo framing).
3. Home Assistant Control
Once added via ESPHome integration, you’ll see:
- Start / Stop buttons
- Home button
- Speed slider (adjust rotation speed live)
You can trigger spins from your dashboard, phone, or automations — even sync it with lights or cameras.
4. Adjusting Speed
- Use the Stepper Speed slider in Home Assistant.
- The default range is 50 to 1020 steps/s — tweak to match your motor’s smoothest performance.
5. First Spin Test
- Start slow to ensure the platform rotates evenly.
- Place a small object on top and check for smoothness.
- If you hear skipping or vibration, lower the speed until movement is stable.
Demo & Results

With the turntable fully assembled, here’s how it performs in real-world use.
It’s smooth, quiet, and easy to trigger — either with the physical button or directly from Home Assistant.
1. Photo & Video Examples
- Perfect for 360° product shots — just set an object in the center, press start, and capture.
- Works great for dev board demos, spinning electronics slowly while you talk about features.
- Can be used for timelapse photography by syncing spin speed with your camera’s shooting interval.
2. Demo Video
This clip was filmed using the turntable itself — triggered from Home Assistant and completely hands-free.
3. Performance Notes
- The Stepper Speed slider makes it easy to find the smoothest speed for different object sizes.
- The Return to Home function means your photos always start from the same angle.
- WiFi control + local button = flexibility whether you’re at your desk or across the room.
See more demos and behind-the-scenes details here: https://www.espboards.dev/blog/smart-360-photo-turntable-esphome-home-assistant/
Closing Thoughts
Upgrading this simple motorized turntable with an ESP32 and ESPHome turned it into a smart, automation-friendly tool that I now use all the time for product photography, demos, and timelapse clips.
What I like most is the dual control — quick manual spins from the push button when I’m setting up, or fully automated control from Home Assistant when I want perfect, repeatable shots.
It’s an easy weekend build, requires no soldering, and makes a big difference in workflow if you shoot products regularly.
If you build your own version, I’d love to see how you adapt it — maybe with an ESP32-CAM for built-in image capture or syncing it with studio lighting.
Happy making!