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