Pop Your Way To A Fresh Roast Coffee

The preparation and consumption of coffee has become something of an art from in our community, with many people going to extravagant lengths to achieve the perfect cup. [Eric Sorensen] was keen to roast his own beans, but given the price of a dedicated roaster, instead made his own using a hot air popcorn popper.

The story unfolds in several parts, and starts with disabling the thermal cutout on the popper to be replaced with thermal sensors. An Arduino controls both the fan and the heating coil to regulate and vary the roasting temperature over time. Perhaps it’s the software and user interface that most makes this project shine, with a graphical interface on a 320 by 240 pixel touch screen, and a graphing profile interface more reminiscent of a reflow oven than a kitchen appliance. The whole thing is neatly packed away with its power supply in a slimline case, and while we’re no bean experts, we appreciate the uniform brown of the finished product.

Coffee roasters have appeared here numerous times over the years. One of the more recent was this wobble disk design.

17 thoughts on “Pop Your Way To A Fresh Roast Coffee

  1. The type of SSR is only rated to 5A as used. To get the listed current rating (if above 5A) it needs to be attached to an appropriately sized heat sink. This mistake is very common in DIY projects.

    1. This is Eric S. I used that SSR because I had it laying around. It’s under spec for this project, but I don’t think it limiting the current down to 5A.

      I don’t see anything in the spec for this SSR about a 5A limitation. I can see thermal issues developing with a 1.6V drop at the output (16W@10A) — but nothing specific that would limit it to 5A, specifically. I’ve been roasting outside and temperatures are low here. The fan for the motor driver also moves some air across the SSR. Maybe that combination has helped prevent thermal overload in my usage.

      Either way, I’ll give this part of the design some more scrutiny and re-check the temperature of the SSR during operation. I recommended on my website to use a 25A SSR and may add some additional guidance about thermal management based on what I find. Thanks for the note!

      1. Don’t use a SSR at all, it’s a waste of energy if you’re just switching a resistive load. Also semiconductors like to go short-circuit on thermal overload, which might leave the heater permanently on if the SSR fails. An electromechanical relay would be the better choice here, it can do the same task with <1W.

        1. I think an SSR is a reasonable choice, since he’s doing PWM. A relay would be pretty noisy, which would probably interfere with the temperature readings (and nearby wifi). Since a roast doesn’t last that long, using an SSR that’s underspec’d is likely fine for this case.

          Agreed that the SSR failing on is a potential failure mode we should worry about. If the roaster is only operated attended, then I don’t think this is a big deal, as long as the operator knows that this is a possibility – they can just unplug it, and the thermal fuse should also catch it.

    1. I put a pan with an inch of water at the outflow so the chaff sticks to the water and doesn’t fly all over the place. pour the water and chaff into your garden or other plants which need watering when done.

  2. I’m not a safety Karen, but if you bypass the cutoff, be sure not to exceed the thermal capacity of the hardware (i.e. try to avoid unplanned, premature recycling of the plastic housing 😉)

    1. I’ve found that the metal heat chamber and its housing can withstand the higher heat but it’s the deflector/cover which is stressed and might start sagging a bit at the end of the roast. It’s a 15 minute job to roast so not something I walk away from and if gentle with the top when removing it’ll last a good long while.

    2. I don’t want to be a safety Karen either, but PLEASE make sure you are attaching it to your hot air popper and NOT your Mr. Fusion!
      Besides, you won’t get any coffee from it, nor get your beans back!

  3. Very nice setup and if you want it to last a while then ramp up and ramp down the heater instead of full On/Off at start and finish. Just a few seconds should work. The thermal shock of instant On/Off will eventually cause the heating element(s) to break if you don’t ease the temp up/down.

    On my machine, I found full air and heat is required for first 3 minutes to dry the beans because the beans are so heavy and laden with moisture. From there, the fan control does a good job of regulating temperature and keeping the beans moving through first and 2nd crack(french roast). My machine only has air speed control and it’s done with a household light dimmer to a HVAC 120-24VAC transformer with a fullwave bridge rectifier driving the DC fan motor.

  4. This is nice to see. One of the next projects I have on my list is to control my SR800 coffee roaster. Sometimes I think I ought to just buy a corn popper and mod that instead of hacking the SR800. For something as important as roasting coffee it would make sense to have a second unit as a backup.

  5. I love coffee and love the idea here. It must smell fantastic when that roaster is done.

    For the state diagram, I wouldn’t put events between states. I would put the reason for the state change between them: Ie it’s not FAN ON that makes you jump from State 0 to State 1, it’s another event a timer elapsed an input changed state, etc. To me, the action happens in the state, the event causes you to change states.

    In that way you can more easily identify potential problems or incomplete design.

    1. Eric here. :) Thanks for kind words and the tips! I think the state diagram is already setup the way you describe, but it isn’t very clear. Each of the state transitions is related to a specific button press. e.g. “Fan On” actually means “Fan Button On”. That isn’t clear at all the way it is written though!

      As you mentioned, this made it easy to validate the design. I could exercise all of the different transitions and verify the correct mode was being entered. I had a typo in my state machine code and found the error in about 5 minutes after implementation.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.