Building A Better Clock To Drive You Insane


[Simon] came up with an improved version of Lord Vetinari’s clock that begs to be installed in waiting rooms around the world.

Last week, we were introduced to a real-life Vetinari Clock that keeps regular time but ticks at irregular intervals. It’s a great way to turn someone’s mind into porridge, but the original build broke after a few weeks because of some limitations in the clock drive. [Simon] built a very minimal circuit does away with these problems.

Just as in the first build, a microcontroller pulses the second hand motor once every second. As for the random component of this build, the microcontroller has a puts 32 bytes into a 128 byte array. The array is checked 4 times a second, and if the byte is 1, the second hand is incremented. If the byte is 0, time stops for a little bit. [Simon] included the schematic, board layout and code if you’d like to build one yourself.

There are a few drawbacks to this design; the pattern of ticking and not ticking is hard-coded into the microcontroller. Even though the 32 second long pattern shouldn’t be noticeable by watching the clock, it’s not an entirely random solution. Judging from the comments on the original build, using radioactive decay to increment a second might be a bit uncalled for.

We would like to see a second hand that stops when you look at it though. Facial recognition, anyone?

24 thoughts on “Building A Better Clock To Drive You Insane

  1. Ramdomness could be achieved using a software linear feedback register, and for more ramdomness an analog imput ( left floating, connected to a temp sensor, or conected to a volt imput, etc) could be used as a seed

  2. Snap! I built one too earlier this year too!

    From personal experience: you don’t notice the irregular ticking until you go to sleep. Trying to sleep with the clock in the room will drive you slowly insane – you will sleep uneasily and you will randomly wake up throughout the night.

    In my implementation I used a 32-bit random number generator (LCG) to vary each second by up to plus/minus 700ms. I also had a button to switch to a more subtle plus/minus 300ms.

  3. I want a more grandfather clock sound. A more natural “tic-tock” sound for a quiet, contemplative office. There is nothing so soothing, so regular as a grandfather clock ticking in a quiet room.

    How great would this be?

    I just have to have this!

  4. I don’t know about facial recognition, but a motion sensor may be pretty easy to implement. Whenever the clock detects motion in the room, it will stop ticking for 10 or 15 seconds… That could really drive you crazy.

  5. I saw a clock that stops when you watch at an exhibition in Kassel(Germany) two years ago, it worked with a webcam, processing and an arduino.

    Was funny but not very confusing.

  6. I’m sort of surprised the code was not written in assembler code, being as simple as it is. The high tech compiler ya have to pay for, if I remember right too.
    Never the less that clock would dive me mad! Now, which one of my co-workers do I need to get revenge on, mwahaha!

  7. I came up with an idea to implement the PIR sensor using the 12F683’s comparator.

    It should be relatively simple to set the comparator trip point so that it simulates a window comparator in software.

    Just a thought.

    Also maybe add a 2 minute random “normaliser” so that it ticks as expected for most of the time, then switches modes when someone new walks in the room.

  8. I still think these versions aren’t subtle enough. I’m pretty sure it’d work better with a variation of tick intervals between about 0.9 and 1.1 seconds, biased appropriately when it’s running late/early. Much subtler, and probably much more annoying.

    Also, there are plenty of software PRNG implementations you could use that would be much better than a predeclared table of ‘random’ data. Or you could sample the analog signal on an unconnected analog pin.

  9. Suggestion: Generate a maximal length PRBS of say 20 bits and drive the generator at 2 Hz. Advance the seconds arm if the output is a 1. Over the complete cycle (2^20-1) the clock will tick slightly less than once per second by a factor of around 1/10^6, which could be compensated for by increasing the MPU frequency by the same factor. The output will suspend for up to 9.5 seconds, or advance 20 times in 10 seconds at the extremes. The software required to implement this would be trivial.

  10. RE: Stopping the second hand when the clock is looked at. How about the detectors used in store displays? The use an emitter / detector pair and use the reflection that causes ‘Red Eye’ in pictures to tell when they are looked at.

    Tried to find a link to the concept.. have to figure out the proper search term :)

  11. Fascinating builds, all. I think I will have to do one as well. Thing to note: Vetinari’s Clock was in a quiet waiting room, further mushing the brain, and the irregularity (not necessarily random) was subtle and inconstant – I got the impression that it occurred once every few seconds or so.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.