How I automated my Coffee Grinder
Making Coffee and what influences it
There are not many better things than a good espresso to start your day... Ok, before I lose myself in talking about coffee (or espresso), its brewing, and what I've learned over the last five years about it, I will take a shortcut.
Coffee is complex! Lots of factors influence whether you have a cup of delicious coffee or just dark, hot water with a bitter taste. In the end, you'll want to have as many factors as constant as possible. Only in this way you can change single parameters and check whether it improves or worsens your coffee. That's the foundation of scientific work but it's also useful for brewing coffee.
One important factor is the coffee grounds. There are lots of factors, like how fine you grind, but also the amount you use and how much force you use to compact the ground in your espresso machine and so on. In the end we want to use the same grind settings and the same amount for each shot we pull from our machines.
Coffee grinders in general...
Fixing the grind setting is the smaller problem. You'll dial it in on your grinder and will only change it when you try new beans. The amount of coffee grounds you'll use depends on which technique you are using for brewing, but generally it's the easiest way to simply weigh your grounded beans. You can either weigh the beans before grinding and grind them all or grind some, weigh, grind some more and so on...
So called „automatic grinders“ shorten this process. They'll usually grind „dose wise“, normally based on a timer. That leaves some variation for the amount, but this can usually be neglected. I am aware of only one grinder that actually weighs the grinded beans, all other grinders use timers.
I'm owning a small electric grinder for some time now, precisely a Lelit PL043 MMI. It's a nice little grinder, doing a good job especially in regards of its low price (coffee gear often is really expensive). Sadly this is not an automatic grinder, so you'll have to stop grinding manually (and weigh afterwards).
As I'm a morning grouch and was annoyed by weighing the grounds in the morning, an automation was needed. The little Lelit needed to be transformed into an automatic grinder.
Checking the status quo
I've already expected that the inside of this grinder is not very complex, before actually opening the case. One switch on the side to turn the grinder on and off and a single push switch for the motor which grinds the beans. Of course both are connected to mains voltage, so having pushed/closed both switches will get the motor running. It looks somewhat like the following.
Although there are not many components in place, space is at a premium in the grinder. The metal body tightly encloses the motor so there's not much space left for the upcoming modifications.
Transformation to an automatic grinder
The grinder will be outfitted with a microcontroller from the Arduino ecosystem. The already existent touch switch will start a „grind program“, where the Arduino will hold the circuit closed through a relais.
Another touch switch allows the user to switch between three different modes (the grind programs: single dose - double dose - manual), two LEDs will show the selected mode.
Single and double dose are timed programs, the manual mode will engage the motor for a quarter second, so holding on to the switch will engange a somewhat „continous grinding“.
The supply voltage for the microcontroller, the relais and anything else will be provided by a small power supply which transforms main voltage into 5 V DC. Due to the limited space inside of the grinder, the power supply will sit on the backside of the grinder like a backpack.
The baseplate of the mill will also be equipped with two touch switches which can be used to increase or decrease the grinding time in the selected program. The selected values will be saved in the EEPROM of the Arduino and loaded when powering the grinder. This way, you can always work with the previous settings right from the start.
The circuit diagram for those modifications looks somewhat like the following, I have left out various resistors for a better overview.
Some more pictures from the transformation will follow.
First tests of the circuit on a breadboard.
As already mentioned: Very little space in the grinder itself. Cable management was improved later on.
Switches for setting the timer, seated in the baseplate of the grinder.
Small power supply mounted like a backpack on the back of the grinder. Provides power for the Arduino etc.
Final result: LEDs for displaying the selected mode, metal switch to change the operation mode.
The modification works great. I was worried that my timed control might be too unprecice and the amount of grounded beans could vary a lot. After some testing, I found that the result differs +/- 0.3 gram per grind run, which is totally fine for me.
I also like that the modification is not very obvious. The metal switch and the somewhat dimmed LEDs almost look like they were always in place. Only the power supply is a little downside for the optics, but as my grinder sits quite closely to the wall this is not a big deal either for me.
As I only had to buy the power supply, all the other parts were laying around from other projects, this modification was relative cheap with around 8 Euro.
I have uploaded the source code to Gitlab, in case anybody is interested in doing a similar build or wants to use parts of my code.
And: If you are not interested in tinkering with coffee grinders: Lelit has a very similar grinder with an automatic mode: It's called Lelit PL044 MMT. Besides that there are also lots of other great automatic grinders available on the market.
Ich bin gelernter Mediengestalter, studierter Druck- und Medientechniker und leidenschaftlicher Tüftler und Bastler.
Beruflich beschäftige ich mich mit der digitalen Transformation von Unternehmen, sowie der Automatisierung von Unternehmensprozessen, in der Druck- und Medienbranche. Mehr dazu findet sich im Lebenslauf.
Privat interessieren mich Kaffee(maschinen), Themen rund um Webentwicklung, das Internet im Allgemeinen und Speziellen und vieles, vieles mehr.
Ich freue mich auf Feedback per E-Mail unter firstname.lastname@example.org, einen Euro für die Kaffeekasse oder etwas von meiner Amazon Wunschliste.