Introduction: Lunchtime Clock
Have you ever wished lunchtime were longer, but didn't know where to find those few extra minutes? Well, wish no longer!
Thanks to great in advances in clock technology, I present to you a clock that speeds up 20% every day at 11:00 and slows down 20% every day at 11:48, giving you an extra twelve minutes of lunch to enjoy. Twelve minutes may not seem like a lot but, to put it into perspective, this is a full additional hour of lunchtime gained every week.
Step 1: Go Get Stuff
You will need:
(x1) Standard wall clock
(x1) Adafruit DS1307 Real Time Clock
(x1) Arduino Uno (w/ATMEGA328 DIP chip)
(x1) Extra ATMEGA328 chip with Arduino bootloader installed (see last step)
(x2) BC547 NPN transistors
(x2) BC557 PNP transistors
(x1) 28 pin socket
(x1) 16mhz crystal + (x2) 20pf capacitors
(x1) 1K resistor
(x1) 7805 regulator
(x1) 4 pin socket
(x1) 9V battery
(x1) 9V battery snap
(Please note that some of the links on this page contain Amazon affiliate links. This does not change the price of any of the items for sale, but I do earn a small commission if you click on any of those links and buy anything. I reinvest this money into materials and tools for future projects. If you would like an alternate suggestion for a supplier of any of the parts, please let me know.)
Step 2: Remove the Movement
Remove the clock movement from the clock body. This will require removing the front glass face from the clock as well as the clock's hands. Be gentle as not to break anything. You will have to reassemble everything later.
Step 3: Hack the Movement
The clock movement has a single coil stepper motor inside. The basic theory here is that we want to disconnect the coil from the clock's timing circuit and then attach wires to the coil so that we can control it ourselves.
So, knowing this, open up the clock movement and make careful mental note of where everything is (or take a picture).
Take apart the movement until the circuit board is free.
Locate the contacts on the circuit board where the motor is located. Notice these two contacts have traces that go off to the chip (hidden under the black blob). The idea is to use a razor blade or knife to scratch away at these traces until the connection with the chip is visibly broken.
For good measure, I also cut away the timing crystal, rendering the circuit more or less useless.
Lastly, I soldered about 6" of wire to each of the motor terminals.
When this was all done I put the whole thing back together. There wasn't a spot in the case where I could conveniently slip the wires through and I needed it to go properly back together, so I ended up cutting a small hole for the wires to pass through.
Step 4: Reassemble the Clock
Once your movement is good and hacked, but the clock back together.
Important: Make sure the hour, minute and second hand all line up at 12:00. I did not do this the first time around and quickly discovered that the clock would not display right unless all the hands were lined up.
Step 5: RTC Kit
If you haven't done so already, but together your Adafruit DS1307 Real Time Clock Kit.
Here are some instructions for getting the job done.
Also, while you are at it, set the time on the RTC board. So long as you don't take the battery out, you should only need to do this once (at least for the next 5 years or so until the battery dies). You can get in-depth instructions for setting the time on Ladyada's site.
Step 6: Build the Circuit
The circuit is pretty simple. It is basically what the kids these days are calling a "hackduino," a socket for the RTC board and a crude H-bridge to control the motor.
Step 7: Program the Chip
You will need to install the RTClib library for your code to work. Instructions to do this are on Ladyada's page.
Download lunchtime_clock.zip, uncompress it and then upload the lunchtime_clock.pde code onto your chip.
If you don't feel like downloading the file, here is the code:
// Lunchtime Clock
// by Randy Sarafan
//
// Slows down 20% at 11 and speeds up 20% at 11:48 until it hits 1.
// The rest of the time the clock goes at normal speed
//
// Do what you want with this code. Just make certain that whatever you do, it is awesome.
//
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
int clockpin = 9;
int clockpin1 = 10;
void setup () {
Serial.begin(57600);
Wire.begin();
RTC.begin();
}
void loop () {
DateTime now = RTC.now();
TurnTurnTurn(1000);
if (now.hour() == 11) {
for (int i = 0; i < 1800; i++) {
TurnTurnTurn(800);
}
for (int i = 0; i < 1800; i++) {
TurnTurnTurn(1200);
}
}
}
int TurnTurnTurn(int TimeToWait){
analogWrite(clockpin, 0);
analogWrite(clockpin1, 124); // sets the value (range from 0 to 255)
delay(TimeToWait);
analogWrite(clockpin, 124);
analogWrite(clockpin1, 0);
delay(TimeToWait);
}
Attachments
Step 8: Put It All Together
Once programmed, transfer your ATMEGA168 chip from the Arduino to your circuit board.
Plug in your RTC board into the socket. Make sure the pins are lined up correctly before powering it up.
Attach your circuit board and battery to the back of the clock. In true last-minute DIY fashion, I used hot glue and gaffers tape to do this. Self-adhesive Velcro would be ideal.
Step 9: Synchronize the Clocks
Put a new ATMEGA168 chip into the Arduino. Connect the Arduino once more to the RTC board.
Run the sample code from Ladyada's page. Open the serial monitor. The time displayed here is the time you are going to want to sync your clock to.
I found it was easiest to set a third clock (my computer clock) to be perfectly in sync with the RTC board. Then, I powered down the Arduino, transferred the RTC board back to my circuit and set the Lunchtime Clock to a minute later than my computer time. At just the right moment, when the minute changed on my computer, I powered up the lunchtime clock to achieve synchronicity.
The lunchtime clock works extremely well and has thus far surpassed my expectations.

Did you find this useful, fun, or entertaining?
Follow @madeineuphoria to see my latest projects.

Participated in the
Microcontroller Contest
65 Comments
7 years ago
Definitely an interesting 'Ible, Now EVERYONE KNOWS YOUR SECRET! ;)
8 years ago on Introduction
Firstly, this is a great project! Really like the idea.
I did a bit of investigation with a similar clock mechanism... if you attach the coil connections to a scope you can see that the method of operation is indeed to switch polarity. The signal is as follows... from a baseline of zero volts, raise coil voltage to battery voltage (a bit less than +1.5v) for 32mS, the turn off for 968mS, then apply reverse voltage (a bit less than -1.5v) for 32mS and then turn off for 968mS.
So in any given 1 second period the power need only be applied for 3.2% of the time.
You could hugely reduce your power consumption by sleeping for 96% of the time and only applying current to the coil when awake, alternating polarity each second.
10 years ago on Introduction
If I ever see one of my employee use this clock, he's fired immediately !
(now, I wouldn't mind having the same in my own office !!!!… ;) ;)
11 years ago on Step 7
hi! nice project. Why are you using 50% duty cicles in your tutnturnturn function instead of digitalwrite(pin,on) ?
Reply 11 years ago on Step 7
It is not a DC motor. It is a single coil stepper motor. Power it on will make it move one step and then stop.
11 years ago on Introduction
Hi Randofo, your project is great !!
I'm going to make it for all my radio station wall clock (just to sync real time to them)
If so, how is write code "lunchtime_clock" cause I don't need it speed up or slow down, just run the real time load from RTC chip ?
Thanks in advance !
11 years ago on Introduction
I love this idea. Simple, elegant and soo cool. I'm tempted to go the whole hog though and have a "work time" clock that speeds up at 8am and slows down again at 5pm. Of course the party poopers will say that you have to adjust all the office computer clocks and everyone's watches, but for novelty value this is a real winner. I promise I will build one
12 years ago on Introduction
I don't care what anyone else says... It's creative and genius...
and did anyone else get the Douglas Adams reference below... NICE!!!
12 years ago on Introduction
Naysayers be doomed. This is an interesting concept of relativity and time.
If you think 30 seconds is a short time, try holding your hand 2 inches over a candle for 30 seconds, then be allowed only 30 seconds for a bathroom break to realize how fast it goes by.
Time is relative, and if the lunch break can appear longer, then your mind tells you it is.
Fabulous idea and could be fun for pranks and practical jokes.
Reply 12 years ago on Introduction
Time is an illusion, lunchtime double so :p
Reply 12 years ago on Introduction
42 ;-)
Reply 12 years ago on Introduction
Is that a Douglas Adams quote?
Reply 12 years ago on Introduction
lol...so true!
Reply 12 years ago on Introduction
True enough - but your example was a bit G. G. Libbian (Libbyesque?) for my comfort!
Time is fleeting; madness takes its toll...
12 years ago on Introduction
Isn't it funny to see how all these people react to this ible?
Some clearly don't get it, some think you can accomplish the same outcome by setting the clock back 12 minutes, some people talk about the time stamp on a time card machine, some people talk about small businesses v. whatever else there is, some think they'll lose money, some want to discuss the programming.
But I guess I'll join the majority and say VERY IMPRESSIVE. GOOD JOB.
Reply 12 years ago on Introduction
I agree. The ible doesn't proscribe where you use this. If you want to try "to get away" with something at work, and you think you can, and feel that's a good thing to try, then great, have fun with it.
My lunch room at work doesn't have a clock, nor does anyone care when I eat lunch (or when I show up or go home for that matter) but I didn't think to use this at work when I saw it. As they say: "everything is relative".
For that matter, the ible includes source code for noon hour but there's nothing stopping you from adapting that for other uses. I cannot think of any at the moment, but I'm definitely bookmarking this just in case it might come in handy adding to another project.
However, I like weird clocks, and this one is very subtle that the fun in it seems to be "how long would it take anyone to notice", plus the sheer enjoyment of actually getting it working (which some people seem to miss on this website as well).
12 years ago on Introduction
Very very nice! I must admit the electronics is beyond me but I like anything that reminds people just how arbitrary time is! Be sure to post again when you start selling these, I don't need a longer lunch hour but I like bendy timepieces.
12 years ago on Introduction
This works if it is the ONLY clock in the building where you work. Thus it must be a VERY small business. At my location we have clocks on:
*Computers
*Phones
*Cell phones
*Time clocks
*Watches
Likely after a day or two someone will catch on this clock has a problem and go to replace the battery or replace the clock.
Reply 12 years ago on Introduction
We have about 20 people... I see how well they clean the shared kitchen... The likelihood of them even thinking about changing a clock battery is about nil. Come to think of it, the last clock sat with a dead battery for months.
Anyhow, it is only at most incorrect visually 12 minutes. Most of the time it is only off a matter of a few minutes. I feel that this discrepancy is not enough for most people to notice or care. Even if they did, the fact that the clock is correct about 90% of the time would probably dissuade anyone from changing it. I'm guessing it would take most people a long while to figure out what is going on in spite of the abundance of alternative clocks.
Clearly this won't work in every single work environment and I don't believe I made that claim, but I think you are wrong that this will work in none.
12 years ago on Introduction
Awesome. I bet you could sell boatloads of them on ThinkGeek.