Proof of
Principle Computer Controlled
Poppery Coffee Roaster
Description
of the coffee roaster:
(updated
8/29/03)
This coffee roaster is a
functioning computer controlled roaster
capable of precise roasting profiles.
Some of the equipment used in it is a bit excessive, so I
consider it a work in progress, -- lets call it a proof of
principle computer controlled roaster -- but the plan is to
eventually replace all of the interfacing elements with pieces
that are of reasonable cost, and general availability. The
roaster itself is a West Bend Poppery I ( the original style).
Pictures below show the computer and roaster set up on my
back porch. Click on the pictures for 200K, better
detailed, versions. Some of the design aspects are
described below, and the programming code is available.
A more detailed discussion of the control algorithms that I have used
can be found in the profiles pages
The gear in the picture are:
The
Roaster
Thermometry
The
Computer
Equipment
List
Code
The
roaster: A
West Bend Poppery I. It has a copper sleeve for a chamber
extension, with a funnel on top of that. These extensions,
combined with running the fan with 140+ Volts, lets me roast 180
grams of coffee at a time The fan is run off the blue
variac on the floor (directly in line with the leftmost table
leg). -- Hooray for Ebay! The new length of
the roast chamber required that the plastic shroud be
extended -- that's been done by wrapping aluminum sheet metal
wrapping around the plastic roast cover. It still blows chaff
out pretty well, as seen by the pile of it in the wire basket.
A 4 inch square glass plate (on top of the popper) makes a nice
replacement for the popcorn kernel tray, it's much easier to see
through.
Thermometry
comes from two thermocouples in the roaster. One measures
the heater air temperature, by virtue of its placement between
the internal heating coil and the roast chamber. It enters
the roaster in the back along with the power cords, and enters the
chamber through a hole drilled in the aluminum housing. The
second, bean sensing thermometer snakes in where the chaff blows
out, and runs down inside the roast chamber to within
1.5 inches of the bottom. The roaster is tilted to get
a consistent bean circulation direction, this helps roast uniformity
and aids thermometry. The thermocouples are directly read
by the digital volt-meters seen to the left of the computer on the
table. I actually have four thermocouple in the rig: each
of the TC's in the roaster has a reverse connected TC attached
to it, This helps to eliminate stray thermoelectric voltages,
and is, I'm told, the most accurate way to use a thermocouple.
Because of the reverse junction thermocouples, the voltmeters
sense the difference between room temperature and the temperature of
the sensor. The use of high quality voltmeters here, with low
DC offsets, is important since the TC's generate only 22uV or so of
signal per degree F.
The Computer:
This is an old pentium that was unused.
It has
way more than enough horsepower to control the roaster. It
runs DOS. I used the freely available Borlad Turbo-C 2.01
compiler (see http://community.borland.com/museum/),
and a bit of freeware code that allows direct access to the system
clock, (PCTIMER,
I used version 1.3) in order to get better timing accuracy than
the DOS-standard 18 msec. The control program divides the roast into a number of segments, each of which
has its own pre-planned heater air temperature ramp rate. Within
each segment, the computer regulates the amount of time that
the heater is on, in order to reach the planned heater air
temp. This ON time is calculated with a PID approach twice a second and
is implemented every 1/6 second. (There some were loop
stability problems measuring once per second, believe it or
not ..) The output goes to a d-to-a (barely visible under the
bench the roaster is on) which switches a SSR that cycles power on
and off to he heater coil. The SSR is mounted on the side of the
Big Variac -- I used to use this for manual control, but now it just
gives me 140 Volts for the SSR input.
I believe that an
important element of my ability to control the roast is how I
switch between segments. The decision of when to move onto the next
"segment" is determined by one of: time, heater air temp, or measured
bean temp. I was very worried that a regular ramp/soak, i.e. just
controlling and measuring the heater -- where the end of a segment
would be determined independent of the bean temp -- would do a poor
job of adjusting for different beans, changes in humidity or
ambient temperature, air flow adjustments, and so on. And I
was also worried that the control loop would be unstable if
the input were instead just the bean temperature. This would
certainly be the case in the WBI with its large non-coffee heat
capacity.
So instead I went for a very
flexible control algorithm. I have eleven segments in my implementation of Jim Schulman's modified
HotTop style profile: 4 of these switch on bean
temperature, two on time alone, and the rest make specific net
increases or decreases in the heater air temperature. Each
section has a specific ramp for the heater air target temperature, and
has regular PID control of the heater air temperature within that
segment. Roasts are very-very repeatable, even for widely
different ambient temperatures. I was once able to roast at
17 degrees F ambient temperature.
Equipment
List:
An old Pentium machine
Running DOS, with an ebay
purchased National Instruments GPIB interface card
Two HP34401 digital voltmeters with GPIB interface (these are
expensive, but are borrowed)
-- these read the thermocouple voltages
directly.
A very old gpib digital-to-analog converter to run the SSR (not nearly
as expensive, but still sort of costly)
A Solid State Relay for controlling the heater duty cycle
(Grainger - part
number 5Z438 about $20.00)
One variac is passive - it just makes a 140 V source for the SSR
controlled heater. (A boost transformer would be better here)
The other variac is currently unused.
A Velleman 8003 dimmer is used to operate the fan motor under computer
control. Driving the inductive load of the motor with the triac
based controller in this $20 kit took a bit of tweaking. Prudent
placement of resistors to squelch switching voltages, and a 200 ohm
resistor in parallel with the motor load seems to have done the trick.
If anyone can steer me to a design for a pulse width modulated AC
power source that can be DC controlled, please drop me a line!
I plan to make the code that I use available here, once I learn how
make a link for this. -- In the meantime, send email if you
want a copy.
Thanks for visiting, Tom G.
Please make comments or
suggestions to: Toms-roaster@columbus.rr.com
return to coffee profiles page
I get my green coffee from: