Weekend project: DIY Coffee Roaster

An open-source coffee roaster built from a modified popcorn popper, a cheap touchscreen, and a few other things.

V2 coffee roaster hero view

See the roaster in action

A quick look at the hardware and the roasting process.

End-of-roast sequence as the batch finishes and cooling begins.
Pouring the roasted beans.

Everything you need

This project includes hardware BOMs, software, 3D printed parts, and build documentation.

Hardware

Two airflow options

Build it with the stock popper fan and DC speed control, or use the printed ASA fan with a brushless 12 V motor.

V2 roaster in use
Build

Documented assembly flow

The build guide covers printed parts, breakout-board assembly, popper modification, wiring order, and first power-up checks.

V2 enclosure wiring in progress
Firmware

Controller and web tools

The JC4827W543C firmware includes the touchscreen UI, profile editor, debug console, PID workflow, OTA updates, and a REST API.

Roaster debug console
Artisan

External roast logging

Connect the roaster to Artisan over WebSocket for live roast curves, logging, and post-roast analysis.

Artisan connected to the roaster

Read the docs

Use these guides for the hardware build, parts list, firmware workflows, and Artisan setup.

Guide

Build instructions

Step-by-step assembly instructions with printed-part references, breakout-board guidance, wiring details, and build photos.

Open BUILD.md

Guide

Bill of materials

Parts list with Amazon and AliExpress sources, two motor-build variants, and notes for the JC controller wiring and popper conversion.

Open BOM.md

Guide

Firmware workflows

Bootstrap, build, upload, OTA, tests, and runtime interfaces for the JC4827W543C firmware target.

Open firmware README

Guide

Artisan setup

WebSocket logging setup, settings import, screenshots, and first connection steps for Artisan.

Open ARTISAN.md

Thermocouple installed in the roasting chamber
Popper thermocouple install
Perfboard breakout layout for the roaster controller
Perfboard breakout reference
V2 internal wiring in progress
Internal wiring
Completed v2 internal wiring
Completed build

Software

The firmware runs on the JC4827W543C ESP32-S3 display board and is documented separately from the hardware build. The runtime surface includes the touchscreen UI, browser tools, OTA updates, and Artisan-compatible data streaming.

Roast profiles

Define time / temperature / fan setpoints. The firmware interpolates between them during the roast. Profiles are stored on-device and editable from the browser.

PID temperature control

Closed-loop PID keeps the roasting chamber on target. Dual thermocouples monitor chamber and exhaust temperatures.

Integrated touchscreen

The JC4827W543C panel shows real-time temperatures, profile progress, PID workflow screens, and system status directly on the device.

Web interface

Profile editor, debug console, and live status at roaster.local. OTA firmware updates without opening the case.

Artisan integration

Streams roast data over WebSocket to Artisan for real-time curves, logging, and analysis. Config files included.

REST API

Full API for profiles, PID tuning, roast control, and system status. OpenAPI spec in the repo.

Safety

This project controls line voltage and high temperatures. The firmware has safety systems, but understand the risks before building.

Over-temperature cutoff — heater shuts off if chamber temp exceeds safe limits.
Sensor validation — thermocouple faults and implausible readings trigger error state.
Fail-safe defaults — heater OFF, fan ON. Unknown states enter ERROR, not IDLE.
Cooling lockout — can't skip cooling until chamber is below a safe threshold.

Get started

Start with the build guide and BOM, then follow the firmware and Artisan docs as you bring the roaster online.