Skip to content

emanuelen5/kitchen-timer

Repository files navigation

Kitchen timer

We're building a Kitchen timer! The project is heavily inspired by REST: Kitchen timer by mkdxdx [Hackaday.io].

Introduction:

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.

Motivation:

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.

Product Requirements:

  • 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.

Hardware

  • Atmega328P as microcontroller
  • Rotary encoder for setting the time
  • 16x16 LED matrix as display
  • 32 kHz crystal for accurate timekeeping
  • Passive buzzer for beeping

Manufacturing / gerber files

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

Software

Bootloader

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).

Connect your programmer of choice to the 6-pin in-system programmer (ISP) connector:
6-pin ISP header, as viewed from the top

Then run

./flash.sh <programmer> bootloader

to flash the bootloader and set the fuses (to lfuse=0x62 hfuse=0xD0 efuse=0xFF).

Application

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 application

You 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

About

A digital kitchen timer made from scratch

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •