Extraction · written up April 2026
Gaggiuino: PID and profiling on a Gaggia Classic Pro
A Gaggia Classic Pro is a single-boiler espresso machine whose stock temperature control is a thermostat: it swings by several degrees and nothing records where in that swing a given shot was pulled. Gaggiuino is an open-source controller that replaces the internals with closed-loop temperature control and pressure profiling.
The question
How much of a shot's repeatability is the machine and how much is the controller in it, once the same beans run both ways?
The question needs the same beans run two ways, once on the stock machine and once under a pressure profile. Half of that experiment already exists and had never been counted. 448 shots are archived between 2026-02-20 and 2026-09-04, 429 of them naming this machine and none naming another, and every one of them was pulled before any profiled shot exists. The whole log is the control arm.
The baseline, as recorded
| Quantity | n | Median | Middle half | SD | Full range |
|---|---|---|---|---|---|
| Shot time s | 442 | 30.0 | 28.0 to 33.0 | 7.21 | 14.9 to 90.0 |
| Brew ratio yield ÷ dose | 430 | 2.04 | 2.00 to 2.18 | 0.253 | 0.17 to 3.29 |
| Dose g | 447 | 18.1 | 17.8 to 20.1 | 2.16 | 12.0 to 20.8 |
| Yield g | 430 | 40.0 | 36.0 to 41.0 | 6.14 | 3.0 to 62.0 |
Read the middle-half column rather than the standard deviation. Half of all logged shots land within 5 seconds of each other and within 0.18 of a brew ratio, which for a thermostat machine with a hand-loaded basket is tighter than the machine deserves credit for. The standard deviations are larger, 7.21 s and 0.253, because the full range holds a 90 second pull and a ratio of 0.17. Those are aborted or mis-logged shots. They are in the table because they are in the log.
This is a baseline and not a result. It says what the machine plus one operator plus one grinder produced over 196 days. It cannot separate the machine's contribution from the operator's, and the number that would matter, the same spread measured again with profiling live, does not exist yet.
Where the build stands
The kit is a Gaggiuino v4 complete kit, ordered 2026-02-07 for 421 USD and delivered 2026-02-24. On 2026-02-27 an inventory check against the expected list of 9 subsystems found all 9 present, the brew pressure sensor and fittings and the load-cell scale kit among them. The controller is installed. The dimmer and the pressure transducer are not yet wired, so no profiled shot exists.
What can be seen meanwhile
Three pulls on this machine, filmed up through the dispersion screen. They are what dial-in looks like from underneath the basket, which is the part of espresso that is usually described and rarely shown.
-
Run 01 First flow off one side, in two streams, before the fan closes
-
Run 02 Dark seams open across the screen, and the palest finish of the three
-
Run 03 The fan even from the start, one stream, still amber at the cut
What it does not settle
No clip or photograph on this page is a measurement of the controller: there is no logged temperature trace here and no pressure trace at all.
The baseline table is a pre-profiling spread and nothing more. Comparing it to a post-profiling spread is the experiment; until the second half exists, how much of the tightness in that table is the machine and how much is the operator is exactly as open as the question says.
- Where it stands
- The controller is in the chassis. The dimmer and pressure-transducer wiring is unfinished, so no profiled shot yet.
- Next
- Finish the dimmer + pressure-transducer wiring; pull the first profiled extraction.
- Tools
- Gaggia Classic Pro · Gaggiuino · ESP32