From Roast 120 to Roast 148: When the Gene Café Project Became a Machine-State Story

The last proper website update was around Roast 120.

At that point, the Coffee | One Roast at a Time project was already well beyond the earliest “what happens if I roast this coffee?” stage. I had learned enough to know that the Gene Café CBR-301 needed to be understood on its own terms: not as a miniature commercial drum roaster, but as a small hot-air glass-chamber roaster with its own repeatable signals, limitations, and quirks.

The core working ideas were already forming:

  • total roast time matters
  • weight loss is one of the most useful validation numbers
  • first crack is helpful, but not always reliable
  • cold and warm starts behave differently
  • the app graph is useful, but easy to overread
  • the machine’s own thermal behaviour matters

But from Roast 120 to Roast 148, the project changed again.

It moved from logging and interpretation into something more structured: roast profiles, the Green Bean Ledger, CrackWatch, RoastSignal, and finally a machine-history audit.

And then, during Roast 148, the machine failed again.

The short version

Since Roast 120, the project has moved through several connected developments:

  • the Green Bean Ledger became the central roast and stock record
  • CrackWatch became a way to review candidate crack activity from audio
  • RoastSignal became a Raspberry Pi-based roast-side recorder
  • manual event markers were added for live roast events
  • profile development began in a more deliberate way
  • the Arcadia Huila Omni Profile Set 01 was started
  • Roast 148 suffered an apparent heater-system failure
  • the machine history had to be split into phases

The current ledger view shows around 152 roast records and about 36.4 kg of green coffee roasted or logged.

For a commercial roaster, that is tiny. For a home Gene Café learning project, it is enough to start seeing patterns.

It is also enough to start seeing when the machine itself changes.

The project after Roast 120

By Roast 120, the basic learning pattern was already clear:

Roast coffee. Record what happened. Compare weight loss. Drink it. Adjust.

That still matters.

But the problem was no longer just individual roasts. The bigger challenge was continuity.

Which coffee was this?
Which green lot did it come from?
Was it a cold start or warm start?
What was the batch size?
What was the weight loss?
Was first crack actually heard, or only suspected?
Was the machine in the same state as before?
Did the roast taste good later?

That is where the project started to need proper structure.

The Green Bean Ledger became the backbone

The Green Bean Ledger began as a stock and roast-record problem.

I needed a better way to know what green coffee I had, what had been roasted, what was left, and which roast belonged to which lot.

But it has become more than that.

It now helps connect:

  • green coffee lots
  • roast numbers
  • input and output weights
  • weight loss
  • supplier and origin details
  • process and variety
  • roast notes
  • profile attempts
  • later tasting results
  • label printing
  • origin summaries

That matters because profile work depends on reliable context.

A roast profile is not just a time and temperature. On the Gene Café, it is a relationship between coffee, batch size, start state, machine behaviour, endpoint, weight loss, colour, and cup result.

Without a ledger, too much of that lives in memory.

And memory is not enough once the roast count gets this high.

CrackWatch: listening carefully, not pretending certainty

First crack has always been one of the awkward Gene Café questions.

Some coffees crack clearly. Some do not. Some naturals are quiet. Some roasts produce isolated pops that may or may not be meaningful. The machine itself is noisy: fan, motor, chamber movement, chaff, and app beeps all live in the same soundscape.

So CrackWatch was never intended to be a magic first-crack detector.

It is better described as a candidate crack-activity review tool.

It looks at roast audio and tries to identify windows of possible crack-like activity. Those windows then have to be compared with the Gene Café data, app markers, manual notes, and the final cup.

That distinction matters.

A candidate crack window is useful evidence. It is not absolute truth.

That is very much the project’s style: observe carefully, claim cautiously, and keep learning.

RoastSignal: the roast-side recorder

The next step was RoastSignal.

RoastSignal is a Raspberry Pi-based passive recorder. It does not control the Gene Café. It does not connect electrically to the roaster. It simply watches and records.

The current direction includes:

  • audio recording during the roast
  • physical event buttons
  • event CSV and JSONL logs
  • a small OLED status display
  • start/cooling markers
  • later analysis through CrackWatch

In normal use, RoastSignal supports crack review and roast-profile development.

During Roast 148, it did something else.

It acted like a black box recorder.

The first deliberate profile set

The first deliberate Gene Café profile-development set was named:

Arcadia Huila Omni Profile Set 01

The goal was not to create a perfect commercial-style roast profile.

The goal was to find a practical Gene Café-specific profile window for one coffee: Arcadia Huila Washed / Regional Jess.

The planned structure was:

  1. cold baseline
  2. warm omni candidate
  3. warm lighter boundary
  4. warm fuller boundary

This was not meant to be four identical repeats. It was a profile-window test.

The language of the profile was Gene Café language:

  • 250 g batch
  • start temperature
  • 250°C target
  • time to 200°C, 230°C, 245°C, 250°C
  • candidate crack activity
  • cooling time
  • weight loss
  • later DiFluid A1 colour
  • later Aiden / espresso / milk results

Roasts 146 and 147 were the disciplined anchors.

Roast 148 was meant to be the warm lighter-boundary roast.

Instead, Roast 148 became the heater-failure record.

Roast 148: the failure roast

Roast 148 was part of the Arcadia Huila Omni Profile Set 01.

It was a 250 g warm-start roast, intended as the lighter boundary for the profile window.

The Gene Café data shows the machine reached approximately 245°C around 7:43. It briefly held around that area, then the temperature began to fall sharply. It did not continue normally to 249°C or 250°C.

The RoastSignal recording captured a low-frequency buzzer/fizz-like sound around WAV time 08:00. Mapped against the RoastSignal start marker, that is roughly roast time 7:52 — just after the 245°C peak and at the start of the sustained temperature collapse.

I am not claiming that the audio proves exactly which component failed.

It may be the heater element. It may be a connector, wiring, thermal protection, control output, airflow issue, or something else in the heater system.

But the timing matters.

For the project record, Roast 148 is now classified as:

Heater-system failure affected. Exclude from normal profile evidence. Include as machine-failure evidence.

The machine phases now matter

This is the part I did not expect when I started the Gene Café project.

The machine can no longer be treated as one continuous unchanged system.

The project now has to recognise machine phases:

  1. original heater phase
  2. first heater-related failure
  3. interim / mismatched heater phase
  4. corrected / restored heater phase
  5. Roast 148 heater-system failure
  6. future post-repair or replacement phase

This matters because a roast profile developed in one machine state may not transfer cleanly to another.

That does not make the profile work pointless.

It makes machine state part of the profile.

That is annoying, but it is also honest.

What the project has learned since Roast 120

The biggest learning since Roast 120 is not just about any one coffee.

It is that the Gene Café CBR-301 can support meaningful roast profiling, but only if the profile language matches the machine.

For this roaster, the useful profile language is not a perfect curve.

It is more like:

  • batch size
  • start state
  • set temperature
  • time to key milestones
  • fan/stir behaviour
  • candidate crack evidence
  • cooling time
  • weight loss
  • colour reading
  • cup result
  • machine phase

That is the actual grammar of the Gene Café.

Where this leaves the project

I am not roasting further on this machine until the failure is assessed.

Roasts 146 and 147 may still be useful profile anchors if their data checks out.

Roast 148 is not a normal roast-profile result.

Roast 149 is paused.

The next step is not simply “send another heater,” at least not for me. The full heater system needs to be understood: heater element, connectors, terminals, wiring loom, thermal cutoff, control output, airflow, and whether previous heater-state changes affected later reliability.

From the project side, the work continues:

  • Green Bean Ledger remains the core record
  • CrackWatch remains the cautious audio-review tool
  • RoastSignal remains the roast-side recorder
  • Gene Café profile development remains valid
  • machine state becomes a first-class variable

The uncomfortable conclusion

The Gene Café CBR-301 has taught me a lot.

It has produced good coffee. It has made profile development feel possible. It has also shown me that a home roaster is not just a neutral box in the corner. It has a state, a history, and sometimes a failure signature.

That is now part of the Coffee | One Roast at a Time record.

Not as a rant.

Not as a takedown.

As evidence.

The project is still one roast at a time.

Roast 148 just happened to be the one where the machine became the story.