So I made my own alarm clock.

It has no snooze button and no off button. It also has a backup battery in case it gets unplugged, and there’s no way to remove the battery without a hex key.

Actually deactivating the alarm requires hitting a remote key fob. The idea is to hide the key fob as far away from your bed as possible. Obviously this is more effective the larger your home is.

To close loopholes, you also can’t change the alarm or even the date or time without hitting the remote switch.

Details

Schematic.
Schematic. It’s in vector format, so you can zoom way in.

A quick list of features:

  • Time, date, and two alarms
  • Humidity and temperature display
  • LED brightness setting
  • Celsius vs Fahrenheit setting
  • STEMMA-QT/Qwiic breakout
  • 2.54mm pitch breakout with 3.3V, GND, 5x GPIOs, and 3x ADC

The microcontroller is an RP2040 and the code is written in CircuitPython. I found CircuitPython simultaneously really convenient and extremely limiting.

The github repo is here if you want to learn more. It’s fully open source. Electrical (KiCAD), mechanical (STEP), and software.

The Story

At first, this was just something I wanted for myself, and so I cobbled something together out of parts I had lying around. That was the V0. Then I decided to do a PCB, and made the V1. The V1 had a bunch of issues, but the V2 functioned the way I wanted it to.

The prototypes lined up in chronological order.

I liked the V2 so much that I wanted to share the design with my friends. So I decided to make 10 of the V3, with the intent of giving them out to people I knew.

This turned out to be a lot more trouble than I had anticipated.

First off, I didn’t want to deal with JLCPCB’s annoying MOQ requirements for PCBA–they were going to force me to buy way more parts than I needed (and their weird consignment system seemed like overkill)–so I only had the boards ordered with the “basic” components assembled (mostly just resistors and caps). This ended up being the worst of both worlds. I was ordering PCBA but also tediously soldering every board. Would not recommend.

My hot plate setup.

Then it turned out I had accidentally shorted one of the pushbuttons in the schematic. This had to be fixed with Kynar wire on all ten V3s. You can see that in the open shot below.

It’s the red wire.

Next, I found out that one of the battery holders had arrived with the positive and negative terminals on its connector reversed. What the heck! I didn’t discover this until I had already plugged it in. Fortunately, the design includes reverse voltage protection.

This really puts Six Sigma into perspective.

Finally, when I thought the ordeal was over, half my RF receivers bricked on the same day. It turned out that they were knockoffs–I had naively ordered them from AliExpress rather than the official website. They don’t even look the same. Outrageous!

Knockoff compared to the real deal.

Anyway, it’s finished! And now I get to ship these out to my friends.

9 Wakers for 9 friends, and one Waker to rule them all…

Last edited 2025-08-04.