Skip to the content
PCBKitNew board
2 layers60 × 110.8 mmKitchen timer hardware, the printed circuit board in 3D

Kitchen timer hardware

emanuelen5/kitchen-timer

A digital kitchen timer made from scratch

Size
60 × 110.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
83
Nets
121
Pads
341
Tracks, vias
938, 108
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
4 Oct 2026
Updated
4 Oct 2026

Overview

Kitchen timer hardware is an open-source printed circuit board by emanuelen5, from the emanuelen5/kitchen-timer repository on GitHub. It is a 2-layer board of 60 × 110.8 mm with 83 parts on 121 nets, routed with 938 tracks and 108 vias.

It is built around the ATMEGA328P-AU, MAX7219M and PEC11R-4215F-S0024, with the BAS40, IRLML6402 and JSM2302 among its other parts. Its parts include 20 resistors, 13 ICs, 12 capacitors, 5 diodes and 3 transistors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

10

README

README.md

Kitchen timer

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

Features

  • ⏱️ Allows several timers to run in parallel
  • ⚡ Is battery powered and power efficient
  • 🔌 Charged by USB-C
  • 💻 Programmable through the same USB port
  • 🐍 Easter eggs

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

See the bill of material in the KiCAD project for the full details.

Mechanical components

Additionally, you will need the following mechanical components for the assembly:

DescriptionQty
Hexagon Socket Button Head Screw ISO 7380-1 - M3 x 164
Hexagon Socket Button Head Screw ISO 7380-1 - M2 x3
Brass Threaded Insert M34
Brass Threaded Insert M23
Hexagon Socket Button Head Screw ISO 7380-1 - M2 x3
3.7V Lipo battery 1000mAh, 10x20x50mm, JST XH2.54 2 pin1

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

Enclosure

The .stl files are available in ./enclosure so you can 3D-print the enclosure yourself.

Software

You can flash the program directly using the ISP header on the board if you want (the same procedure as flashing the bootloader, below). But it's more convenient to add the bootloader so you don't have to open up the enclosure for each software update. Then you can instead program it over the USB-C connector.

For that, you need the bootloader firmware and programmer software which you can download from https://github.com/emanuelen5/kitchen-timer/releases/tag/bootloader-v1.2.0.

Bootloader

To flash the microcontroller with the bootloader, you need avrdude. Avrdude 7.3 can be downloaded from https://github.com/avrdudes/avrdude/releases/tag/v7.3. Make sure to add it to your PATH.

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 the following command (replace <programmer> with your programmer of choice, like usbtiny):

bash
# the bootloader.hex file needs to be in the current directory
avrdude -p atmega328p -c <programmer> -U flash:w:bootloader.hex:i \
  -U lfuse:w:0x62:m -U hfuse:w:0xD0:m -U efuse:w:0xFF:m

[!TIP] Use avrdude -c ? to see which programmers are available

This flashes the bootloader and sets the required fuses for the bootloader.

After that you can disconnect the programmer and assemble the device.

Programmer

Now that you have the bootloader on the device, you can use the USB-C cable for programming it by using the programmer application.

Dependencies

First you will need to install some packages that the programmer needs (files from https://github.com/emanuelen5/kitchen-timer/releases/tag/bootloader-v1.2.0).

bash
pip install -r ./programmer/requirements.txt

You can now program the application onto the device through the bootloader!

Upload firmware

Download the latest revision of the firmware (if you want to build it yourself, see #Development below) from the releases https://github.com/emanuelen5/kitchen-timer/releases.

Connect the USB cable to the device, and then run

bash
python3 ./programmer/programmer.py --hexfile firmware.hex

Development

Firmware

To build the firmware, you need pio which can be downloaded from https://pypi.org/project/platformio/ or installed using pip (the official Package Installer for Python)

To build any of the environments, use the pio command, like

bash
# builds the main application and puts it in .pio/builds/application/firmware.hex
pio run -e application

Then use the programmer to upload the firmware to the device.

Background

Our kitchen timer is an iteration of mkdxdx project "REST: Kitchen timerREST: Kitchen timer". We wanted to keep the "dial" (rotate-to-set) concept and the 16x16 led matrix but do it with an ATmega328p and a custom PCB. In the end we scrapped the dial since the design became too complicated, and settled on a simpler design.

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.

Parts

83
QtyValueFootprintReferences
910kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R6, R8, R11, R12, R13, R14, R15, R22
7100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC5, C6, C9, C13, C14, C15, C16
51kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7, R9, R10, R16, R17
462KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR18, R19, R20, R21
4KWM-20882CUYBkitchen_timer:KWM-20882CUYBU11, U12, U13, U14
4MAX7219Package_SO:SOIC-24W_7.5x15.4mm_P1.27mmU7, U8, U9, U10
4MountingHoleMountingHole:MountingHole_3.2mm_M3H3, H4, H5, H6
310nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC10, C11, C12
3GNDTestPoint:TestPoint_Pad_D2.0mmTP8, TP14, TP15
3MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2, H7
3Red test LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD3, D4, D5
222pFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC7, C8
1+5VTestPoint:TestPoint_Pad_D2.0mmTP12
1+5V-USBTestPoint:TestPoint_Pad_D2.0mmTP7
11MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR24
13.3MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR23
1ATMEGA328P-AUPackage_QFP:TQFP-32_7x7mm_P0.8mmU5
1AVR-ISP-6Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ3
1BAS40Package_TO_SOT_SMD:SOT-23D1
1BAT+TestPoint:TestPoint_Pad_D2.0mmTP16
1BAT-TestPoint:TestPoint_Pad_D2.0mmTP17
1CH340E UART Modulekitchen_timer:CH340E_UART_BREAKOUTU1
1CH_ATestPoint:TestPoint_Pad_D2.0mmTP9
1CH_BTestPoint:TestPoint_Pad_D2.0mmTP10
1CSTestPoint:TestPoint_Pad_D2.0mmTP5
1Conn_01x02kitchen_timer:JST_XH_1x02_P2.54mm_VerticalJ1
1Conn_01x02_Pinkitchen_timer:JST_XH_1x02_P2.54mm_VerticalJ2
1Crystal-32kHzCrystal:Crystal_C26-LF_D2.1mm_L6.5mm_HorizontalY1
1DTRTestPoint:TestPoint_Pad_D2.0mmTP6
1IRLML6402Package_TO_SOT_SMD:SOT-23Q2
1JSM2302Package_TO_SOT_SMD:SOT-23Q1
1MMBT3904kitchen_timer:MMBT3904 (SOT-23)Q3
1MOSITestPoint:TestPoint_Pad_D2.0mmTP1
1PEC11R-4215F-S0024kitchen_timer:PEC11R4215FS0024U6
1PMEG4010CEJDiode_SMD:D_SOD-323FD2
1PP_VCCTestPoint:TestPoint_Pad_D2.0mmTP13
1PS1240P02CT3kitchen_timer:PS1240P02BTLS1
1RXDTestPoint:TestPoint_Pad_D2.0mmTP4
1SCKTestPoint:TestPoint_Pad_D2.0mmTP3
1SKRPACE010kitchen_timer:SW_SKRPACE010SW2
1SWTestPoint:TestPoint_Pad_D2.0mmTP11
1SparkFun_LiPowerkitchen_timer:SparkFun_LiPowerU3
1TP4056 breakoutkitchen_timer:TP4056_BREAKOUTU2
1TXDTestPoint:TestPoint_Pad_D2.0mmTP2

Questions

How big is the Kitchen timer hardware PCB?

It measures 60 × 110.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Kitchen timer hardware use?

83 parts, built around the ATMEGA328P-AU, MAX7219M, PEC11R-4215F-S0024 and BAS40. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Kitchen timer hardware KiCad files?

From the emanuelen5/kitchen-timer repository on GitHub, at the commit this page was made from: the board is pcb/kitchen_timer-hardware.kicad_pcb and its schematic pcb/boost_converter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Kitchen timer hardware design in my own project?

Its repository states no licence, so its author keeps all rights: ask emanuelen5 before reusing the design.

Similar boards

  • 2 layers45.2 × 87 mmMyBikesGotLED, the printed circuit board in 3D

    MyBikesGotLED

    mcqn/my-bikes-got-led

    My Baby's Got LED, bike edition

    79 parts4
  • 2 layers36 × 70 mmNoodleDriver, the printed circuit board in 3D

    NoodleDriver

    mcqn/bike-head

    Making your bike more fun (if that's possible) by giving it a head

    46 partsCERN-OHL-S-2.0
  • 4 layers58 × 35 mmESP HI PLUS, the printed circuit board in 3D

    ESP HI PLUS

    dyu134/ESP-HI-PLUS

    The Robot sub-module is a high-performance actuator and sensing expansion board for the ESP-HI-PLUS, designed to transform the device into a mobile or interactive robotic platform.

    88 parts
  • 2 layers50 × 100 mmActiveLoad, the printed circuit board in 3D

    ActiveLoad

    ahessling/ActiveLoad

    Small 12 Watt Active Load (dummy load) with STM32 microcontroller

    83 parts5MIT
  • 2 layers60.1 × 29.2 mmImd latch, the printed circuit board in 3D

    Imd latch

    olin-electric-motorsports/olin-electric-motorsports

    OEM Monorepo

    37 parts14
  • 4 layers100.4 × 83 mmComponent tester, the printed circuit board in 3D

    Component tester

    kitspace/component_tester

    A keychain version of the Mikrontroller.net AVR component tester

    79 parts1
  • 2 layers55 × 100 mmESP32AY revD2, the printed circuit board in 3D

    ESP32AY revD2

    djspawnbrest/ESP32AY

    ZxPod - ESP32 based AY multiformat player

    138 parts59GPL-3.0
  • 2 layers17.4 × 12.6 mmTC4056-Bypass, the printed circuit board in 3D

    TC4056-Bypass

    DoImant/TP4056-Power-Path-PCB

    TP4056 Power Sharing PCB. Charge battery despite connected load.

    8 parts52CC-BY-SA-4.0