08/05/2026

Funny looking cooking timer

This was my first electronics project since childhood, and compared to those days it was a project with steroids !

Design goals

  • Has to look funny !
  • Should be able to count down from 99 minutes or 99 hours
  • Battery operated
  • Raspberry Pi Pico based

Tools used in this project

  • Computer for programming and PCB design
  • Multimeter for troubleshooting
  • Soldering iron
  • Wire clamping tool
  • Breadboard
  • 3D printer

Bill of Materials


I started the project by designing the software to run on the Raspberry Pi Pico. To do that I also needed to build semi simultaneusly the test circuit on a breadboard, and in order to do that I needed to design the circuit with KiCAD. So I ended up doing all these tasks simultaneusly. From the beginning, I decided that I would tolerate simple mistakes, the primary goal would be to make it work.

So the circuit ended up being rather simple, which was good as it made this easy to test and would not set that bar too high.

Download PDF

Not shown in the diagram is the actual power source which was 3 AA batteries and the power switch, as these components would not end up on the PCB. So in addition to the different connectors to connect peripherials, the circuit only had a Schotky diode, a transistor, a resistor and a buzzer. A dip switch was added to the circuit to control simple settings of the timer. The other peripherials are a 7 segment display, a rotary encoder and the before mentioned power switch. This being my first design, I opted to use through hole components for everything, or rather I did not even consider using SMD. At the time I did this I was under the impression that SMD soldering needs expensive hardware and is something that is way out of my league (I later learned that that is not the case).

Next step was to do the coding. It did not end up being very elegant, this being my first ever Python project. The way the timer operates is simple, when you turn it on, it will default to previous set time, and when you press the rotary encoder it will start counting down to zero. When it reaches zero it sounds a morse code signal. Part of coding these days is copying the work of others (when they publish their work to public domain), so I ended up using a library from a developer called GurgleApps to handle the rotary encoder. You can find the entire micropython implementation in my Github repository.

Now it was time to test the circuit before placing an order for it. After a ton of debugging and problem solving, I did manage to make it work !



Then it was time to proceed to the mechanical implementation. In Finland where I live, most libraries have 3D printers that are either free to use or very inexpensive to cover the material costs. Mine was free. So I started booking times to print the enclosure. I designed the enclosure using Fusion 360 CAD software, which is rather capable and Autodesk also offers free licence to personal use. 

But that turned out to be the most time consuming part of the project. I must have printed each part at least five times before I got it right. I have since learned that this is pretty normal, seldom you get it right on the first try. There is always some small detail or tolerance that you did not anticipate. The reason this took ages was that the printer at the library was rather slow, some of the parts would take 7-8 hours to print, and the library allows you to have only one booking at a time (so that others get to use it too) and since the printers are rather popular, it might take a week before you get a new booking. That is very frustrating if you just spent several hours printing a component that turned out wrong.

The library only had black filament, so I needed to figure out a way to make certain parts of the enclosure red. After I discarded the idea of painting it, I decided to glue red paper on those parts to make the desired look.

So at the end, this is how it turned out !


I use the timer almost every day when I cook, and it does bring me joy. It turned out to be even more convenient than the timer on my stove, as it simpler to operate and it remembers from the last time how long the eggs need to boil. 

Conclusions

Although this was a rather simple project, it did teach me a lot. I learned a bit of Python, I learned to design things for 3D printing and I also learned a lot about 3D printing in general. There were some design flaws too, the way I designed the enclosure means that I need tools to change the batteries (though they last for months in normal use). The biggest flaw however was, that the buzzer does not make a lot of noise. If I am not in the kitchen and there is a lot of ambient noise such as a TV, I may not hear it going off. A big takeaway was also the need to really concentrate on the 3D design, that will take a ton of time if you need to keep printing the same parts over and over again. It is also pretty important to get the PCB design right, as it takes a couple of weeks to get them from China (unless you are willing to pay serious money for quick delivery). This project had a very simple PCB, so I got it right on the first try.

If you'd like to try the same project, you have the schematics and the code available on this page. You can order the same PCB from PCBWay using this link. (Disclaimer: If you do decide to order this, I earn a small commission). I have since I made this altered the CAD designs, so I do not have the STL files for 3D printing available anymore. Also the designs are for the specific display, switch etc that I used, so they would probably not work with other components.

No comments:

Post a Comment

I moved over to SMD components

At first, I always thought that using SMD components is something that requires heavy duty industrial processes. The components are incredib...