Teaching Machines How to Roast

Brandon Dixon
Split Key Coffee
Published in
4 min readDec 11, 2017
Graphs captured from Split Key Roast

It’s now official, Split Key Roast is now my primary toolset for managing my coffee roasting process. Over the Thanksgiving break, I made significant progress on the core platform and after coming back home, I was able to work out some of the final bugs. I’ve now conducted three successful roasts with the software and love having a system I can use to categorize my notes, feedback and previous roasts.

Platform Overview

Live capture of one of my recent roasts

Besides handling the actual roasting process, here are the main features of the platform and a small bit as to why I coded them up.

Inventory Management — As I begin to buy larger quantities of coffee and fulfill orders, I’ll need an easy way to identify what green coffee I have left. Even with three bags of coffee right now, it takes time to measure each one out as I roast. Not only can I now maintain that inventory in one location, but my roasts also pull from it and keep it updated.

Web Roasting — Being able to roast via a web application means I can begin to do more with the data like search, compare and associate notes to each roast. Having everything in one location speeds up the learning process and means less time managing a log of information. It also means I can do things like live-tweet any roast (follow @splitkeyroast) automatically.

Profiles and Tasting Notes — A key part to the roasting process is tasting the final output and noting what you like or don’t like. These notes help you shape future roasts or aid in profile development. What was previously a pad of paper is now a digital record that I can associate back to individual roasts and easily review. If I really enjoy a roast, I can save it as a profile for future use.

A Few Burnt Beans

Similar to roasting, creating applications can be a bit of trial and error. When you combine the two, you are sure to run into some interesting situations that make for great stories. For most of my development process, I simulated the roaster by replaying mock data into the platform. This let me tweak the data model, graph parameters and make a lot of changes without running the risk of destroying any coffee.

After several tests, I felt like I was ready to test with a live batch of coffee. For most of the process, I was pleasantly surprised to see the same familiar graphs from testing. I encountered a couple of small errors from bad readings from the Hottop roaster, but everything was working great. Past first-crack and nearly 12 minutes in, I decided to drop the coffee — that’s when things got a little scary.

I programmed the drop coffee button to configure the roaster to turn the fan on all the way, turn the heat all the way down, open the hatch door to release the coffee, start the cooling motor, and stop the drum from rotating. After hitting the button, some coffee left the drum, but most of it remained and continued to roast well into 430 degrees causing a bunch of smoke. Opening the hatch door did nothing and I was starting to panic. Then it hit me, the drum rotates the coffee towards the hatch using attached guides. By shutting off the drum, I stopped all movement and the coffee was trapped.

Needless to say, that coffee made its way directly into the trash. More importantly though, the scare reminded me that this wasn’t some casual tool I built for fun — it needed to be taken seriously. Several updates later, the Hottop library I wrote had several safety checks added and a bunch of debugging buttons were brought back into the interface.

What’s Next…

With a working platform, my next plan is to focus on accessibility. Right now, in order to run Split Key Roast, I need tether my laptop to the roaster via USB and host the web application. Instead, what I’d like to do is dedicate a small hardware device that runs my code and is powered directly from the roaster. Having a dedicated device that supports bluetooth and wifi means I will be able to control roasts without the need to have any chords. It also opens up some fun opportunities to explore voice activating commands when roasting.

Beyond the hardware device, I want to build out my web store to sell coffee and link orders directly into Split Key Roast. There’s also a big advantage in creating a coffee catalog that can be used to compare coffees based on their various properties. I previously did this in a project several years ago called GroundTruth, but it could use some updating. Most of all, I am just looking forward to combining my love for creating code with roasting coffee.

--

--

Brandon Dixon
Split Key Coffee

Founder of @BlockadeIO, PDF X-RAY, and @PassiveTotal. Partner and developer for @TheNinjaJobs. VP of Strategy for @RiskIQ. Roaster at @SplitKeyCoffee.