Profile Library Analysis

Discuss roast levels and profiles for espresso, equipment for roasting coffee.
Supporter ♡

#1: Post by Esteve »

I am working on a tool to automate the creation of profiles through parameters. Bringing something similar to GDM528 Inlet Profile Calculator to a simple website tool.

The idea is you give certain parameters ( total roast time, ending temperature, ...) and it produces a number of points that can be used as automated profile control.

But before that I thought it would be interesting to analyze profiles in the wild, and see if we can find any generalization.

I have started with IKAWA home profile library, but if anyone knows other sources I am happy to incorporate it to the analysis. I have downloaded all the profiles here: ... -reference

The library contains 88 inlet profiles. I have parsed them to come with this table (available in excel if anyone wants to play with it).
['name', 'total_duration', 'auc', 'max_temp', 'max_time', 'end_on_max',
       'num_peaks', 'max_fanpower', 'roast_level', 'plus_count', 'roast_plus',
       'type_of_drink', 'decaf', 'time', 'temp', 'time_fan', 'power_fan',
       'ramp_time', 'ramp_temp', 'num_temp_points', 'fit_lin_quand_auc_error']
Extracting the roast level we can do some simple analysis, given those are inlet profiles I think AUC gives a good idea of both time and temperatures. Analysis results are quite similar by total time and max temperatures.

Now I try to generalize a function that describes the roast with some intuitive parameters. A lot of IKAWA's profiles have a ramp to a certain temperature, then a curve that peaks towards the end. This allows you to write profiles as a function of :
- Warm-up ramp, defined with a time and temperature. For example after 40s be at 170. This tends to be linear and is part of the drying process.
- Roast part defined with total duration, peak temperature and time to peak.

With these you achieve a smoth ROR, since the parabolic function is derivable, and can adjust the peak time around FC to remove power at that point.

If I fit all the profiles to these curves I can model about a third of all IKAWA profiles with a small error. In the graph we can see the fit error.

And some examples of what different AUC errors mean, from smaller to larger errors:

GDM528's excel function maps really well to a ramp and a logistic growth function. Which will also produce very smoth RORs. However the IKAWA library is not a good fit, as most profiles are more parabolic. On the tool I am planning to also have this option.

Do you have any other function ideas?
★ Helpful


#2: Post by GDM528 »


Pleasantly surprised that a third of IKAWA's profiles match the Profile Calculator.

IKAWA's curated profiles have (at least what seems to me) a narrative about how the profile was adapted to the nuances of their greens. That often results in a pretty intense thermal spike early in the roast, followed by some other weird shenanigans later on. This punches my cynicism button really hard, but I admit I'd probably do the same thing if I were working there.

The Profile Calculator was modeled from drum roasting curves after their turning point. A stepped profile like the one shown here IKAWA Home - profiles could be a way to show some love to the FreshRoast people out there. Not much of an algorithm to a stepped profile however - it's mostly about durations.

Something to think about when calculating AUC: the Arrhenius equation. I think Artisan treats temperature linearly when calculating AUC, but the chemistry going on during all that applied heat is reacting to temperature in a non-linear fashion. So, 10 seconds at 220C could be significantly more consequential than 11 seconds at 200C. Artisan dodges some (but not all of) this by splitting the AUC into zones.