We're building a Kitchen timer! The project is heavily inspired by REST: Kitchen timer by mkdxdx [Hackaday.io].
Our kitchen timer will be an iteration of mkdxdx project "REST: Kitchen timerREST: Kitchen timer". We will keep the "dial" (rotate-to-set) concept and the 16x16 led matrix but we want to do it with an ATmega328p and a custom PCB.
Among other features that we would like to add are:
- The possibility to set up several timers (in case you need to keep track of more than one pot when cooking dinner)
- A UART communication port that would allow us to test the device via serial commands.
Both Erasmus Cedernaes and Nicolas Perozzi belong to Stockholm Makerspace. On the same day, we messaged each other a link to mkdxdx project. We were very excited about building something that would be "practical" so we decided to team up and work on this together. Additionally, we share an interest in working with the AVR MCUs. This project is a nice blend of programming, electrical, mechanical, 3d printing, and design but, without feeling overwhelming.
- It needs to allow for several timers to run in parallel.
- Powered by battery
- Charged by USB-C.
- Programmable.
- It needs to be possible to stick to the kitchen fridge.
- Atmega328P as microcontroller
- Rotary encoder for setting the time
- 16x16 LED matrix as display
- 32 kHz crystal for accurate timekeeping
- Passive buzzer for beeping
If you want to build the PCB yourself, you can download the latest release of Gerber files from Github: https://github.com/emanuelen5/kitchen-timer/releases/latest
You need a bootloader on the microcontroller to be able to program it through the USB connector.
To flash the microcontroller with the bootloader, you need avrdude and pio (the PlatformIO command line tool).
- Avrdude 7.3 can be downloaded from https://github.com/avrdudes/avrdude/releases/tag/v7.3. Make sure to add it to your
PATH. piocan be downloaded from https://pypi.org/project/platformio/ or installed usingpip(the official Package Installer for Python)
Connect your programmer of choice to the 6-pin in-system programmer (ISP) connector:
Then run
./flash.sh <programmer> bootloaderto flash the bootloader and set the fuses (to lfuse=0x62 hfuse=0xD0 efuse=0xFF).
First you will need to install some packages that the programmer needs, and build the application.
pip install -r ./programmer/requirements.txt
pio run -e applicationYou can now program the application onto the device using the bootloader!
Connect the USB cable to the device, and then run
python3 ./programmer/programmer.py --hexfile .pio/build/application/firmware.hex