Introduction: RoboTray

I have a 1 cup water kettle. My wife doesn't like cluttered worktops so it lives in a cupboard!

To use it, I have to take it out and plug it in. When finished, it needs to be put away !

So, I made 'The RoboTray'.

I used 6mm MDF for my origional tray which proved to be too weak to support a full kettle (aprox 3KGs) so I opted for 4mm aluminium plate. Lots of drilling and tapping but well worth the effort.

My original design used only a single stepper motor (Nema 17) to push the tray out and turn the turntable, but the mechanical coupling to the turntable proved awkward as I was limited by space and the short distance the tray had to travel - about 7cm !

The final design uses 2 x 12v DC motors controlled by an Arduino and an L298 H bridge driver.

************************ WARNING ****************************

Electricity can KILL you

Get your project checked by a qualified electrician before connecting to the mains supply.

************************ WARNING ****************************

Step 1: How It Works - Mains Sensing

When the kettle is switched on, after 3 seconds, the tray moves out & when fully extended (about 7cm), the turntable rotates, Micro switches indicate the 'home' & 'away' positions.

The kettle automatically turns itself off. The arduino senses this and after 10 seconds returns the turntable and tray to the 'home' positions.

The mains sensing is done using a Current Transformer, these come in all shapes and sizes and different ratings,

I used a DL-CT08CL5-20A/10mA 2000/1 0~120A Micro Current Transformer from Ebay but any equivalent should do!

For more information re Voltage & Current sensing, check out these links, they are very informative! &

or see my earlier project -

Basically, you feed the live wire (although I think it will work with the neutral wire too) of the mains lead through the CT and connect the CT via the small circuit above to the arduino.

A very clever library does all of the work.

The sensor can be very acurate as can be seen in my ISwitchTR project, but in this project, I'm only interested if there is some current flowing. I'll explain this in the Software step.

Step 2: How It Works - the Motors

Tray drive motor

60-500RPM Reversible High Torque Turbo Worm Geared Motor DC12V Reduction UK - I used a 300RPM from Ebay

Turntable motor

DC 12V high torque turbine worm gear motor, with encoder strong self-locking - Ebay 12RPM (I removed the encoder).

Pretty much any geared motors should do with the appropriate RPM's.

Driving these was made really easyusing the L298 H bridge motor driver -- Ebay !

There are many, many tutorials on the web of how to use this board, but very basically -

Connect 12v and Ground and the motors to OUT 1&2 and OUT3 & 4

IN1 & IN2 control the direction of motor 1 and IN3 & IN4 control the direction of motor 2.

With both IN1 & IN2 at 0v the motor will not turn

With IN1 at 5v and IN2 at 0v the motor will turn on way &

with 0v on IN1 and 5v on IN2 the motor will turn in the oposite direction.

The same goes for motor 2.

The motors turn at full speed because of the jumper at each end of the connector. If you want to use PWM to control the speed of the motors, you must remove the jumpers and connect the PWM out to the connector instead.

On board is a very useful 5v regulator which I use to power the arduino!

WARNING : This board can handle up to 35v input BUT the 5v regulator will ony cope with about 12v !

If you intend to use more than 12v, there is a jumper with disconnects the regulator from the supply.

See the software step for the connections.

Step 3: The Turntable

I used a

Heavy Duty Lazy Susan Bearing Rotating Swivel Turntable Plate Desk Table Durable - Ebay 6 inch for the turntable.

This is screwed to the sliding tray and turntable, this was a tad awkward hence the two holes below the motor in image 5 to allow access to the turntable.

I cut the turntable to shape using an angle grinder.

It is driven by the 12rpm geared motor which is coupled to the turntable with the 3D printed coupler in image 4.

Image 5 also shows the 3D printed slider drive coupler.

Step 4: Final Assembly & 3D Printed Parts

The turntable has to be screwed to the sliding tray first, then that assembly is attached to the sliding bars.

The images are better than words !

The 3D prints (image 6) are as follows

Slide to bearings spacer and drilling guide

Slide drive coupling

Turntable coupling - the blue version was used as a drilling template

Slide motor bracket. (I also drilled a hole either side of the motor and used a cable tie for a more secure fixing).

Turntable motor drilling template

Step 5: The Software

The software is in two parts,

The sensing routine and the motor drive routines.

The sensor uses

#include "EmonLib.h" available from

At the bottom of the sketch is a sketch which can be used to determine the values output by the arduino.

With no current through the CT, the numbers displayed will be in the low 10's or 100's, whereas, when current flows, it will be in the 1000's !

The values in the sketch should be fine for any appliance of 2KW or more.

The arduino monitors the output from the CT and if the count exceeds 2500, it recognises that the kettle has been switched on and sets the motors in motion !

The tray is moved out first with, function 'trayout()'. The motor runs until the screw hits the micro switch .

Then the turntable is moved with function 'tableout()', again the motor runs until the screw hits the micro switch.

The 'home' micro switches are circled in green on image 3.Images 1 & 2 show the turntable out and tray out micro switches.

When the mains goes off, function 'tablein()' returns the turntable and function 'trayin()' sends the tray home.

When current is detected, a blue LED (labled SENSE) is turned on.

When movement is due (or in progress) a red LED flashes.

On power on, there is a 3 second delay before the tray moves.

It takes about 55 seconds from power on until the cup starts to fill, so plenty of time to put the tea bag in the cup and place it on the turntable.

At power off, there is a 10 second delay before the tray moves.

Make it Move Challenge

Runner Up in the
Make it Move Challenge