# Modifications
**Please remember that any modifications you undertake are entirely at your own discretion. While we aim to offer helpful guidance, we cannot assume responsibility for any resulting damage, injury, or loss. Proceed only if you feel confident in understanding the process and accept the associated risks**
# Common Modifications
Common Mods Easy
- bend off mean chute lip
- 3d printed chute
Med to Hard
- [Artisan Mod ](https://github.com/jmoore52/SkywalkerRoaster)
- Uno R4 comment out the timerinterrupt it's actually not being used
# Belt Drive Drum Mod
[](https://skywiki.coffee/uploads/images/gallery/2024-08/pxl-20240812-084737780-mp.jpg)
Fits with modified electronics box. Quieter than stock RPM controllable via Artisan.
BOM:
Arduino Nano | $6 |
|
Nema 17 34mm Body | $12 | LDO 42STH34 |
Driver 2209 | $7 | 2209 may work with 5160 |
Custom Bracket | $9 | 6061 Alu plate 3mm thick Drilling Required |
20t Pulley | $2 | 6mm bore 6mm wide belt |
60T Pulley | $10 | 20mm Bore 6mm wide belt |
164mm Close Loop Timing Belt | $4 | 164mm GT2 belt |
# Solderless Artisan Installation
[](https://skywiki.coffee/uploads/images/gallery/2024-09/pxl-20240905-213151883-mp.jpg)
BOM | QTY |
[Arduino Nano](https://www.amazon.com/ELEGOO-Pre-soldered-ATmega-Compatible-Arduino/dp/B0D5LYFRQP/ref=sr_1_3?crid=2TDFYR73HMNKV&dib=eyJ2IjoiMSJ9.gA_RBHQKlL9fqee7OwDWKxgWB1jyYqARwwE-oC7y63h6rAT1Z6RtrxAdcsqvU2EPsz3L2ejttfJ4YK0zyL1bUeDmXWm3K09Ehj3T7xyluVV4vUVdAUQknJmJwhB6L0GzUy-NmemTX_QSIYJcZmMZsC8VUC91XHl_Eh03O1y-pL2IhAla40t7W1y7-Xrl3SqeTmZfx22fjGqPoRwAC-JKw6cRoyjxMBQZ3thRJ6aBo0g._F_2zQImJtfWCeBIBmJjQfSUJizSwfhfobD7h50_epo&dib_tag=se&keywords=Arduino+nano&qid=1725571647&sprefix=arduino+nano%2Caps%2C168&sr=8-3) | 1 |
[Arduino Nano Terminal](https://www.amazon.com/HiLetgo-Controller-Expansion-Extension-ATMEGA328P/dp/B073JGV87F/ref=sr_1_3?crid=Q061VEUGXZTB&dib=eyJ2IjoiMSJ9.r4eRcadSVCkEZJ_QNwWcm4fWZJavmiYMZMOJD90aTTikMp-Z0-FV_FVYd5PdlDswhj8V3OTWo3lfWhqvFIDwEkU1kav4r4B2H0Ds6w1KyND8qzTmoT_HoTltX3JOj9G82rc3C4GC6LtV0qzpYYi3pdJJb6Mb8IZnz7bEDEz9DIQBeS5nkjYJ3XZLjg1hQG14mSI7pW_1k2-eCDsCCK-cX-3MEJtyJIY-tPTXOiC-6vM.jehnxcNWGuEOOTK4nSRSNQ3ghJ2I8wyYFN1iAxzZX3Q&dib_tag=se&keywords=nano+terminal+board&qid=1725571586&sprefix=nano+temrinal+boar%2Caps%2C181&sr=8-3) | 1 |
[USB Cable](https://www.amazon.com/Pigtail-Tinning-Equipment-Installed-Replacement/dp/B0CKTSQPG9/ref=sr_1_3?crid=1B1RRDSYYES2V&dib=eyJ2IjoiMSJ9.9-5Kjpjk_cibasv2WHm9iGraPRK_Sx5OFNOvOI5vyhZyH8NLotaJxR0rYDcJFvfXrHu6qnLxCk7WhKshw5tFZBY8SzdsMaBpPZUGXjZJU7J9wp8FXvrN6_QJ7UX5NviHWzX_5ZRHWlSYkSFt58Q6CjGWUwArXdraKxYb0pBUG2z_9LVbWewoBxifDSKaFDzXy8elDdNPTb46uSt93ASZYXW9N8YBkaI244_BG4fNmxA.vuTWvyaLLy0uVAApBfCERDSykRhj1vOkZz4ZIbmDazI&dib_tag=se&keywords=USB+cable+4+wire&qid=1725571701&sprefix=usb+cable+4+wir%2Caps%2C168&sr=8-3) | 1 |
|
|
Follow these instructions:
[Skycommand](https://github.com/jmoore52/SkywalkerRoaster)
[Install Video](https://www.youtube.com/watch?v=7sCwAg7CAzw&t=2s)
[Livestream Install](https://www.youtube.com/live/xFYlgo7vNqE)

# Vented Electronics Enclosure
[](https://skywiki.coffee/uploads/images/gallery/2024-12/image.png)
This 3D printed Enclosure was made by the Discord user LookattheGeeks
File:
[CHIMNEY\_V4.3MF](https://skywiki.coffee/attachments/1)
Installation (partial):
[Nirecue Stream](https://www.youtube.com/live/4oLszfkvquw?si=pBgqSsN7lHm6ZsKW)
# Thermocouple Mod
### **Hardware Components You’ll Need:**
1. **Arduino Nano**
2. **HW-550 Thermocouple (MAX6675) Module**
3. **Jumper Wires**
4. **USB Cable** for Arduino Nano connection
5. [TCSkycommand.ino](https://skywiki.coffee/attachments/2)
[Quick Video Overview](https://youtube.com/live/_3JSB-hutMc?feature=share)
---
### **Step 1: Installing the Arduino IDE**
If you haven’t already installed the **Arduino IDE**, follow these steps:
1. **Download the Arduino IDE** from the official Arduino website.
2. **Install the software** on your computer, following the on-screen instructions for your operating system (Windows/macOS/Linux).
3. Once installed, **open the Arduino IDE**.
---
### **Step 2: Installing the MAX6675 Library**
To interface with the **HW-550 (MAX6675) thermocouple**, you will need the **MAX6675 library**.
1. Open the **Arduino IDE**.
2. Click on **Sketch** > **Include Library** > **Manage Libraries**.
3. In the **Library Manager** window, type **MAX6675** in the search box.
4. Look for the library titled **MAX6675 by Adafruit** and click **Install**.
5. Wait until the installation is complete.
---
### **Step 3: Wiring the HW-550 (MAX6675) to Arduino Nano**
### Hardware Setup
1. **Thermocouple (MAX6675) Connections:** The code sets these pins:
- `pinSCK = 7`
- `pinCS = 6`
- `pinSO = 5`
Wire your MAX6675 module as follows:
- Arduino `5V` to MAX6675 `VCC`
- Arduino `GND` to MAX6675 `GND`
- Arduino `7 (SCK)` to MAX6675 `SCK`
- Arduino `6 (CS)` to MAX6675 `CS`
- Arduino `5 (SO)` to MAX6675 `SO`
**Note:** If your MAX6675 module specifies different power requirements or has a regulator onboard, ensure you follow its recommended wiring.
2. **Roaster Control Lines:**
- `txPin = 3` (Arduino output)
- `rxPin = 2` (Arduino input)
Connect these pins to your roaster's control interface as required. These pins are used for sending and receiving signals from the roaster.
3. **Power and Grounding:** Ensure all grounds (Arduino, MAX6675, roaster interface) share a common ground. Double-check all connections to avoid damage to the board or sensors.
### Preparing the Code
1. **Open Arduino IDE:** Launch the Arduino IDE on your computer.
2. **Create or Open the Sketch:**
- Create a new sketch (File > New).
- Copy and paste the provided code into the new sketch window.
3. **Select Your Board and Port:**
- Go to **Tools > Board** and choose your Arduino board model (e.g., Arduino Uno).
- Go to **Tools > Port** and select the port that your Arduino is connected to.
4. **Verify Libraries:**
- Ensure the `MAX6675` library is installed via the Library Manager as noted above.
- `SPI` is included by default, no additional steps needed
### Compiling and Uploading
1. **Verify (Compile) the Code:**
- Click the **Checkmark (Verify)** button in the Arduino IDE toolbar to compile the code.
- If there are errors, make sure you’ve selected the correct board, port, and have the MAX6675 library properly installed.
2. **Upload the Code:**
- Once verification is successful, click the **Right Arrow (Upload)** button to upload the code to your Arduino.
- After upload completes, the Arduino will reset and begin running the program automatically.
### Running and Interacting
1. **Serial Monitor:**
- Open the Serial Monitor by going to **Tools > Serial Monitor**.
- Set the baud rate to `115200` to match the code’s setting.
2. **Commands:** You can send commands via the Serial Monitor. Examples:
- `READ` — returns the temperature readings and current duty cycles.
- `OT1;XX` — sets heater duty cycle to XX (0-100).
- `OT2;XX` — sets fan duty cycle to XX (0-100).
- `DRUM;1` — turns the drum on (100%), `DRUM;0` turns it off.
- `FILTER;XX`, `COOL;XX` — sets filter fan or cooling levels.
- `CHAN` — responds with channel setup.
- `UNITS;C` or `UNITS;F` — changes temperature units between Celsius and Fahrenheit.
- `OFF` — shuts down all outputs.
3. **Data Output:**
- The Serial Monitor will display temperature data from the thermocouple and any status messages.
- If no commands are received for an extended period, the code will shut everything down for safety
### Troubleshooting
- **No Temperature Reading:**
Double-check thermocouple wiring and confirm the MAX6675 module is functioning.
- **No Response to Commands:**
Ensure you’ve set the correct baud rate and are typing commands properly in the Serial Monitor.
- **No Upload / Compilation Errors:**
Confirm you have the correct board selected and libraries installed.
**Please remember that any modifications you undertake are entirely at your own discretion. While we aim to offer helpful guidance, we cannot assume responsibility for any resulting damage, injury, or loss. Proceed only if you feel confident in understanding the process and accept the associated risks
Thank you TOU! for providing code which can be seen on [kaffee-netz.de forum.](https://www.kaffee-netz.de/threads/skywalker-kaffeeroester.157376/page-3)
**
# Skywalker V1 HiBean Firmware Installation
[](https://skywiki.coffee/uploads/images/gallery/2025-01/image.png)
### **Requirements**
**This is still in Beta and code is still being worked on. Please report any issues you have.**
1. [**ESP32-S3**:](https://www.amazon.com/Waveshare-Development-ESP32-S3FH4R2-Dual-Core-Processor/dp/B0CHYHGYRH/?_encoding=UTF8&pd_rd_w=r9sWT&content-id=amzn1.sym.255b3518-6e7f-495c-8611-30a58648072e%3Aamzn1.symc.a68f4ca3-28dc-4388-a2cf-24672c480d8f&pf_rd_p=255b3518-6e7f-495c-8611-30a58648072e&pf_rd_r=5B6XB3S76AN41GG53BPF&pd_rd_wg=jrSyV&pd_rd_r=0c2acad7-cc3f-40c5-8e89-116521cb0165&ref_=pd_hp_d_atf_ci_mcx_mr_ca_hp_atf_d) Ensure you have the ESP32-S3 board and a USB cable.
[](https://skywiki.coffee/uploads/images/gallery/2025-01/9Edimage.png)
2. **Binary File Link**: [SkiBean.bin](https://github.com/galangl/SkywalkerRoasterLab/blob/main/HiBean/SkiBean.bin).
3. **Browser**: Use Google Chrome or Microsoft Edge (supports Web Serial) [ESPHome](https://web.esphome.io/).
4. **USB Cable**: A reliable cable for data transfer.
---
### **Steps**
#### **1. Download the Binary File**
1. Open the GitHub link: [SkiBean.bin](https://github.com/galangl/SkywalkerRoasterLab/blob/main/HiBean/SkiBean.bin).
2. Click on the `SkiBean.bin` file, then click the **Download** button to save the binary file to your computer.
---
#### **2. Open ESPHome Web**
1. Go to [ESPHome Web](https://web.esphome.io/) in your Chrome or Edge browser.
2. Make sure your ESP32-S3 is connected to your computer using a USB cable.
---
#### **3. Connect the ESP32-S3**
1. On the ESPHome Web page, click the **Connect** button.
[](https://skywiki.coffee/uploads/images/gallery/2025-01/CAdimage.png)
2. A pop-up will appear with available devices. Select the port for your ESP32-S3 and click **Connect**.
[](https://skywiki.coffee/uploads/images/gallery/2025-01/IV2image.png)
---
#### **4. Install the Binary File**
1. Once connected, click **Install**.
[](https://skywiki.coffee/uploads/images/gallery/2025-01/We7image.png)
2. Choose **File** when prompted
3. In the file selection dialog, locate and select the `SkiBean.bin` file you downloaded earlier.
[](https://skywiki.coffee/uploads/images/gallery/2025-01/xjHimage.png)
4. Click **Install** to start the flashing process.
5. [](https://skywiki.coffee/uploads/images/gallery/2025-01/m2iimage.png)
---
#### **5. Flash the Firmware**
- ESPHome Web will erase the existing firmware and flash the `SkiBean.bin` binary.
[](https://skywiki.coffee/uploads/images/gallery/2025-01/E4rimage.png)
- The flashing process may take a few minutes. Wait for it to complete.
- After successful installation, a success message will appear.
[](https://skywiki.coffee/uploads/images/gallery/2025-01/JDKimage.png)
---
### **Direct Link to Binary File**
- Binary File: [SkiBean.bin](https://github.com/galangl/SkywalkerRoasterLab/blob/main/HiBean/SkiBean.bin)
---
### **Troubleshooting**
- **Device Not Recognized**: Ensure your USB cable supports data transfer.
- **Flashing Errors**
- **Hold BOOT and press RESET (recommended method):**
1. Hold down the **BOOT** button.
2. While holding BOOT, press and release the **RESET** button.
3. Continue holding BOOT for a second, then release it.
1. 1. **Unplug and replug while holding the BOOT button:**
1. Disconnect the ESP32-S3 from power (USB).
2. Press and hold the **BOOT** button.
3. While holding BOOT, plug the USB back in.
4. Once connected, release the BOOT button.
- Let me know if you encounter issues or need further help!
# V1 to V2
Upgrading from V1 to V2
# Drum Motor
[](https://skywiki.coffee/uploads/images/gallery/2025-04/image.png)
###
### 1. Add These Pin Definitions at the Top:
const int drumPwmPin = 6; // PWM pin (connect to Blue wire)
const int drumDirPin = 7; // Direction pin (connect to White wire
### 2. Add These to `setup()`:Make sure these lines are inside your `setup()` function
### 3. Replace Your `handleDRUM()` With This Version:
void handleDRUM(uint8\_t value) {
if (value > 100) value = 100; // Clamp value to 100
int pwmValue = map(value, 0, 100, 0, 255); // Scale 0-100 to 0-255
if (value != 0) {
digitalWrite(drumDirPin, HIGH); // Set motor direction (HIGH = CW)
analogWrite(drumPwmPin, pwmValue); // Apply PWM speed
setValue(&sendBuffer\[drumByte\], value); // Update protocol buffer
} else {
analogWrite(drumPwmPin, 0); // Stop motor
setValue(&sendBuffer\[drumByte\], 0);
}
lastEventTime = micros();
}
# Cubean
## Cubean TX Protocol (Controller → Roaster)
- **Direction:** Arduino/controller → Cubean roaster
- **Rate:** `9600 baud`, 8 data bits, no parity, 1 stop bit (`SERIAL_8N1`)
- **Interval:** Sent every ~200ms
- **Packet Length:** 11 bytes
- **Structure:**
Byte Index | Hex | Meaning |
---|
0 | FE | Start byte 1 |
1 | EF | Start byte 2 |
2 | 00 | Unused/reserved |
3 | 00 | Unused/reserved |
4 | 5A | Drum/Cooler/Fan state (bitfield?) |
5 | 64 | Heat power (0–100 decimal) |
6 | 02 | Unknown, possibly a mode ID |
7 | 76 | Fan speed (0–255 scale) |
8 | AA | Marker |
9 | 55 | Marker |
10 | 22 | Checksum or end byte |
## Cubean RX Protocol (Roaster → Controller)
- **Direction:** Cubean roaster → Arduino/controller
- **Rate:** Same UART config: `9600 baud`, `SERIAL_8N1`
- **Interval:** ~200ms
- **Packet Length:** 11 bytes
- **Structure:**
Byte Index | Hex | Meaning |
---|
0 | FE | Start byte 1 |
1 | EF | Start byte 2 |
2 | 0X | Temperature high nibble (BCD/hex?) |
3 | YY | Temperature low nibble |
4 | 00 | Unknown |
5 | 00 | Unknown |
6 | 00 | Possibly status byte |
7 | 00 | Possibly another status byte |
8 | AA | Marker |
9 | 55 | Marker |
10 | XX | Checksum or data byte |