Introduction: DIY Turntable With Custom Control


In this instruction, I will show you how I created a fully automated rotating platform from an IKEA Lazy Susan Kitchen Turntable. My goal was to build a device which can be controlled manually (with buttons), or automatically (by a program). The device is a good tool for different photo shootings, test measurements, can be used as a demonstration podium or as a funny serving table in the kitchen.

It is capable to do a complex preprogramed movement, set by the user with a software. For that, I created a windows PC software to set up the movements and give orders to the turntable. The device can work without a PC. It has three buttons, to do simple movements (rotate left/right and start/stop the program), but the full potential can be reached with the turntable control software. It can handle 8 different programs. In one movement cycle can be customized the speed, direction, duration, and repetition. The duration can be a specific time period or a number of steps, or it can rotate as long as it senses a magnet at the built-in hall sensor. If a magnet is placed in the right place on the table, when this magnet reaches the sensor, the rotation will stop. Every program type can be repeated as many times as it is needed.

Step 1: BOM List

Stepper Motor 1 pc

I chose a strong stepper with high torque, but it is still small enough to be hidden below the table. I made some test with weaker/smaller motors. The result was very bad, the table did not start turning. I tried to use a transmission but with that, I lost speed and dynamics. This motor can handle 5 kg weight easily.

AC/DC power supply OUT 24V 5A 1 pc

Any power supply can do. It is important to have 24 VDC output and at least 3 A. When it start moving I measured 2A peaks.

SHF8 Shaft Support 1 pc

This shaft support is strong enough to hold the whole table and the weight on it.

TB6600 stepper motor driver 1 pc

This driver was the only available which can switch 4A. It has their own heatsink. I left the heatsink free because, during operation, it is usually warm.

LM2596 DC-DC step-down power Supply module 1 pc

This module reduces the 24DC to 5 DC for the microcontroller and for the sensor. I choose this unit because it is a step down switching power supply so it can do the transformation at high efficiency.

IKEA Lazy Susan Kitchen Turntable 1 pc

For me it was convenient to use this kitchen turntable, however, any round object can also be usable. The only remark, that it should be strong enough to stay on there place during the starts and stops of the motor in quick sessions.

Button 3 pcs

Any buttons will do. Only 5V will go through.

Display 1 pc

I used this display because it is easy to handle by all Arduino board.

Arduino nano processor module 1 pc

I used this Arduino board. My first pick was a nodeMCU module, but it was not stable because of the 3.3V control line to the driver. With nodeMCU, I planned to do an embedded web server. It would be much easier (no PC software needed). Maybe later. This nano module is cheap and handles all hardware with 5 VDC.

Prototpye PCB 1 pc

Some proto PCB is needed to build this schematic.

Hall Sensor 1 pc

This module is optional. I installed it because with that I was able to do precise movements.

Step 2: ​Assembly

First, I disassembled the Lazy Susan turntable. I used only the wooden parts. I fixed the shaft support to the center of the upper plate. I fixed the servo to the lower plate with some adhesive. With one screw the upper and the lower part can be attached.

I soldered the Arduino and the DC/DC converter to a protoboard. I used DIY cables for connecting the components according to the schematics.

Step 3: ​3D Print

I designed an enclosure for the electronics and the buttons and the display. If you change any components the housing should be changed accordingly. I designed in Fusion 360 and used PLA filament and an Anet A8 to print it. I attached the buttons and display to the front panel, and fixed the protoboard into the enclosure.

Step 4: ​Arduino Programming

I uploaded the code to the Arduino board with the help of Arduino IDE software ( and a Mini-B USB cable. The code is simple. In the main loop it waits, until it gets an order from USB/serial or a button is pressed. If it gets the start program order it begins with the first movement and will continue until it arrives at the last movement (8), or the next movement is not enabled. One movement can end with a timer, or motor step counter or magnet sensor event.

Step 5: PC Software

After the Arduino program is uploaded, the same serial port should be opened with the TurntableController.exe software I created. No installation is needed, only run the program. Open the port belongs to the Arduino. If there are more com ports, check the serial ports at device manager, or simply start the program without connecting the Arduino to the PC, then connect the Arduino to the PC and start the program again. The new com port, which was not there before, belongs to the Arduino.

Function buttons:

Connect: It will open the Com port with the parameters set above this button. Only the Port should be changed. Baud rate, Parity, data bits, Stop bits are set as in the Arduino.

Close: It will close the Com port, and can change the port settings.

Left, right buttons are the same as a button press, it just rotate the table with a few steps.

Start button: before pressing this button the configuration should be done. When this button is pressed the configured program will start.

Stop button: It will stop the program.

Reset: It clears all configuration from the program.

Add: Before pressing this button the Movement, Enabled, Repeat, Direction, Mode, Count, Speed1, Speed2, Pause time parameters should be set. It will send these parameters to the Arduino and saved in the program.

Add + Start: Same function as "Add" button plus it will start the program.

Movement: A program has a maximum 8 movements. This parameter determines the number of movement.

Enabled: If this is set, than the movement will be active if the previous movement is passive, then this will be passive as well.

Repeat: this movement will be repeated according to this number

Direction: the movement will be left, or right

Mode: The end of the movement can be triggered by time, motors steps or sensor.

Time mode: The program will start a counter for “count” field seconds, then it will stop

Step mode: The program will give “count” steps to the servo.

Sensor mode: It will run until the hall sensor change their state as many times as it is set in the “count” field.

Speed and acceleration

the speed and acceleration of the stepper are depending on the Speed1, Speed2, Pause time parameters in the program and the DIP switches of the stepper motor driver.

Speed1: The stepper motor driver is active for this time period

Speed2: The stepper motor driver is disabled for this time period

Pause time: After a cycle, it will wait for this time period.

Have a nice day.