fig 03

This project originated years ago in Portland, Oregon, when my architect son Mike handed me a cup of locally roasted coffee, saying, “Here, Dad, you’ll like this.”

Up to that day I’d never drunk an entire cup of coffee. I even survived my stint in the Navy without coffee (barely). So naturally I was shocked that Mike would even offer me a cup, but I took it out of politeness, mostly.

Guess what? It was delicious. Times change, tastes change, coffee’s very different from place to place. Who knows what caused me to suddenly enjoy coffee? Oh, yeah: cream and sugar.

On my trip back to North Carolina, I determined that great coffee = fresh coffee, duh, and a big step toward achieving that would be to roast my own. I even considered growing the beans. (Don’t laugh — check it out.)

fig 01

Anyway, after much sophisticated research (Googling home roasting coffee) and many mostly unsuccessful attempts, a decent small-batch roaster finally emerged. It eventually found its way into Volume 08 of Make: magazine, as the Nirvana Machine, an easy-to-build, easy-to-use home roaster. It had — still has — two big advantages over others in the market: it’s easy to see the beans while they’re roasting and it’s portable. I’ve used it for years without modification.

However, there was always this lingering, increasingly urgent desire to improve it. The roaster requires considerable intervention between consecutive batches: stopping the roasting by turning off the heat, dumping the beans, cooling the beans, then re-loading the basket and setting the temperature again on its little propane camp stove.

Refining the Goal

Over the last few months, I refined a new goal: come up with a cheap, easy-to-make, set-and-forget continuous coffee roaster. So I did. Several, many, and they all failed in one way or the other — some quite spectacularly (mostly the “forget” part).

Ideally, continuous coffee roasters expose every surface of every bean, of a given variety, to consistent (though controllable) heat and time cycles. Professional roasters come very close to doing this; I never did (if you know how do this, email me). At this point I could have decided that this would be a big-time fail, throw out those black beans, cut my losses, and moved on.

To what? Another completely different project or a souped-up variant of the Nirvana Machine? Here’s my compromise: a hybrid which can continuously roast small batches, rechristened “A Coffee Mess.”

Roasting on the new machine still demands attention, but that’s not a bad thing. Coffee varieties roast with varying temperature and time profiles, so it’s prudent to keep an eye on the beans while they’re roasting.

Though, the rest of the process — dumping, re-loading and re-starting the roast — is now automatic: just touch a switch when the beans are roasted and a microprocessor takes over.

Project Steps


Rather than build a whole new roaster, I started with the Nirvana Machine and “just” let the rotating bean basket move away from the heat, dump the beans into a cooling tray, reload the basket, and return it to its roasting position again. If you’re thinking about emulating this semi-automatic roaster, you may want to consider starting with the Nirvana Machine’s bean basket.

fig 04

Roasting is done with the basket’s shaft (its spin-axis) at about 45° to the horizontal. Beans tumble well, and you can see how they’re doing. As shown above, beans start green, then turn yellowish, then tannish, then light brown, then dark brown, then black, then — never mind. For most coffee, I like to stop roasting precariously close to the last stage, shortly after the second crack begins. Your mileage will most likely vary.

fig 05The other basket positions were pretty obvious: horizontal for dumping the beans and vertical for loading them. The easiest way to do this was to move the basket through an arc. The arc starts at the roasting position (45°), then moves 135° to the horizontal dumping position. After pausing there for a few seconds, it moves backwards to the vertical loading position, stays there a bit, then continues its backward travel to the roasting position and stops.

fig 06

The new machine uses three motors (labeled A, B and C, see image above). In addition to the basket-spinning motor (A), there are two more: to swing the arc (B) and to load the beans (C). The workhorse of the Nirvana Machine is an alkaline battery-powered Black and Decker (B&D) screwdriver, and Amazon’s still giving ’em away (OK, they cost $9.73 each, including 4 alkaline AA batteries). This amazingly robust little motor is geared down to deliver decent torque at a reasonable speed. It was a no-brainer to put two more of these jewels to work.

Because of the pauses and necessity to control three separate motors, a microprocessor would be needed to automate these tasks. I happened to have a Parallax HomeWork Board (at this writing, available on eBay for about $24) on hand, but an Arduino would work fine. Timing could even be controlled by chips, resistors and capacitors, but let’s just do all that in the software, shall we?

Each screwdriver needs some sort of bracket that holds a forward or reverse button in; they won’t run otherwise. I also modded all three by replacing their batteries with two wires soldered to the battery terminals and ran the wires through small holes in each battery box — eventually to connect to a variable-voltage power supply.


The basket, shaft, screwdriver (motor A), shaft pivots, supports, hardware, etc. needs to pivot 135° as one piece (let’s call it the basket support) about a point while the screwdriver is running. The pivoting could be accomplished with two nails pivoting in V’s cut into the tops of wood columns, but that would depend on twisting wires to last a long time.

To avoid that issue, I settled on a two-brass-machine-screws-and-alligator-clips approach. Hey, it works, and it’s, um, cheap. The pivot screws, turning in two copper V’s, also carry power to the bean-basket motor.

fig 07

I mounted the pivot columns to an old cabinet door which became the machine’s base. Since I knew how much space the propane stove and its wind shroud took up on the Nirvana Machine, I mounted the pivot columns, with their basket support and basket, tightly to the base. This positioned the basket above the propane burner, and let everything else fall into place around that. I also added a wooden stop at the basket end of the support so that, in roasting position, the basket would be suspended just above the burner. The stop also holds two limit switches. Please don’t ask me why two.

What wasn’t so simple was the gears. To swing everything through a 135° arc requires some torque and relatively low speed. To get the speed way down, a large gear would need to be mounted rigidly to one side of the basket support with its center lined up with the two pivot screws.

The smaller driving gear would be turned by motor B. I considered both spur and worm gears. Sparing you the trial and, mostly, error experiments with various gears I had on hand (I have a lot of stuff on hand, just ask my wife), I ultimately wound up mounting a large worm gear on the screwdriver. But I had no large meshing gear; I would have to make one. Yay!

fig 08

Turns out the big ol’ plastic worm gear I found is pretty forgiving and doesn’t really need a close-tolerance mating gear to work just fine. Measuring the worm as carefully as possible, I laid out a matching 6″ diameter, 96-tooth gear with AutoSketch 9 then printed it actual size. The layout included the all-important center of the gear.

I stuck the printed pattern to a piece of ¼” clear acrylic and cut out the gear — carefully! — with a band saw with a fine tooth bladed . If you try this, don’t mis-cut even one tooth; the gears just won’t mate for very long, if at all. Luckily, I needed “only” about 60 teeth. A few small files and lots of patience help. I also drilled a 1/16″ marker hole in the center.

I screwed the acrylic gear to the basket support. To ease the load on the gearing, I boxed in some lead fishing sinker counterweights on the other end of the pivot, balancing the load of the bean basket about the pivoting screws. The gears are best shown below.

fig 09

Many more trials and errors later, I’d cobbled up aluminum and wood mounting pieces for the worm-drive screwdriver (motor B). The basket now swings 135°.

Since the B&D screwdrivers are designed to run on four AA batteries, I made a quick power supply to vary voltage from about 1.25V to 6V (the motors run fine on 3V, as did the Nirvana Machine). See the schematic below.

fig 10


One major task remained: loading the green beans into their basket when it’s vertical on its return-to-roasting trip. Another B&D screwdriver (motor C) was called into action. How could a cheap electric screwdriver repeatedly and reliably move a measured quantity of beans? I spent almost a week, off and on, on this one task. Think, man. How can beans be more or less precisely moved? Conveyor belt? Push, pull, drag, blow, pick up, and put down? How are bean-like things moved now? Finally, I stumbled on grain moving machinery which uses huge augers to keep the stuff flowing from place to place. Could this technique be used and where would I find a suitable small (and cheap) auger?

Googling small cheap augers, I found a few drill bits which seemed to be up to the task, but most were not small and definitely not cheap. More Googling found Sephra, a chocolate fountain manufacturer! And guess what moves the chocolate from the bottom of the fountain to the top? That’s right, an 11″-long, 1½”-diameter plastic auger and its matching clear plastic cylinder. It was just $20 + shipping. Cheaper than auger drill bits and way easier to modify.

It was downhill from there. Next, I found a couple more gears from my motley collection, mounted them on the auger shaft and screwdriver chuck, and fastened the screwdriver and auger together. Then, I firmly (sort of) balanced the whole shebang in the air so the end of the auger would clear the top of the passing basket. All I needed was a nice big hopper to hold plenty of green beans. Piece o’ cake.

Not. My first hopper didn’t work. Neither did the second through thirty-eighth. Various funnels didn’t work. On about every fourth load, a renegade bean would get caught between the hopper outlet hole and the top of the auger. On my 39th (more or less) try, I finally solved that one by slotting the top of the auger’s cylinder and adding a cute li’l red plastic hinged flap to hold back as many beans as possible.

fig 11b
fig 11a

When the basket in its horizontal position dumps the roasted beans, it sits there spinning a couple seconds to ensure that it empties completely before returning to the roasting position. I quickly cool the beans with a desk fan while the next batch is loading and roasting.

A nice batch of beans.
A nice batch of beans.


The last mechanical task was to fashion a wind shroud around the basket in roasting position. Made from aluminum flashing which comes in a roll 10″ wide by 10′ long, one side must be partially open to always clear the bean basket. It mounts to the base with three PVC-tubing legs which slide over three short dowels in the a swing-out platform. The propane cylinder is also located with dowels on the same platform.


Once the machine is turned on, the bean basket spins continuously, driven by motor A.

The arc-swinging motor (B) needed to be electrically reversible and programmed to run either way. In early experimental stages, I used a DPDT switch to reverse that motor. I still use it for testing, but its function is automated with an H-bridge using a pair of SPDT relays and transistors (see schematic above). Its “forward” motion begins when I press an SPST momentary-on (dump/cool) switch that sends a high signal (+5VDC) to a HomeWork Board pin programmed as an input.

From then on, software and limit switches control which motors run in what direction and for how long. Here’s the cycle: Once manually triggered, the continuously rotating basket travels completely through its 135° arc, ending horizontally, where it dumps the roasted beans. After a short pause, motor B returns the basket to load the next batch of green beans. It again pauses for a few seconds, then resumes its reverse travel to the roasting position and stops.

I used both normally open and normally closed SPST “microswitches” to sense horizontal, vertical, and roasting positions.

The screwdriver (motor C) that rotates the chocolate-fountain auger turns on when the basket is vertical, but only on its return trip to its roasting position. After loading green beans for a few seconds, the HomeWork Board turns it off. The auger spills about a cup of green beans if the hopper is kept full (also your job!) — important to control roasting consistency. Too many beans, and an overloaded basket will spill beans as they expand, and also occasionally burn a few — not good. Too few beans makes more work than necessary.


fig 15 annotated

I added a few microcontroller-bypassing switches and pots to help troubleshoot the machine. They include master and bean-basket motor switches and potentiometers for controlling basket and auger rotation speeds. There is also an auger-priming switch and the forward-reverse test switch. Mostly just for fun, I added a 1940s-vintage meter which helps to precisely control basket-rotation speed. Usually, only a quick setup is all that’s necessary at the beginning of a roasting session.


Could it be simpler? Well, yeah, you could add the beans yourself after the basket returns to its 45° angle roasting position, but automating the bean loading was one of the most fun (read challenging) parts to design and build. Of course, you might want to just build the original Nirvana Machine.

Could it be more sophisticated? Well, yeah, add a relay-controlled cooling fan, an infrared temperature or light reflectivity sensor for the beans, and make a bigger bean hopper!

But you should still monitor the roasting process.

As an 1885 edition of a Philomathean Sociey autograph book says, “May your coffee and slanders against you be alike — without grounds.”

Lessons in Designing and Building Anything
1. Collect stuff to build with for your entire life
2. Think carefully and differently
3. Espouse a “build and improve” philosophy
4. Don’t spend forever planning
5. Do something — even if it turns out to be wrong
6. Be prepared to cheerfully fail — many times
7. Be prepared to scale back your goals somewhat, at least temporarily

Lessons in Coffee Roasting
1. Be safe, roast coffee outdoors, stay with it always
2. Keep a fire extinguisher handy
3. Nobody likes coffee made from burned beans