🔥 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 temperature

    • ENV 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.

Leave a Comment

it_ITItalian