Semi-automated Coffee Roaster




Introduction: Semi-automated Coffee Roaster

About: Hey! I am a library school student, gather skills and knowledge that will help me be a super Librarian and run a Library Makerspace! Some of my favorite things to do include: reading and making great stories!

My husband and I already grind and brew our own coffee at home. Now we want to roast it. I also want to learn how to use an Arduino. I put these two things together to create a Semi-Automated Coffee Roaster.

For this project, I will set up a hot plate and whirley popper to roast my coffee beans, and program the Arduino to tell the motor when to stir the beans and for how long, light LED's to indicate bean roasting or readiness, a buzzer to let me know the roasting is complete, and an LCD to give instructions and count down the time.

This seemed like a lot for someone new to electronics, but I had expert guidance and managed to pull it off. Check it out!

Step 1: Step 1: Gather Your Materials


  • Whirley Popper
  • Hot plate
  • Plywood


  • Arduino Uno or Mega
  • 12V 100rpm DC Motor
  • 2x16 LCD
  • Push Button 2x
  • On/Off Switch
  • Buzzer
  • LED 2x
  • DC 5V Relay Module according to DC motor current
  • 330Ohm Resistor 3x
  • 10K Ohm Resistor 1x
  • 100K Trimpot or Potentiometer
  • 12V DC Adapter for Motor
  • 5V DC Adapter for Arduino and LCD Light
  • Connecting Cables according to need
  • Double-Sided PCD Board according to design

Step 2: Build the Hardware

I built the case for my roaster out of 1/4" plywood.

Sides: 12"x21"


Base, middle, and top: 12"x14"

Step 3: Laser Cut the Control Panel

I designed the control panel in CorelDraw and used the public library's laser cutter to cut and engraved it onto a 14"x5"x1/8" piece of plywood.

Step 4: Build the Case

I put the pieces together with nails and super glue, then spray painted it red, because red is awesome.

Step 5: Relay Module

The motor I used for this project consumes 46mA while not on load. For this reason, I could not directly control the motor from the Arduino because its direct output is 20mA. For more information about the Arduino's output, follow this link:

I designed a 5V relay control circuit using a BC548 transistor to handle over 20mA, but you can buy one ready made if you desire.

Here's how I did it:

Step 6: Buzzer

For the buzzer module:

330Ohm resistor


2 connecting cables

The buzzer positive leg will connect to the Arduino's digital output, and the negative to the resistor and the Arduino's ground.

Step 7: LED Module

Green LED


2 330Ohm resistors

3 connection cables

The positive legs will connect to the Arduino, and the negative to the resistors and Arduino's ground.

Step 8: Make the Motor Run

This diagram shows the connections necessary to run the motor.

Step 9: Energy to the Parts

This diagram shows how to give energy to the LCD, LED's, buzzer, and on/off switch.

Step 10: Program the Arduino

Here's my code:

Step 11: Run a Test

Time to see if it all works! I attached the motor to the rest of the machine with a power supply adapter plug so that after running it, I can pull out the Whirley Popper and empty the roasted beans.

To learn more about the roasting process, check out this great little booklet:

Be the First to Share


    • Origami Speed Challenge

      Origami Speed Challenge
    • Science Fair Challenge

      Science Fair Challenge
    • Make It Modular: Student Design Challenge

      Make It Modular: Student Design Challenge



    4 years ago

    Looks great. What is the weight of your roasting batch using the Whirley Pop?


    4 years ago

    That's neat! I'd love to have one of these but I have a tendency to drink way too much caffine when I've got easy access to a coffee maker. XD