Do you hate waking up in the morning? I mean, hopefully you are looking forward to your day in general, but if the act of dragging yourself out of bed at 6 or 7 (or 10 or 11) is extremely un-fun, then perhaps this alarm clock by mechanical engineer Christopher Guichet, AKA “Normal Universe,” will help get you motivated.

Guichet’s clock uses a piezoelectric sensor to detect when it’s been hit with a Nerf dart, meaning that instead of turning it off with a button press like a phone or conventional alarm clock, he simply shoots it. His build was inspired by joining a new team at work where they like to throw Nerf darts. When considering that a target was needed to say whether certain shots “counted,” a friend suggested adding alarm functionality. Combined with the fact that he hates waking up, this probably seemed like an obvious thing to make.

After a comedically violent start, this project’s build video shifts to a “lighter” tone around 0:50, as he gives a soothing musical—yes, musical—explanation of how piezoelectric sensors work. Once this background is taken care of, he then explains how his specific sensor is set up to detect when a dart hits the clock/target. It can even ignore finger taps by counting the waves in a dart’s characteristic pulse pattern.

An Arduino Uno is used as the brains of the device, and the clock’s “hand” is a large Neopixel ring, cleverly concealed behind wood veneer contact paper (he got the idea from another clever clock build video from I Like to Maker Stuff). When the light is activated, it shines through the paper for a really neat effect. The housing is 3D printed on an Ultimaker 2+, based on modelling done in Autodesk Fusion 360.

As you might suspect, an excellent build like this did take some to pull off. Guichet says that he spent about 3 months on it during the weekends, and maybe 40 hours on the clock and 40 hours on the (excellent) video. As far as the challenges he encountered along the way:

The hardest part was actually writing the code to make a settable alarm clock. I had to learn how to use classes and finite state machines in order to keep it all multi-tasking and organized. I wrote classes for the dart sensor, NeoPixel ring, buzzer, switch, rotary encoder, and clock brain. As I built up the code the dart sensor and rotary encoder stopped working because the Arduino was spending so much time updating the NeoPixels. I reorganized it so that the display only updates after a change, instead of after every loop. That fixed the problem.

Guichet is quite happy with the build, in his own words:

I feel like it is actually quite a pleasant experience to set the time, alarm, and alarm engage. Back when we had bedside alarm clocks they were a total pain to use. It’s the first thing I’ve made that actually has broad appeal which is awesome.

On the other hand, when questioned about his wakeup routine, he had to confess that:

I actually don’t use it to wake up: the light bothers me when I’m trying to sleep. I need to add a dimming functionality based on time or a light sensor. Sometimes I use it as a sleep reminder when I’m tinkering on a work night.

It really look like an excellent and clean build, and although he doesn’t use it to wake up, the clock always works as a target. So he can throw or shoot Nerf darts at it, and it will respond with lights and beeping.

Maybe this will serve as inspiration for your own excellent clock build, but if you’re wondering, there are no plans to sell this clock right now. Guichet says that he likes his current job too much. So if his employer is reading this, I’d like to point out his loyalty, and the fact that he will be getting to work on time in the future!

If you’d like to see more from Guichet, check out his “Normal Universe” YouTube channel. As described, it’s a “cooking show about art and engineering.” Since “normal” can mean “perpendicular,” the title is a clever engineering/science pun meant to signify the world all around us—in other words, not a parallel universe!