
🔥 Skywalker Roaster Controller – Custom Interface with Arduino
🎯 Project Goal
Build a professional-looking, fully functional controller for the Skywalker coffee roaster that integrates seamlessly with Artisan software. The box handles temperature sensing, PID logic, and commands via USB and Bluetooth.

Cos'è il PID e a cosa serve nella tostatura del caffè?
Roasting coffee requires precise temperature control. If the heat rises too fast, the beans can burn. If it’s too slow, they may stay underdeveloped.
That’s where PID comes in.
🔍 PID Explained:
PID stands for Proportional–Integral–Derivative — a smart way to control temperature.
It works like your foot on the gas pedal when trying to keep a car at 50 km/h:
Proporzionale: How far off you are
Integrale: How long you’ve been off
Derivative: How quickly it’s changing
The controller adjusts the heat automatically to keep the roast smooth and stable.
🔌 What is a Hardware PID?
In this project, the PID logic isn’t just a software algorithm running on a PC.
It’s built directly into the Arduino – that’s what we mean by “hardware PID.”
This means:
The roasting profile stays controlled even without a computer.
The Arduino constantly reads the temperature, calculates how much heat is needed, and sends the right signal to the heater.
This is much more responsive and reliable than trying to do it from Artisan alone.
🛠️ Hardware Highlights
Arduino-based firmware
Dual PT100 probes with MAX31865 amplifier boards:
Bean T
– bean temperatureENV T
– chamber temperature
USB-C port for Artisan integration
Debug port (for development/programming)
Metal case with 3D-printed handles
Clearly labeled ports and interfaces

📡 Firmware Functions
The custom Arduino firmware includes:
- 🔧 PID;SV;XXX.XX for setting roast temperature
- 🔁 Real-time PID control via PID_v2 library
- 🌬️ Fan and heater PWM control
- 📉 Smoothed output (smoothedOutput) for stability
- 🔌 Serial over USB + Bluetooth command support
- 📏 Clean parsing via custom LineReader class
📐 3D Design & Assembly
The case was designed from scratch in Fusion 360, including:
- Mounting holes for all components
- Cutouts for USB, GX12, and panel-mount connectors
- Positioning for the Arduino Uno and MAX31865 breakout boards
- Functional hinged lid and 3D-printed handle supports
(Screenshot included from Fusion 360)


🔗 Firmware Source Code
The full firmware is available on my self-hosted GitLab server:
gitlab.farm.14bodhi.com – pid-firmware
🔒 Access is private
Please email me if you’d like access to the repository.