Skip to the content
PCBKitNew board
2 layers75 × 120 mmGrinder timer, the printed circuit board in 3D

A programmable timer for a coffee grinder. Mirrored from GitLab.

Size
75 × 120 mm
Copper layers
2
Thickness
1.6 mm
Parts
35
Nets
42
Pads
131
Tracks, vias
215, 25
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
12 Nov 2017
Updated
20 Jun 2026

Overview

Grinder timer is an open-source printed circuit board by Clewsy, from the Clewsy/grinder_timer repository on GitHub, published under the MIT licence. It is a 2-layer board of 75 × 120 mm with 35 parts on 42 nets, routed with 215 tracks and 25 vias.

It is built around the ATMEGA328PB-AU. Its parts include 7 switches, 6 capacitors, 5 resistors, 5 connectors and 2 ICs. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

grinder_timer

Rev2.1

Modelled and printed a bezel for the OLED to tidy-up the enclosure. Modelled in freecad, printed on a Prusa CORE One+. CAD files and photo here.

Rev2

More information can be found at my project page.

Improvements since rev1:

  • Hardware:
    • Pull-ups on I2C SDA and CLK lines.
    • Drive relay with a transistor instead of direct from IO.
    • Add flyback diode protection to relay coil.
    • Smaller transformer.
    • Smaller relay.
    • Switch to SMD where possible.
    • Two-sided PCB (have it fabricated instead of etching).
    • Switch buttons from mushy panel-mount to tactile SMD.
    • Balanced caps for the 32.768kHz crystal.
    • Put grind button LED on a PWM output.
  • Firmware:
    • Switch from C to C++.
    • New OLED driver (change from SPI SSD1306 to I2C SH1106 controller).
    • Pulse/fade effect for grind button LED.
    • Ability to cancel a grind once started.
    • Remember selected preset after a power-cycle.

Repo contents:

  • data: Datasheets and specs for the various components used.
  • firmware: The code witten in C++ and developed in VSCode with the PlatformIO IDE.
  • hardware: KiCad files including the schematic and PCB layout.
  • rev1_archive: Firmware developed for the original grinder_timer (written in C).

Note: I used an ATmega328PB which isn't supported by the latest avr-libc package. For the code in this repo to compile, using the included makefile, options are: a) Modify to use an ATmega328; or b) Manually install the libatmega328pb.a, iom328pb.h and crtatmega328pb.o files; or c) Use platformio instead of the makefile.

The completed grinder_timer_rev2.

Rev1

This is a programmable timer tethered to a Rancilio Rocky coffee grinder. The Rocky is a "dumb" grinder and electrically very simple. Basically it's an ac motor with an on/off switch and a momentary push-button to grind. This project adds an electronic timer so that repeatable grind quantities can be produced without having to stand over the grinder. Features:

  • Four programmable presets (A, B, C or D) stored in EEPROM to survive powercycle.
  • Left/Right buttons to select preset.
  • Up/Down buttons to adjust grind duration for selected preset (0.25s increments up to 60s).
  • Grind button to initiate grind and begin countdown timer.
  • Oled display (128x64) to show preset menu and countdown timer.
  • Aluminium enclosure.
  • Single cable (3-core) tether to grinder for power and control.

The code, schematic and PCB layout are all included here on gitlab. More information can be found at my project page.

Proudly mentioned at hackaday.com.

The completed grinder_timer.

Parts

35
QtyValueFootprintReferences
20.1uFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC2, C3
21.8kResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR1, R2
210kResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR3, R5
2LOGOgrinder_timer:oshw_logo_10mmG***, G***
110uFCapacitor_SMD:C_Elec_5x5.4C4
1150Resistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR4
117pFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC6
11P1Sgrinder_timer:transformer_bigT1
132.768kHzCrystal:Crystal_SMD_Abracon_ABS25-4Pin_8.0x3.8mmY1
14148Diode_SMD:D_SOD-123D1
1470uFCapacitor_SMD:C_Elec_8x10.2C1
15VPackage_TO_SOT_SMD:SOT-223-3_TabPin2U2
17pFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC5
1ACTIVEgrinder_timer:pcb_tabP3
1ATmega328PB-AUPackage_QFP:TQFP-32_7x7mm_P0.8mmU1
1AVR-ISP-6Connector_IDC:IDC-Header_2x03_P2.54mm_VerticalJ1
1DOWNgrinder_timer:tactS2
1D_BridgeDiode_SMD:Diode_Bridge_Vishay_DFSB1
1GRINDgrinder_timer:tact_ledS5
1LEFTgrinder_timer:tactS3
1LOGOgrinder_timer:clews_logo_10mmG***
1LOGOgrinder_timer:clews_logo_30mmG***
1MOTORgrinder_timer:pcb_tabP1
1NEUTRALgrinder_timer:pcb_tabP2
1NPNPackage_TO_SOT_SMD:SOT-223-3_TabPin2Q1
1OLEDgrinder_timer:oledO1
1RESETButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmS0
1RIGHTgrinder_timer:tactS4
1RelayRelay_THT:Relay_SPDT_Finder_36.11K1
1SERIALConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ2
1UPgrinder_timer:tactS1

Questions

How big is the Grinder timer PCB?

It measures 75 × 120 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Grinder timer use?

35 parts, built around the ATMEGA328PB-AU. 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 Grinder timer KiCad files?

From the Clewsy/grinder_timer repository on GitHub, at the commit this page was made from: the board is hardware/pcb/grinder_timer.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Grinder timer design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers78 × 130 mmLofence, the printed circuit board in 3D

    Lofence

    kiu/lofence

    LoFence is a LoRaWAN capable IoT electric fence monitoring system running on the The Things Network.

    65 parts142MIT
  • 2 layers102 × 81.5 mmC64pico, the printed circuit board in 3D

    C64pico

    silvervest/c64pico

    This is a tiny emulated C64 running on a Raspberry Pi Pico! Full details of the build can be found at https://www.youtube.com/watch?v=hgLhGpbC6E4

    97 parts86
  • 2 layers58.4 × 34.3 mmSIO2SD, the printed circuit board in 3D

    SIO2SD

    c0pperdragon/SIO2SD

    An Arduino-based floppy drive emulator for the atari 8 bit computers.

    26 parts83
  • 2 layers200 × 100 mmRegalodilara, the printed circuit board in 3D

    Regalodilara

    valerionew/very-good-uc-doggos

    A special graduation present for a special friend. Six microcontrollers in one devboard

    91 parts50
  • 2 layers88.9 × 50.8 mmBLDC BIZ CARD, the printed circuit board in 3D

    BLDC BIZ CARD

    ageppert/Brushless-Motor-Biz-Card

    A brushless motor and driver built in to a business card form-factor for learning and experimenting!

    82 parts38MIT
  • 2 layers52.1 × 37.4 mmConsolizer, the printed circuit board in 3D

    Consolizer

    orangeglo/PS2PSP

    Board to connect a PS2 controller to a PSP 2000 (PSP Consolizer)

    25 parts38GPL-3.0
  • 2 layers67.3 × 54 mmJeep radio, the printed circuit board in 3D

    Jeep radio

    latonita/jeep-canbus

    Projects around CAN BUS in Chrysler Jeep - VES enabler, other small features

    52 parts30MIT
  • 2 layers91.4 × 92.5 mmNano328PB, the printed circuit board in 3D

    Nano328PB

    tomaskovacik/hw

    HW (pcb, schematics etc) for my projects

    450 parts27