I like espresso coffee.
Espresso coffee is best made from very recently ground beans, that were fairly recently roasted. Ground seconds before from beans roasted within the previous 3 days seems best.
To achieve this, you obviously need to grind your own beans. There are a number of people that will roast-to-order and post beans to you, so you get them within a couple of days of roasting - I've had good service from Glo Coffee, and since their stock is all fair trade beans, they ease the conscience somewhat.
However, an alternative is to buy green, unroasted, beans and roast them yourself. This page is about doing just that, or rather, using that as an excuse to play with microcontrollers.
There's lots of stuff on the internet about coffee, and quite a bit about roasting your own, probably because geeks like coffee, and whatever geeks like is found in abundance on the internet. I'll just mention the classic reference (at least, what kicked me off) Sweet Maria's. Go and look at that for a more balanced overview.
The most widely favoured technique seems to be the use of a hot air popcorn popper machine (though there's a certain raw elegance to the dogbowl & blowtorch approach). I thought I'd give this a bash, and this is how I overly complicated the process.
Actually, on the coffee front I don't know very much, so for coffee advice you really ought to go elsewhere. I'd recommend the newsgroup alt.coffee as a good place to see just how seriously people can take making a drink.
In america, they only have 110 volts. This seems to translate to lower-heat poppers (though there's no technical reason why it should). In good old blighty, where we have the full 240V (well, other than the pesky continentals downgrading us to 230), insufficient heat in your popper does not seem to be a problem. Indeed, with an unmodified popper I can go straight through first and second crack and be into the charred stage within 3 minutes of switch-on.
This means that while some american sites might talk about recirculating warm air, and restricting air flow to get the temperature up, with a UK popper on a UK supply, you're more likely to want to slow everything down.
The main mod, therefore, is a way to run the fan and the heater element separately, so you can have the fan flat-out blowing air, but reign back the heater element. There are easy ways to do this (separate the suppies, flick the heater switch on-and-off manually while leaving the fan on), and complex ways. Obviously, I went complex.
I wouldn't actually advocate building this if you just want to roast coffee. If you buy the parts new, it'll probably cost you twice what just buying a domestic coffee roaster would cost (even before adding the cost of buying a PIC programmer, and teh time cost of doing it all). Of course, if you want to do it for entertainment, I hope what I've put here is useful.
The popper of choice is the Prima PCM001. Don't try this with the duck (you'll know it if you see it), and I doubt any of the kid-safe low-voltage ones are up to it either. You need more power on tap for coffee than for popcorn, I think.
In addition to the PCM001, there's a PCM001S and a PCM002. I believe the PCM001S is just a PCM001 with a shiny aluminium sheet wrapped round it. If that's the case, I think it will work just as well as a PCM001. The PCM002 is internally identical to a PCM001, and will work as well. There are minor reasons for favouring an '001, given the choice, but nothing serious. I have a side-by-side comparison if you want the full story. (Incidently, for making popcorn, I prefer the '002). That page also explains an easy way to get past the anti-tamper screws in the poppers.
There's lots of poppers on ebay. At the time of writing, the going rate seems to be 2 or 3 quid, but with postage you'll end up at the 8 to 10 mark. Poppers other than Prima will presumably work, but I've never tried. It's a good idea to have plenty of power (the Primas are 1200W) and some people reckon it essential to have the sort that blow air tangentially in from the sides, rather than up through holes at the bottom. I have no comment - the Primas I've used blow it in tangentially.
Mark 1 didn't have any sensors, so it was simply a case of trial-and-error to develop a programme that gave the desired beam temperatures profiles. The current version (mark 2) has thermocouples to measure the air temperature being fed into the beans, and the temperature in amongst the beans themselves.
The popper is dismantled and rewired so that the motor and heater element can be separately controlled. I kept the switch on the side of the popper in the circuit with the heater element, so I can always cut the heat, regardless of what the controller thinks it is doing. This is also useful because leakage through the SSR tends to let the heater coil warm up a bit even when it's supposedly off, so I can cool slightly faster by physically switching off the coil.
I actually feed switched DC to the motor, but the bridge rectifier is still in place just 'cos it was easier to leave it than take it out. The voltage I supply is higher than it ran on before modification (even with the bridge in place), so it's not a problem (and might even be beneficial for motor life).
The 'before' to accompany this 'after' schematic is on the popper comparison page.
I found a 7-core cable that fitted the popper's existing mains cable
strain-relief grommet, so there was no need for any butchery of the popper
casing, and it all remains nice and tidy. Mains voltage to the heater element
is supplied on cores 1 and 2, with 24V for the fan motor on cores 3 and 4.
Front and back views.
On the front, the lights at the left show power to the unit, power to the popper heater element below that, and the power of the two fan controls to the right of that. The fans switch at a high enough frequency that their lights just look like they dim or brighten according to fan speed. At the moment, I only have one fan, but the PIC had two PWM modules, so I set up both.
Next across is a press-switch and knob (except it's just a shaft at the moment). This is the mode switch and general input knob. In the mode it's at in the picture turning the knob will change to a different program to run, pressing the switch will set the one currently displayed (number 3, 'Roast 1') running, and pressing the switch and holding it down for more than a second will switch to program mode where you define the steps making up the programs.
Next there's a display to tell you what's going on. It's back-lit under control of the processor, so it can flash to alert the user to important messages.
This is a typical 'running' display. The top line is reporting that the
current run
was started 1 minute 5 seconds ago, the heater element is at 900 (out of
1000, so 90% power), and the primary fan is at 15 (out of 15). The second
line says that this
is step number 4, it is named "Roast 2", and that there is 85 seconds
remaining in this step. (Steps have up to 8 character names, but if you use
all 8, there's only space to report up to 999 seconds remaining, so it uses
+++ to indicate 'many'!)
The buttons underneath the display are mainly used in program mode, but in standby mode they jump you forward and back in big steps through the defined programs.
Finally there's a column of indicator lights. They're all under control of the processor, and are mainly used at the moment for debugging. The bottom one toggles every time the internal clock rolls over (once per second), the next one up lights when the unit is transmitting to an attached terminal or PC, the others are currently unused. In future I might think of something more useful for them to do.
On the back there's a red reset switch (resets the processor just like the
reset switch on a PC). The main power switch is beside that, and the mains
inlet below them. The grey cable supplies power to the popper. The SSR
switching the heater element is bolted onto the back panel (aluminium) and the
panel is supplemented by an extra heatsink on the outside. I think it's good
for about 10 amps like this, which is lots more than the popper needs.
Ready to run (or it would be if I put something in place to catch the
chaff).
This was the first mark 1, when I monitored temperatures with a thermometer
stuck through the lid, but
it was never very satisfactory. Mark 2 has internal thermocouples and probes,
which is much better. The thermometer is gone and there's a couple of green
wires from the roaster to the control unit.
Well, the real results are as shown at the top of the page, which is beans
from the first and second runs. However, that's not really geeky enough, so
there's a page of temperature graphs for the
first half-dozen roasting runs of the mark 1.
This was the sixth trial-and-error roast, and
gave me beans pretty
much how I wanted - a glossy dark roast.
Mark 2 added thermocouples that could detect bean temperature, so the
roasting profile can be programmed in terms of temperatures. I also wrote the
software so that you can have ramps and soaks for the temperatures.
This isn't actually a roast, it's the unit
running with an empty chamber, but it shows the sort of profile that can be
programmed. This graph is generated from commentary data fed from the roaster
to an attached PC via a serial port I built in. There's one data point per
second (which is also the calculation interval for temperature control).
The program was 10 seconds just running the fan, with zero heat, then a ramp to 150C at 2 minutes, a ramp to 250C at 10 minutes, a one minute soak at 250C then a cool. The lines on the graph are:
At this stage, the unit is simply running with proportional control to the
heater element, hence the steady offset between desired and achieved
temperature that increases at higher temperatures. However, I'm pleased with
how well it works on this graph. I might implement PI or PID in future.
This is the same program, but with beans
in the chamber. There's a very slight change in that I limited the heat input
to 80% during the first (warm-up) phase. That was mainly to check it did what
it was supposed to, rather than for any good bean-roasting reason.
I think it's interesting to note how much more variable the inlet
temperature is to maintain a similarly accurate bean temperature
in this graph. I assume the fluctuations are to do with pockets of beans at
higher or lower than the average temperature moving around in the chamber.
That's pure speculation though. Also note that putting beans in means less
power to achieve the same temperature - which is the converse of the well
known phenomenon that if you want an unmodified popper to run hotter, use a
bigger batch of beans.
And finally, this is an actual roast that
I'm now using to make coffee with. Basically, compared to my earliest
attempts at a roast program above, I've just accelerated the early
stages slightly and slowed the later stage quite a bit. First crack is
happening around 6 minutes, at the point where it slows everything down, and
second crack happens just before teh temperature stops ramping. This gives me
a dark roast that starts to show oil after about 12 hours. It's a much better
roast than that at the top of teh page, but I've nopt got round to
photographing teh beans...
For a darker or lighter roast I keep the same profile to the 6 minutes / 215C point, then adjust teh ramp to get to a different temperature (250C for very dark, 230C for rather lighter) at 10 minutes for the soak.
It's interesting to note the difference between this graph and teh one above - in teh first two minutes they are both heating 80g of teh same beans (from teh same 2kg batch of green) to teh same temperature profile, runninmg in basically teh same ambient conditions, yet teh heat input and air inlet temperatures to achieve the same profile are quite different.
I've experimented with slowing it even further - doubling the time for
every step, so it gets to 240C at 20 minutes (at which point the beans are as
dark as I want, so I took off teh soak). I didn't taste much difference
between teh 12-minute and teh 20-minute roast, so I've gone back to 12 just
because it's about 8 minutes more convenient.
Not sure what to do next. Maybe PID control. It could record run
data internally as well as just spewing it out (there's a spare i2c eeprom
on the main board). Also,
I have a 24x8 character RS232 controlled LCD display (ebay) sitting
in my spares box, crying
out to be hooked up to the RS232 output for real-time display of all the
parameters (rather than just the abbreviated summary I can fit on the 16x2 on
the front of the controller) even when out of reach of a PC.
back to Ian's contents page
back to www.astounding.org.uk top contents
page
To comment on anything (please do) email ian@astounding.org.uk