A home coffee roaster you can build yourself.

Modified popcorn popper. ESP32 controller. PID temperature control. Roast profiles. Artisan logging. All open source.

Completed coffee roaster with 3D-printed red enclosure, Nextion display, and popcorn popper roasting chamber

What's in the repo

This isn't just firmware. The repository covers the full build — enclosure, electronics, software, and operating docs.

3D Printing

Enclosure and hardware

Printable case (top, bottom, handle, feet, standoffs), power supply mount, and an OnShape CAD model you can modify. PLA works fine; paint for a finished look.

Bottom of the 3D-printed enclosure
PCB

Custom control board

Eagle schematic and board files for the interface PCB. Hosts an Arduino Nano ESP32, fan speed controller, and JST connectors for the display, thermocouples, and SSR. Order from JLCPCB, PCBWay, or similar.

Custom PCB installed in the enclosure with wiring connected
Firmware

ESP32 control software

State machine for roast lifecycle. PID temperature control. Dual thermocouple monitoring. Profile-based setpoint interpolation. WiFi with WebSocket streaming. OTA updates. REST API.

Artisan roast logging software connected to the roaster
Popper Mod

Roasting chamber

Step-by-step guide to disassemble a 1200W popcorn popper, rewire the heater and fan, remove the stock thermostat, and install a thermocouple in the roasting chamber.

Thermocouple installed in the roasting chamber

How the build works

Four phases — printing, popper mod, assembly, and software setup.

1

Print the enclosure

Print the case parts in PLA. Optionally sand, prime, and paint for a finished appliance look. The 3MF file is in the repo.

2

Modify the popper

Disassemble the popcorn popper. Rewire heater and fan. Remove the bimetallic thermostat strip. Drill and install the thermocouple.

3

Wire and assemble

Mount the PCB, Nextion display, power supply, and SSR in the case. Build the wire harnesses and connect everything.

4

Flash and roast

Upload firmware via USB or OTA. Load Nextion display firmware from SD card. Connect WiFi, create a profile, and go.

Inside the enclosure showing PCB, power supply, SSR, and wiring
Internals
Enclosure opened showing all internal components
Case open
Popper disassembled showing heater and fan motor wiring
Popper wiring
Power supply and solid-state relay mounted in the enclosure
PSU and SSR

Software

The firmware runs on an Arduino Nano ESP32. It includes a touchscreen UI, web interface, and Artisan integration.

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.

Nextion touchscreen

3.5" display shows real-time temps, profile progress, and settings. Start/stop roasts and edit profiles 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.

Parts list

Everything needed for the build. Most parts ship from Amazon and AliExpress.

PartSource
1200W Popcorn PopperAmazon
Arduino Nano ESP32Amazon
Nextion 3.5" DisplayAliExpress · Amazon
Custom PCB (Rev I)Eagle files in repo
24V Power SupplyAmazon
DC-DC Buck ConverterAmazon
Solid-State Relay (SSR-40DA)AliExpress
K-Type Thermocouple + MAX6675Amazon
Motor Dimmer ModuleAliExpress
Power Inlet SocketAmazon
JST XH2.54 Connector KitAmazon
Silicone Wire (22ga + 16ga)AliExpress

Get started

Clone the repo, print the case, order the PCB, and start building.