Coffee grinder controlled with Imp

Rancilio Rocky is a nice coffee grinder that I use mainly for grinding my Espresso beans. The grinder is “manual” and it grinds coffee as long as I keep the grinding-button pressed.
More expencise and professional coffee grinders have timers making dosing more accurate as each espresso cup get the same amount of coffee.

To solve this I replaced my grinders hardwired on/off switches with Imp and few Solid State Relays and now my coffee grinder is software controlled by Imp.

I can set the dose (=grinding time) from my mobile and the grinder has the same appearance as the normal grinder.

Now it is grinding equal doses for each cup and ofcourse its also storing the grinding times (=doses) to if I ever want to analyse my coffee consumption :slight_smile:

Attached few pics. First one is the web UI and second from the grinder after modifications. (You can’t see any visible changes.)

This type of thing is what makes the Imp so much fun.

There is no higher pursuit than that of a good cup of coffee :smiley:

@Hugo: true :slight_smile: .

Btw. is there a way to speed up the bootup of Imp?
Can I somehow disable to code updates or make it async? Now it takes about 3 seconds to cold boot imp inside the grinder before it’s operational.

Why does it have to cold boot?
Just let it run. I assume you power it with a small 5VDC USB supply?
It won’t hurt anything to power it up and leave it alone.

Imp is powered by additional power supply cramped inside the grinder and grinders main power switch also switches that power supply on and off.

I’m not worried about leaving the imp on, but power supplies have a tendency to heat up so I prefer it to be totally switched off when I switch off the grinder.

Tried googling furiously, but didn’t find anything. server.disconnect() doesn’t have the desired effect when I’m cold booting.

Here’s the grinder in action:
(First beep indicates imp is operational, second beep means that settings were loaded from agent.)

At cold bootup - no. A cold boot will always attempt to verify the code it has is the latest before running it; this can only take 1s, but it depends on your wireless connectivity & internet connection.

You could just sleep (microamps) and wake on the power switch (ie hook it to pin1 in such a way that you get ~3v there when the main switch is on). You can then kick off a connect attempt in the background (use RETURN_ON_ERROR mode and call connect() with a callback) whilst servicing the very real needs for ground coffee.