Can we not control a Roast by Bean ROR?

So, the data is all there. The ROR, the bean temp, the control of power and fans, etc. Could someone not theoretically get the bullet to be controlled via PID with the ROR being the controlling factor?

Couldn’t you (theoretically) then set a downward curve and then have the bullet control it from there? Isn’t that the holy grail? The declining ROR?

Tech notes: prob have to only sample IBTS as an average over 5-10 seconds and use that data.

This might take some playing to get it to work, but anyone have ideas HOW?

1 Like

This should be possible through Artisan software. I have a Coffee Crafters Artisan 3e fluid bed air roaster with PID control added to the burner knob via an RC servo. I can draw a curve in Artisan and as long as I don’t use too small or too large a batch, I get highly repeatable roasts. Since getting a Bullet about a month ago, I am struggling. I want to roast to a profile, but I don’t have direct control. Setting preheat temp, fan, drum, and power is an indirect way to profile roast. Its like trying to walk a dog by its tail.

The issue with PID control of a drum roaster is thermal momentum. On the 3e there is almost no momentum, so burner changes quickly show up in the bean temp curve and RoR. Even then, an 8 oz batch benefits from slightly different PID values than a 2 lb batch (my current max given my voltage issues here in the Houston area). That said, I’ve noticed that changes on the Bullet seem to show up in the curve very quickly, so perhaps PID control would work. Artisan can also use lookahead, which just uses the set value from the background target curve a given number of seconds in the future.

In any case, it would be nice to have an official means of using Artisan with the Bullet to be able to explore PID control.


That will be impossible.

Due to one major Factor. Lag.

Lag in reading the data, Lag in the machine responding to the changes and then lag some more in doing a feedback loop.

Maybe if you did the same roast a couple of times you might get a chance of an AI driven correction factor where it can respond to the possible outcomes.

1 Like

Reinforcement learning might be able to do this, but it would require hundreds of thousands of roasts and then since each bean is different, it would still be off. Still, the Bullet does not appear to have the thermal momentum of heavier roasters, so it might be possible to do normal PID control. I have noticed that some changes in fan and power have a nearly immediate effect in the roast curve and RoR.

Isn’t that the holy grail? The declining ROR?

That depends on whose theory you subscribe to. Yes, Scott Rao has advocated declining ROR for years but others (Rob Hoos, Morten Munchow) take a less dogmatic view on ROR and emphasize other factors.


Munchow definitely downplays the importance of RoR, since it is derived from the bean/probe temp curve. I don’t know if there have been any controlled experiments on the importance of a linearly declining curve. However, time to first crack, development time, drop temp (and color) are definitely important. So far after 15 or so roasts I’ve not been able to hit my desired roast profiles on the Bullet. I typically use a 5min to yellow, 9 to first crack and then for medium roasts draw out development time to 430 F. I seem to hit yellow before 5 minutes and so far I often then hit first crack way too late or way too early. This is following Munchow’s advice of setting a simple recipe and letting it run so that I can change one variable the next time. In contrast, on my 3e with PID control of the burner, I draw the curve and the roaster follows it, barring any huge deviations in batch size, loft height, and power drops in our house’s electrical supply.

1 Like

Welp… Aillio is trying it with the AiO and guess where that learning data is coming from? :wink:

1 Like

Just to add to @john_l 's reply, a while back @bab told me about Sweet Maria’s Julio roasting on the Bullet using the heat soak method and won 3rd place in a coffee competition (Bruce might have the full story) and that profile is hardly a declining RoR.

1 Like

That is an extremely bizarre roast curve. I would expect it to be baked. Any idea what the competition was?

Here is a link to Sweet Maria’s announcment about Julio’s award. (2019)

Sweet maria’s has a similar bean available now, but it is a dry process. Julio’s award was for a honey processed bean.

Golden Bean website

That is an extremely bizarre roast curve. I would expect it to be baked. Any idea what the competition was?

A bake-off? HAR HAR

I’ll show myself out.

Seriously though it’s one wack roasting curve


Todd, on the Artisan PID setup, what input(s) feed into the controller? Just BT from a standard thermocouple probe? If so, what size and type?

Just curious about how it works.

I’m using the stock thermocouple that came with my 3e along with this add-on kit:

This uses only the bean temp probe. Once PID settings are dialed in for each batch size, it works well. I find that I can only go up to 2 lbs using the PID. If I try to do more than that (or the max size of 3 lbs) the PID cannot get to the set value curve. Its possible that different PID values would work, but so far I don’t know of anyone who has found them. That said, the PID still does ok with a 3lb batch, I just want a tighter fit to my background profile curve.

Here is an example of a recent 2lb roast. You can barely see the background curve because the roast curve follows it so well. Note that first crack is very close to what I’ve set on the background curve. Note also the nice RoR. The green line at the bottom of the graph shows burner setting from 0 to 100.

For contrast, here is one of the better 3lb roasts, but note the fluctuations from the background curve, and the bigger oscillations of the RoR.

Now compare those to this Bullet roast of the La Morena shown in the first graph above. I had to drop this earlier than I wanted because RoR was approaching 0. First crack is near the desired time, but I don’t know how to keep that time and then prevent RoR from zeroing out so that I can extend development time. With my 3e, I just change the background curve to extend development, Analyse the curve to check the RoR and adjust other key points to get the curve and RoR that I want, then roast.

I suspect that I need to keep F3, instead of changing to F4. Note that once F4 kicked in, the RoR dropped. Of course, F4 came on just as first crack hit. However, my next roast of these beans will be F3 all the way to the end.

I tried to do a playback of Julio’s roast profile and it was a disaster. I had planned on running it untouched to see what the results are after cupping.
I used 540g of an Ethiopian that I had. Ambient temp was 80F.
I did the preheat at 365.
My bullet runs way hotter than the one that Julio was using. At the 2 minute mark, I was around 50F hotter than Julio’s roast and that was before the power got turned up to P9.
I took manual control and tried to save the roast so as not to waste the beans.

Then I tried doing an OVERLAY of Julio’s roast and even then I had a hard time at the beginning with too much power. I had to reduce the power to P2 and increased the air to F5.
Then I gradually increased the power hovering between F5 and F6 and reduced the air as needed to try to control the rate of rise.
Here is a link to the Overlay roast:

When I am roasting, I don’t pay as much attention to the declining rate of rise as I do the actual graph of the IBTS Temp.

Julio’s roast has a long linear (flat, not curved) IBTS temperature rise until he is near the end of his roast.

I ended up dropping at ~18.5 minutes and 398F. Agtron=79
It will be very interesting to cup this one.

I wish there was a way to use the analyzer with different beans. I am unable to overlay my roast on top of Julio’s

I was kind of able to overlay the roasts using PhotoShop

The lighter lines are the lines from my roast.

1 Like

The comments on the Sweet Maria’s page posted above mentions that Julio probably used a Bullet prior to V2 power upgrade. It is a cool experiment though.

1 Like

Yes let us know how both roasts cups.

1 Like

I would probably try extending the P7 and/or P6.

1 Like

Very cool, thanks for sharing that! Wonder if the time constant is simply getting too long with those larger batches, making overshoot difficult to avoid.

1 Like

That and older firmware; the more recent changes to allow for higher max power weren’t around for Julio’s roast.

1 Like