Spin is a photography turntable system for capturing how your DIY projects come together over time.

Below are build instructions for a modified turntable to accomodate smaller laser cutters. The footprint of the turntable is exactly the same as the original design (13"), but all laser-cut parts are under 12" in size. There are also three extra 3D printed pieces needed, and 6 additional 1/4-20 nuts and bolts.


Building your own Spin system involves fabricating the mechanical turntable, assembling the Spin Arduino shield, and 3D printing a motor gear and iPhone stand.

All purchased parts are available online from McMaster, Digikey, Sparkfun, and Amazon. The raw materials cost around $150. There are quick links to most materials on the left; these links exclude any acrylic or fasteners you'll need to fabricate and assemble the turntable.

If you'd like to grab all the design files in one place, check out the project on Github.

The following tools are necessary for assembling your Spin turntable

  • Philipps head screwdrivers (precision and normal)
  • M1.5 allen wrench
  • Soldering iron and basic soldering tools (tweezers, solder, and wire strippers)

You will also need to use the following machines:

  • Laser Cutter
  • 3D Printer
Turntable Fabrication

The turntable consists of laser cut, 3D printed, and purchased parts.

Recommended parts are listed below. It is highly recommended that you purchase the fasteners at your local hardware store since the parts are only available in bulk online. You can find direct links to Sparkfun, McMaster, and Digikey carts on the left side of this page. Alternatively, if you want me to mail you a kit of fasteners, send me an email at spinturntable (at) gmail (dot) com.

Item Vendor Quantity Part Number Total Price
Specialized Parts
Turntable McMaster 1 18635A52 37.03
M3 Heat-Set Inserts McMaster 1 (pack of 100) 94180A331 12.30
3/16" acrylic (total area of 12" x 24") Tap Plastics 1 3/16" acrylic 13.30
⅛" white acrylic (12"x12") Tap Plastics 1 1/8" acrylic 10.00
Misc Electronics
Stepper Motor Sparkfun 1 ROB-09238 14.95
Arduino Uno Sparkfun 1 DEV-11021 24.95
12VDC Wall Adapter Sparkfun 1 TOL-09442 5.94
M3 Standoffs Digikey 4 952-2189-ND 2.24
3.5mm Audio Cable Amazon 1 Audio Cable 7.99
M3 set screw (4mm length) 2
M3 machine screws (10mm length) 18
M3 nuts 7
¼-20 machine screws (0.625" length) 9
¼-20 nuts 9
5/16 machine screws (2.5" length) 3
5/16 nuts 3
Total: $126.70 + ~ $10 for fasteners

Laser Cutting

Spin consists of 3/16"-thick clear acrylic parts as well as a 1/8"-thick platform.

First, laser cut the base, outer gear, and stepper motor case parts out of the 3/16” acrylic (all vector cuts):

3/16" acrylic parts [dxf | cdr | ai]

Next, cut the platform out of ⅛” acrylic / ABS. The steps for fabricating the platform are, 1) raster 3 holes 0.08" deep (this is so the platform can rest atop 3 screws on the turntable), 2) vector cut the outline of the platform, and 3) flip the part over and vector engrave the centermark (green). The centermark should not cut through the entire part.

1/8" acrylic platform (front on left, back on right) [dxf | cdr | ai]

TIP: The rastering process can be shortened by sending each red rasterd hole separately (so the laser head doesn't have to travel back and forth when rastering the bottom two holes).

3D Printing

3D print the motor gear [stl], the iOS dock [stl], and 3 copies of the feet [stl].

NOTE: I highly recommend printing the motor gear in ABS and not PLA, which is more susceptible to warping and heat damage. This is what one motor gear looked like after several weeks of use:

Wait for a few minutes after inserting the heat-set inserts before you screw the gear to the motor shaft. You want the plastic to cool completely to prevent any deformation.

If you find that the heat-set inserts start to loosen from the plastic, replace the motor gear part with a new one.


First, solder a 4-pin male header to the stepper motor cable in the following color sequence: RGYB

RGYB cable ordering for stepper motor

Next, attach the 3D printed motor gear to the stepper motor shaft. To do this, you need to first insert the M3 heated inserts into the two holes on the side of the motor gear.

Use a soldering iron to insert the M3 heatset inserts (check out the video below for reference).

Be sure to turn the temperature down on your soldering iron and keep the soldering iron as straight as possible to avoid melting too much material around the insertion hole. Using a Weller WES51 soldering iron, a temperature of 400F works well.

Threaded Insert installation into 3D printed plastic parts from EricYoung on Youtube

TIP: Position the motor gear such that the gear hangs off the side of the table to keep the part flat (for easier insertion).

Grab the base of the turntable and orient it so that the four Arduino mounting holes are on the LEFT side (NOT the right). Position the stepper motor so that the cable oulet faces the center fo the turntable, and then assemble the stepper motor case and affix it to the base using the M3 nuts and bolts.

Now, take the laser cut outer gear and fasten it to the turntable bearing from McMaster using ¼-20 screws, adding a nut in between the outer gear and the head of the screw. This will make it easier to align the floating platform later.

Going back to the base, secure the three 3D-printed feet using a total of six 1/4-20 nuts and bolts. The feet should be oriented such that the 1/4-20 nuts are on the bottom of the turntable.

Now you'll use the 5/16" bolts to secure the base to the turntable bearing. To do this, first insert the 5/16" bolts into their corresponding holes in the feet, and add a nut on the other end. Then, screw each 5/16" bolt into the turntable bearing. I recommend holding the turntable vertically and alternating between each bolt, screwing incrementally.

Keep the nut floating until the bolt just emerges through the opening on the top surface of the turntable. At this point, push the 5/16" bolt so that the cap of the bolt is flush with the bottom of the feet, and position the nut until it aligns with the top opening on the feet. At this point, you can securely tighten the bolt until about 1/8" of it sticks out above the top surface of the turntable (see images below).

This is what your turntable should look like at this point:

Finally, attach the Arduino to the base using the offsets and M3 screws.

Last, add the ⅛” platform, which rests on top of the ¼-20 screws.

PCB Assembly

The Spin Arduino shield is designed for the Arduino Uno and utilizes the Easy Driver stepper motor driver.

You can order the board from OSH Park [https://oshpark.com/profiles/scientiffic], which is $35.10 for 3 boards (and can take about 2 weeks to make and send), or you can make the board yourself: [Eagle Project]

Spin Schematic [pdf]
Spin Board (Top on Left, Bottom on Right)
Part # Part
C1 0.22 µF capacitor
R1 2 KΩ resistor
R2 2 KΩ resistor
R3 10 KΩ resistor
R4 1 KΩ resistor
R5 1 KΩ resistor
R6 100 Ω resistor
R7 100 Ω resistor
R8 100 Ω resistor
R9 100 Ω resistor

Item Vendor Quantity Part Number Total Price
Easy Drive Stepper Motor Driver Sparkfun 1 ROB-12779 14.95
Blue LEDs 1206 SMD Sparkfun 1 (strip of 25) PRT-12620 2.95
Male headers Sparkfun 2 PRT-00116 3.00
Female header Digikey 1 S5440-ND 0.63
3.5mm audio jack Digikey 1 CP-43514-ND 1.18
100 Ω resistor 1206 SMD Digikey 5 311-100FRCT-ND 0.45
1 kΩ resistor 1206 SMD Digikey 1 P1.0KECT-ND 0.09
10 kΩ resistor 1206 SMD Digikey 1 311-10.0KFRCT-ND 0.09
2 kΩ 1206 SMD Digikey 2 RMCF1206JT2K00CT-ND 0.18
0.22 µF 1206 capacitor Digikey 1 399-1251-1-ND 0.17
Total: $23.51

Program the Arduino

The Spin system utilizes the Soft Modem library to send audio signals from an iPhone to the Arduino. You need to use a particular patched library, which you can find here:

SoftModem Library

Install the SoftModem library on your computer (instructions).

Next upload the Spin Arduino Sketch to your Arduino.

Attach the shield to the Arduino with the LEDs pointing towards the center of the table. Connect the motor to the shield by orienting the red cable of the motor closest to the LEDs.

To test that your turntable, you can use this Processing sketch, which lets you nudge the turntable left or right or do a complete rotation. After you've assembled your turntable, run the Processing sketch and test that your turntable can do a full rotation.

NOTE: This sketch will not work with Processing 3.0 due to library compatibility issues - please run in Processing 2.2.1.

Processing Sketch [zip]
NOTE: Do NOT unplug the stepper motor while the turntable is powered. This will damage the Easy Driver board! Be sure to turn off the turntable before unplugging the stepper motor.
Download the App

The Spin iOS app runs on any iOS device (iPhones, iPod Touches, iPads) running iOS 7.0 and up.

You can find the Spin app on the App store at the following link: https://itunes.apple.com/us/app/spin-turntable/id999530437?mt=8

NOTE: Your iOS device must be physically connected to the turntable to use the app.

Using Spin

To start using Spin, plug in the Arduino Uno to a wall outlet using the AC Adapter and connect the 3.5mm audio cable between your iOS device and the Spin shield.

When you open up the iOS app, you will go through a one-time setup that will check your connection to the turntable. After the app is able to successfully connect to the turntable, you can register and begin creating Spin animations!

Feel free to get creative with your Spin backdrop! You can use hanging white fabric, a cardboard trifold, or a whiteboard for a neutral background, but you can also decorate it to personalize your Spins.

White fabric as backdrop using vice grip
Artwork as backdrop
No backdrop!

I will add to this as issues come in! If you run into any problems, please add the issue on Github.

My Spin Turntable isn't spinning

Is your turntable plugged in using the AC adapter? Two of the LEDs should be illuminated if the turntable is receiving power. USB power is not enough to power the stepper motor completely.

Do you hear the motor turning? If so, you may need to tighten the set screws on the 3D-printed motor gear to ensure the motor shaft isn't slipping in the motor gear. If the heat-set inserts come loose from the gear as you tighten the set screw, you may need to replace the motor gear with a new part.

Are you using a working 4-pin 3.5mm audio cable? You must use a 4-pin 3.5 mm audio cable to connect to the turntable. You can ensure that the connections on the cable are working with a multimeter. In particular, tip and the ring closest to the base are the ones used to communicate between the turntable and the phone.

Still not turning? Close the app completely, restart it, and try again.

STILL not working? Please report the issue on Github.

Live Documentation

To follow the development of new features for Spin, or to leave any feedback or suggestions, check out the Build in Progress Spin page