Kaleido Mods

A few Skywalker Community Mods

Kaleido HiBean BLE Firmware


SnowBear Firmware Installation

Kaleido currently uses Classic Bluetooth to talk to HiBean  a dated standard that, importantly, isn't supported on iOS at all. This project is a workaround that finally brings Kaleido connectivity to iPhones and iPads. It also pairs nicely with Bear's bridge for connecting devices over BLE Serial, which sidesteps the long-standing issues Classic Bluetooth SPP has on macOS, especially on Apple Silicon. Brought to you by Bear of the Skywalker community, with support from Will_Z at HiBean.

image.png

Requirements

This is still in Beta and code is still being worked on. Please report any issues you have to our Community Discord.

  1. ESP32-S3:
     Ensure you have the ESP32-S3 board and a USB cable.
    image.png
  2. Power Data Y Cable

    61Y25DfijwL._AC_SL1200_.jpg
  3. 5v USB Power Source
    image.png


  1. Binary File Link:
    SnowBear
  2. Browser: Use Google Chrome or Microsoft Edge (supports Web Serial) 
    ESPHome


Steps

1. Download the Binary File


2. Open ESPHome Web

  1. Go to 
    ESPHome Web
     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.

    image.png


  2. A pop-up will appear with available devices. Select the port for your ESP32-S3 and click Connect.

    image.png




4. Install the Binary File

  1. Once connected, click Install.

    image.png


  2. Choose File when prompted
  3. In the file selection dialog, locate and select the BLE_host_v1.2z_Kaleido_SnowBear.bin bin file you downloaded earlier.

    image.png

  4. Click Install to start the flashing process.
  5. image.png


5. Flash the Firmware



Troubleshooting

    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.

Kaliedo Protocol

Kaliedo Roaster Protocol

Quick command reference for Artisan / HiBean serial control

Format Conventions

Instruction stream uses {[ as prefix and ]} as suffix.

Data stream uses { as prefix and } as suffix. Responses start with sid (status byte).

All keywords are uppercase. Each command is terminated with a newline (\n).

Multiple commands can share one {[ ]} pair, separated by commas — for example: {[HP 80,FC 60,RC 90]}

Connection and Setup

Command

Description

{[PI]}

Ping — connection test. Returns {sid}.

{[SC AR]}

Start Artisan session. Returns {sid,SN:xxxxxxxx}.

{[SC CP]}

Start Cropster session. Returns {sid,SN:xxxxxxxx}.

{[CL AR]}

Close Artisan session.

{[CL CP]}

Close Cropster session.

{[TU C]}

Set temperature unit to Celsius.

{[TU F]}

Set temperature unit to Fahrenheit.


Reading Data

Command

Description

{[RD A0]}

Read main parameters (BT, ET, AT, HP, FC, RC, AH, TS).

{[RD A1]}

Read main parameters plus heating status (adds HS field).

Example response (A1)

{0,BT:190.5,ET:185.0,AT:25.0,HP:80,FC:55,RC:90,AH:0,TS:180.0,HS:1}

Response fields

BT — bean temperature (0-300 °C / 32-572 °F)

ET — drum / environment temperature

AT — ambient temperature

HP — heater power %, step 5

FC — smoke fan speed %, step 5

RC — drum roll speed %, step 10

AH — auto-heat enabled (0 or 1)

TS — target temperature setpoint

HS — heating active (0 or 1, A1 mode only)

Heat Control

Command

Description

{[HS 0]}

Stop heating.

{[HS 1]}

Start heating.

{[HP n]}

Set heater power n% (step 5, range 0-100).

{[HP UP]}

Step heater up by 5%.

{[HP DW]}

Step heater down by 5%.

{[TS n.n]}

Set target temperature (0-250 °C / 32-482 °F).

{[AH 0]}

Disable auto-heat (manual power mode).

{[AH 1]}

Enable auto-heat (device PID controls heat to TS).


Fan and Drum

Command

Description

{[FC n]}

Smoke fan n% (step 5, range 0-100).

{[FC UP]}

Step fan up by 5%.

{[FC DW]}

Step fan down by 5%.

{[RC n]}

Drum roll n% (step 10, range 0-100).

{[RC UP]}

Step drum up by 10%.

{[RC DW]}

Step drum down by 10%.


Cooling

Command

Description

{[CS 0]}

Cooling off.

{[CS 1]}

Cooling on.


Roast Event Markers

Sends a user-tagged roast event to the device. The device synchronizes the event to its embedded control panel.

Command

Description

{[EV 1]}

Charge — beans loaded into drum.

{[EV 2]}

Temp Return (TP) — turning point.

{[EV 3]}

Dry End — end of drying phase.

{[EV 4]}

First Crack Start.

{[EV 5]}

First Crack End.

{[EV 6]}

Second Crack Start.

{[EV 7]}

Second Crack End.

{[EV 8]}

Drop — beans dropped to cooling tray.

{[EV 9]}

Cool End — cooling complete.


Status Byte (sid) Decoder

Every response begins with a status byte. Convert sid to 8-bit binary, then read the low 4 bits when the lowest bit of the high nibble is 0:

Command

Description

0000

IDLE

0001

CHARGE

0010

TP (Turning Point)

0011

DRY END

0100

FC (First Crack)

0101

FC END

0110

SC (Second Crack)

0111

SC END

1000

DROP

1001

COOL END


Typical Session Sequence

The handshake Artisan uses on connection, captured live from a real roaster:

Command

Description

{[PI]}

Ping the roaster to verify connection.

{[TU C]}

Set the unit (C or F).

{[SC AR]}

Open an Artisan session — roaster returns its serial number.

{[RD A0]}

Poll for live data, repeated about every 1.5 seconds.

{[CL AR]}

Close the session when disconnecting.


Notes

Polling interval for RD should be at least 1 second. Default 1.5 seconds. Repeated queries faster than 1 second are ignored.

The roaster responds to RD without requiring SC AR first, though using SC AR is the documented startup sequence.

Baud rate observed: 57600, 8 data bits, no parity, 1 stop bit, no flow control.

CP210x VID:PID is 10C4:EA60.