Instructables

Lunchtime Clock

Featured
Picture of 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.








 
Remove these adsRemove these ads by Signing Up

Step 1: Go get stuff

Picture of Go get stuff
You will need:

(x1) Standard wall clock
(x1) Adafruit DS1307 Real Time Clock Kit
(x1) Arduino (w/ATMEGA168 DIP chip)
(x1) Extra ATMEGA168 chip with Arduino bootloader installed (see last step)
(x2) BC547 PNP transistors
(x2) BC557 NPN transistors
(x1) 28 pin socket
(x2) 22pF capacitors
(x1) 16mhz crystal
(x1) 1K resistor
(x1) 7805 regulator
(x1) 4 pin socket
(x1) 9V battery and connector

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

Picture of Reassemble the clock
4C.jpg
4D.jpg
4B.jpg

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

Picture of 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

Picture of Program the chip
7B.jpg

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);

}


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

Picture of 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.

1-40 of 65Next »
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 !!!!… ;) ;)
RodCastler1 year ago
hi! nice project. Why are you using 50% duty cicles in your tutnturnturn function instead of digitalwrite(pin,on) ?
randofo (author)  RodCastler1 year ago
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.
giangtoxom2 years ago
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 !
DerekK192 years ago
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
larryb642 years ago
I don't care what anyone else says... It's creative and genius...
and did anyone else get the Douglas Adams reference below... NICE!!!
wellebh3 years ago
This is pure genius.
rustygray3 years ago
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.
Time is an illusion, lunchtime double so :p
42 ;-)
Is that a Douglas Adams quote?
lol...so true!
PACW rustygray3 years ago
True enough - but your example was a bit G. G. Libbian (Libbyesque?) for my comfort!

Time is fleeting; madness takes its toll...
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.
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).
PACW3 years ago
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.
Jollyrgr3 years ago
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.
randofo (author)  Jollyrgr3 years ago
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.
Honus3 years ago
Awesome. I bet you could sell boatloads of them on ThinkGeek.
eoutlaw Honus3 years ago
I was thinking exactly the same! This is a great idea and execution. You should definitely pitch this to ThinkGeek.com Randofo, prepare to make millions, haha.
agis683 years ago
well...i don't get it!!!, Maybe cause i live in a democratic country where anyone office staff can choice by self the right time and last of his lunchtime or for more breaks. Is enough to report his employer that he needs some minutes to eat something.
Teachers can't do that but they (we) have one free hour for every 4 hours of teaching. Bus drivers also have their breaks but generally every staff can break in a spirit of understanding of freedom and human rights and maybe some times health problems. We (greeks) invented democracy and we apply it. So simple. Only in Army forces have restricted Lunchtime hour, for the rest people its free!!!
so basicly, the special clock speeds up to get to lunch time 12minutes early, then, during the lunch hour, it slows down at the right speed to line up with the proper time.
cprocjr3 years ago
Amazing! I just need to figure out how to change all the clocks in the building so that no one catches on.
JohnJY cprocjr3 years ago
Or just set back every clock in the building 12 minutes.
cprocjr JohnJY3 years ago
1. That is really easy to catch because it is always wrong. People have watches/computers.

2. That doesn't actually extend lunch, it just shifts it forward.
pcgirl cprocjr3 years ago
No. It adds 12 minutes to your lunch break. Ignore how the clock works for a minute and just think of it , as if someone has turned the clock forward 12 minutes when you weren't looking. Then when you go to lunch, they turn it back to the normal time. You get an extra 12 minutes. The clock is just being that sneaky person, but electronically. :) I think it rocks!
cprocjr pcgirl3 years ago
I was replying to 94. The clock in the instructable actually does extend the time.
JohnJY cprocjr3 years ago
Yeah, whoops. Haha. Anyway, the concept is amazing.
pcgirl3 years ago
I have been trying to think of a person who can do this for me.. Absolutely love it. :D
Well then I would lose $1.73 for those 12 minutes I am spending not getting paid.
Well, yes, if your boss doesn't use that particular clock to pay you.
Unless I am completely misunderstanding this.
Give it some more thought, if the hour between 11 and "12" is faster by twelve mins, it will say it is "12" at 11:48 - when you write your timecard with your lunch break on it, the clock will say 12 - 1 when in actual fact it is 11:48 - 1..... because it looks like a standard hour, nobody will be the wiser
But, that's now how most time clocks that actually stamp a card work. They are normally hooked to a central server where a manager, supervisor, or corporation can adjust it for accuracy and security.

This will work for small shops where a manager is always relying on a single clock for timing... otherwise it's just fun to have around.
Being the majority of people work for small businesses (in the USA) and do not punch their time in, it would be relevant for most of us.
Per the Small Business Administration (SBA). Small enterprises account for 52 percent of all U.S. workers.
sumatra3 years ago
Your Instructable would be a lot stronger if you explained your circuit and code. How did you arrive at the circuit and the values for the AnalogWrites? Do you really need the transistors? The ATMega can source/sink 40ma, and I'd be surprised if the clock coil needed anywhere close to that amount of current.
randofo (author)  sumatra3 years ago
The value was arrived at because 255 was too much and 100 was not enough. I meant to stick in 127, but put in 124 for some reason and that seems to work fine.

I added an H-bridge because the motor is a single coil stepper and needs to be powered in phase (i.e. you need to reverse the polarity).

TurnTurnTurn(x) is a variable for pausing between steps of the motor, whereas x is the delay time. 1000 is equivalent to one second.

Every day at 11:00, the clock goes into a routine that slows down 80% for 3,600 rotations and then speeds up to 120% for 3,600 rotations and then resumes normal operation.
The H-bridge only amplifies the signal it receives from the control pins it's connected to. Polarity stays the same, so I do believe it would work without the H-bridge, just connect the pins directly to the stepper coil... :)
randofo (author)  imarcianoloco3 years ago

This is flip-flopping it:

analogWrite(clockpin, 0);
analogWrite(clockpin1, 124);
delay(TimeToWait);

analogWrite(clockpin, 124);
analogWrite(clockpin1, 0);
delay(TimeToWait);

Michael_oz3 years ago
Fantastic concept, great 'ible.

Perhaps two buttons one to pause one to advance X steps, will allow the time to be adjusted?
1-40 of 65Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!