I have been learning to cook over the past year. Or technically, learning to cook better. I have had a reserve of about 6 recipes I’ve always used — mostly large trays of food like lasagne and casserole, with a week of leftovers. Baking is a different skillset, but one I’ve always been good at.
One recipe-step snag I keep running into is what I’d like to call “fuzzy time.” Let the onions sauté for 2-3 minutes. Let the chard cook until wilted, 4-6 minutes. I have a terrible memory and can’t just glance at the clock and remember when I started or calculate when I should be done. My estimation skills to know “is this done?” are not fully refined yet. I also don’t trust myself not to overcook the ingredient without a system in place to more rigidly limit times. Until recently, my method for dealing with this situation was to set a timer for the minimum time, check on the thing, then set the timer for one minute. Repeat until it’s done. This is great except, well look above for that statement about terrible memory. “Have I done the one-minute timer thing 3 times or 4 times now? Or am I up to 5?”
I thought this would make a good excuse to bring together electronic and laser-cutting skills to build a kitchen timer. Or as the pedantic might call it, a kitchen stopwatch. I don’t (yet?) have a full github project put together for this, because it was a fairly simple last-minute thing, but the parts list is fairly simple:
- Arduino Pro Mini, which needs a separate FTDI/USB cable for programming, if you don’t already have one.
- 24 LED Neopixel Ring
- 7 LED Neopixel “Jewel”
- an arcade button
- a laser-cut case
- accoutrements: hookup wire, power supply, power jack, silicone epoxy, M3 nuts and bolts
The design came to me based on knowing this would be a kind of clock and my familiarity with Adafruit’s Neopixel products, including that ring. The final design looks like this:
The outer ring counts seconds — 2.5 seconds per light — and the LED pips in the center represent minutes. When the outer ring fills up, a new pip lights up in the middle. To keep things graphically fun, it progresses through the colors of the rainbow. One minute is red, two minutes is orange, three is yellow, four is green, and so on. In the above picture, you’re looking at about a minute and a quarter. The ring filled up red and now orange is starting to replace it. The interface is fairly simple. Press the button to start. Press and hold the button to cancel.
When I hit one of those fuzzy-time recipe steps, I start cooking and hit the button. I then know, with a quick glance, exactly how long has elapsed. Here’s a quick video of a 6-minute timer, focusing on the first 12 seconds, to get a feel for how it counts. It fast-forwards through the majority of the count resuming realtime a few seconds from the end.
Both the code and the schematics are simple, consisting of not much more than an example Neopixel program glued to an example button debounce program. The interesting, fun, and time-consuming part was designing the case. It went through several revisions on paper.
The difficult part was keeping the Neopixel rings in place. They don’t have much by way of mounting holes. I decided to use silicone epoxy to glue them to a piece of wood backing, then mount that behind a sheet of diffusion plastic.
The laser-cut pieces fit together with Tab-A in Slot-B, held in place using 16mm M3 screws and captive nuts. There are rubber feet on the underside held using the same technique. I went with the “high tech” solution of double-stick foam tape to attach the Arduino. Zip-ties help prevent the wires from spilling out.
Overall, this was a simple build, but it’s a device I now use several evenings a week. There’s no github repo for the code, schematics, and case. If you’re interested in more detail, ping me and I’ll either send you the files, or finally get around to seeing up a shared repository.