Roasting
Prediction
The roaster's own model, fitted from its roasts: bean temperature two minutes ahead, first crack and DROP, RoR crash and flick warnings, and how good it is.
Roastwarden learns how your roaster heats from your own completed roasts and uses that model to look ahead during a roast: where bean temperature (BT) will be in one and two minutes, when first crack and DROP should come, and whether the rate of rise (RoR) is about to crash, flick or stall. It runs in the server, it says why it predicts what it does, and it keeps score of itself on every roast, against the plain projection the scope already draws.
What the model is
BT rises with the heater's share over the fan, through a short lag, and falls by a curve in BT that your roasts teach it: the losses, drying, the reactions near first crack. With no roasts yet it starts from the virtual roaster's physics; a few roasts outweigh that. It uses the newest 30 roasts with a CHARGE, a DROP at least two minutes later, and heater and fan in their telemetry (a roast imported with BT alone is left out), and refits by itself after a roast.
Seeing it on the Roast page
- Switch it on in the scope's series toggles under the chart: BT model. It is off by default and remembered per browser.
- The line is the model's BT with its 90 % band, from CHARGE + 30 s to DROP, updated every 5 s. The dashed BT → projection stays beside it.
- The readout above the chart then shows the model's BT in 1:00 and 2:00 with the band, first crack and DROP with their ranges, when the heater will reach 100 %, and any RoR warning ("BT stall ~9:05"). Hover it for the reason: the plan it assumed and how many roasts the model came from.
What it assumes the roaster will do next:
| The roaster is | The model predicts with |
|---|---|
| Driven by a profile (Profile drive) | the profile's setpoints for the next minutes, the roaster's PID following them, the fan from the profile if it drives the fan, else held |
| In auto with a setpoint, no drive | that setpoint held |
| In manual | heater and fan held where they are |
First crack is predicted at the BT first crack came at on this roaster: this bean on this profile if there is one, else this profile, else this bean, else every roast. With none marked yet, the profile's own first crack. DROP follows the profile: its auto DROP if it has one, else its development time after first crack, else its drop BT.
RoR warnings and alarms
From DRY end (or BT 160 °C) to DROP the model watches the RoR, both as it is now and as the model expects it in the next two minutes:
| Warning | It means |
|---|---|
| Crash | the RoR falls 8 °C/min or more within a minute, and by at least half |
| Flick | after first crack the RoR rises 2 °C/min above its lowest since, for 20 s |
| Stall | the RoR at 1 °C/min or less for 30 s before DROP, while the plan still wants BT to rise (a setpoint reached and held is not a stall) |
Each warning says what causes it: the heater reaching 100 %, the heater or fan moving, BT passing first crack's temperature, the profile's own RoR.
To be told, add an alarm under Settings → Alarms: RoR crash ahead within, RoR flick ahead within or BT stall ahead within, with how many seconds ahead (up to 120). It fires when two predictions in a row agree. See alarms.
The Model panel
Roasters → the roaster → Overview → Model shows:
- when it was fitted, on how many roasts, and the heater lag it found;
- BT two minutes ahead: the RMS and 90 % error for "Heater and fan as they were" (the model's own quality), "The PID following the plan" (what a drive or a held setpoint shows live), "Heater and fan held" (what manual shows live), and "Today's projection" (what the model has to beat);
- BT settles at heater/fan: where BT stops rising at a few heater and fan values, your roaster's headroom;
- how the live prediction did on the last roasts, with their RoR warnings against what came;
- Refit, to fit it again now.
Limits
- Batch size is not in the model. A charge much larger than your usual heats slower than predicted until roasts of that size are in the fit.
- Fan assist's moves are not planned: the fan is held where it is.
- A heater cut, an emergency stop or your own hand on the heater are not foreseen.
- Above the highest BT your roasts reached, the curve is the starting physics.
- Room temperature, the beans' moisture and the roaster body's warmth are not inputs, so the first roast of a session may differ from the next, and where BT settles is uncertain by several degrees.
From the command line: roast roaster model <roaster> [--fit] for the model and its scores,
roast live for the prediction now and its RoR warnings, roast review <roast> for a roast's
score (command line).