Build a Controllable Coffee Roaster from an Air Popcorn Popper using Arduino

Controllable Coffee Roaster
I have a passion for coffee.  I also have a passion for electrical engineering.  Why not combine them? 

This Instructable describes how I transformed a hot air popcorn popper into a completely controllable coffee roaster!  Follow these instructions to re-purpose and hack your West Bend Poppery Popcorn Popper into this coffee roaster!

The extraction of the complex aromatic and flavor characteristics of a coffee bean is dictated by a roaster’s ability to control a variety of variables that act on a green coffee bean while it is roasting.  Not only must one understand certain audible and visual cues from the beans during the course of the roast, but the roasting apparatus must also react to changes to the fan speed and heater power in order to change the temperature inside of the roasting chamber.  At the same time, the roast logging software must be displaying a graphical summary of the temperature in the chamber versus time, also known as the roasting profile.

This feat often necessitates the purchase of an expensive programmable roaster; but, a modified popcorn popper can rival the functionality of a high-end programmable roaster if adapted with internal temperature sensors, a reactive control system, and the ability for the software to save roasting profiles for later use.  This modified popcorn popper will automatically control the temperature and total roast time based on industry roasting profiles; component costs will remain under $360; and a taste comparison between beans roasted in a modified and unmodified roaster will be completed by an experienced coffee taster.

Upon submission of this Instructable, the roaster has the capabilities of controlling both the power to the heater coil and the speed of the universal AC/DC motor that is used to blow air over the heating coil.  This air is blown into the roasting chamber where thermocouples are sensing and sending temperature information to a microcontroller which is interfaced with a roast logging software called Artisan.  This roast logging software displays the temperature versus time inside of the roasting chamber while also providing functionality to the roaster user to adjust the percentage of power going to the heater coil and the percentage of speed that the fan is spinning.

Controllable Coffee Roaster

Step 1: Identifying Design Goals

Before getting into the hands-on work of the project, I had to identify the features of the coffee roaster that I wanted to implement into the popcorn popper. 

Initial Goals:
– Heater control and fan control to adjust the temperature inside of the chamber.
– Interface with a computer to log the roasting profile.
– Manually control the heater power and fan speed using the computer roasting program
– Ability to save roasting profiles to use for another roast.
– Remain under $500 in total component cost

Future Work:
– PID Control of the Roaster
– Chaff Collection

Why did I choose the West Bend Poppery I?
The Poppery I is a 1500 Watt model.  The Poppery II  is a 1200 Watt model.  The Poppery I uses a universal AC/DC motor, while the Poppery II used a DC brush motor with a bridge rectifier (to convert the AC to DC).  Having the 300 extra Watts will allow this popper to reach higher temperatures and the induction motor of the Poppery I is easier to control with the components chosen for this project!

Step 2: Materials List

Electronic Components:
West Bend Poppery I – 1500 Watt Model! –
Crydom D2425-10 Solid State Relay –
Crydom D2425 Solid State Relay –
Arduino Uno Microcontroller (w/ Serial-USB Cable and DC Power Supply) –
K-Type Thermocouple – Glass Braided –
K-Type Thermocouple – Flexible Probe –
TC4 Roasting Thermocouple Shield – (Kit or Pre-Built) –
Zero Cross Detector –
Terminal Block – 8 Total Connections –
12” jumper wires: 

Electronic Accessories:
Hookup Wire
Wire Connectors
Wire Terminal (Ring)
Soldering Iron
Electrical Tape

Enclosure Components:
Wooden Project Box
Antique Glass Chimney (I found mine in an antique store.  This may be difficult to find.)

Computer Components:
A computer or laptop that is running Windows or MacOS

Step 3: Solder the TC4 Arduino Shield

If you bought the TC4 pre-built, then you can skip this step!  If you bought it as a kit, then keep reading! 

I’m not going to go into how to solder the shield in this Instructable.  Please refer to the links below for tutorials on how to solder through-hole and surface mount components.

The kits require both through-hole and surface mount soldering of components.
Basic Soldering How-To: 
Surface Mount How-To:
You can test the continuity of your solder jobs by following this tutorial:

The kit is provided with instructions on the best way to solder the shield.  The toughest components to solder at the surface mount components, but you can still use a normal soldering iron to solder these in.  There are many tutorials online about how to solder surface mount components.

Once you finish soldering the TC4 shield, we can move on to test the shield!


Step 4: Artisan Roast Logging Software Setup

Now we need to test to make sure that the Arduino/TC4 combination has connectivity to your computer and the Artisan Roast Logging Application.  You can find the main page for the Artisan Roast Logger here: 

There are a variety of roast logging software applications available for free download, but Artisan is currently the only one piece of software that can be configured with the Zero Cross Detector for phase angle control of the popper’s motor (specifics will be covered in a later step, so don’t worry!).  Here are the steps that I followed to download all of the necessary software components for both the logging application and the Arduino sketch.

Step 1: If you don’t already have the Arduino IDE installed, follow through Lesson 1:

Step 2:
Part 1
Now that the Arduino IDE software and USB driver is installed, the aArtisan TC4 “Sketch” file and Arduino TC4 standard library files need to be loaded. This is the software that runs in the Arduino and passes data from the TC4 board to the Artisan application.  Download and extract all of the files from the following: for the Arduino, and download

Part 2
You will need to copy all the library folders in the TC4-StdLib-REL-300 folder (7 total) to the Arduino software Libraries folder location “C:/Program Files/Arduino/Libraries”.

Part 3
Now that the libraries are in place we can now load the aArtisanQ_PID Arduino sketch. Run the Arduino application and make sure the Arduino is selected to what model you have (Arduino Uno in the example)

You can compile and then upload the sketch, as shown in the attached PDF.
Part 4
Now you can download the Artisan application itself:

At the time of writing of this step, the most recent release was:

Download this recent version of Artisan, extract the files, and then open up the application!

This is all you need to do for now.  I’ll cover the configuration of your first roast later in this Instructable.

ArduinoTC4ArtisanSetup_Doc.pdf1 MB 

Step 5: Baseline Coffee Roast (without any control components)

In order to better compare an unmodified popcorn popper to the final, controlled popper, I decided to do some roasting! 

I recommend reading Kenneth Davids’ “Home Coffee Roasting” book:

I purchased my green coffee beans from Sweet Marias.

I used 4 oz. of green beans.
4 US Ounces = ~113 grams = ~0.5 cup of green coffee beans.

Since I’ll be using these beans for tasting, I roasted each batch for 7 minutes, which was between the first and second cracks.  Once the coffee beans are a dark shade of brown, or whenever you stop hearing the first cracking noises, you should stop the roast and pour the freshly roasted beans out.  It is important to have a cookie sheet, colander, or anything that will help to cool down the freshly roasted beans.  This is an incredibly important process.  In warmer environments, you can use a squirt bottle with water to “quench” the roast.

For more specifics on how to roast with an unmodified popcorn popper, visit Sweet Marias’ website to learn more!:

Build a Controllable Coffee Roaster from an Air Popcorn Popper – Step #5(516×290) 18 KB 

Step 6: Current and Voltage Measurements

The designer of the TC4 shield recommends using 25A solid state relays.  I wanted to test the current draw of the heater and the voltage drop across the heater just to confirm it for my own satisfaction. 


I have included photos of the dis-assembly.  Make sure your popper is unplugged!

Begin by removing the bottom plastic housing by removing the screws on the bottom.
There will be one more metal plate.  Remove the two screws from that plate and then the inner wiring will now be exposed.
The two, exposed metal wires, that are going down into the popper, supply the current to the heater.

Current Draw
Measuring current requires that your DMM be connected in series with the current flow to the heating coil.  If you place your leads in parallel, as you would when measuring voltage drop, you will create a massive short circuit, you’ll blow the fuse in your DMM, and the heat may vaporize the wire.  Be Careful not to measure current like you would measure voltage drop!

To measure the current draw, remove one of the heater wires from the screw terminal.  Place one of your multimeter leads or alligator clip onto the heater wire that you disconnected.  Place the other multimeter lead or alligator clip on the other wire.  Plug the popper in and turn the switch on.  I measured about 12 Amps of current.

Voltage Drop
The voltage from a 120V outlet is already, RMS voltage.  Therefore I measured about 108VAC across the heater.  It fluctuated between 108.3 and 108.5, but those fluctuations are due to the inherent transients in the voltage output from a 120VAC outlet.

You could also measure the voltage and resistance across the heater and then apply Ohm’s Law to calculate the current draw.  Learn more about Ohm’s Law here:’s_law

Through my measurements, I concluded that I will need a relay that can switch at least 12A!Controllable Coffee Roaster schematic

Step 7: Choose and Purchase the Solid State Relays (+Theory)

From Wikipedia: A solid state relay (SSR) is an electronic switching device in which a small control signal controls a larger load current or voltage.

Why Use a Solid State Relay?
Solid state relays are popular because they contain no moving parts – which are found in an electromechanical relay.  This means that there is no bouncing or arcing of contacts when the relay switches current to the load.  This gives them a much longer lifespan.  They contain two silicon-controlled rectifiers, in “inverse-parallel”, which switch the load current.  When the input signal from, say an Arduino, is applied, a small amount of current flows from the AC mains through the optical isolator and into the gate of the forward biased silicon-controlled rectifier.  This, in turn, turns on the SCR and allows load current to flow for that half of the AC cycle.  When the polarity of the AC mains reverses, the first SCR turns off and the second one conducts load current for the next half of the AC cycle.  This process repeats until the input voltage is stopped.
The heater and the AC motor need to be controlled by different methods.  Since these are AC loads, we are looking for a solid state relay that uses dual power SCRs (Silicon Controlled Rectifiers) that will allow for more precise switching as the AC waveform crosses the x-axis.

The heater will be controlled by Integral Cycle Control (also known as Burst Fire Control).
Universal AC/DC Motor
The fan will be controlled by Phase Angle Control.
Other Parameters
The SSRs also need to be easily driven by the digital output pins of the Arduino.  The relays described below are reated for 3-32VDC control voltage at 25A.
Since I measured 12A draw from the heater, and the only SSR options (from Crydom) are 10A and 25A, I chose the 25A relay.
You will need the following Solid State Relays:

D2425 (Crydom) –
This solid state relay is a zero-crossing relay, meaning that it only turns on and off at the zero crossing.  This type of relay is very common for heater loads, which is what we’ll be connecting it in line with!

D2425-10 (Crydom) –
This solid state relay, denoted with the suffix, “-10”, utilizes Instant-On Switching.  This means that the The SSR output is activated immediately after applying control voltage.  Consequently, this relay can turn on anywhere along the AC sinusoidal voltage curve. The typical response time is thus less than 1 ms.  This SSR is particularly suitable in applications where a fast response time or phase angle control is desired.  This is the relay that will be in line with the Fan.

Step 8: Purchase (or Build) the Zero Cross Detector

What is a Zero Cross Detector and Why is it Needed?
We are using a random fire SSR (D2425-10) to switch on and off the AC Motor.  This relay is needed to allow us to use phase angle control to control the AC Motor’s speed. Think of it as a lamp dimmer or router speed controller, except that it is being controlled by a software signal (generated by the zero cross detector).

The difference between the D2425-10 and a standard zero cross SSR (D2425) is that the standard D2425 will not turn on except when the AC voltage is passing through zero every 8ms (Period = 1/60Hz and divide by two to get every half period). To control the AC Motor with phase angle control, the D2425-10 SSR needs to be turned on at times when the AC voltage is not zero.

You can purchase a very robust zero cross detector for $19 here:

Read more: Build a Controllable Coffee Roaster from an Air Popcorn Popper

Leave a Comment

Your email address will not be published. Required fields are marked *