Kaliedo Tablet USB
Kaleido Roaster Communication Protocol
This project documents the reverse-engineered communication protocol used by Kaleido coffee roasters and provides the information needed to interface with the roaster using custom hardware and software.
Protocol Overview
Kaleido communicates with its controller over a UART serial connection using a proprietary variable-length protocol.
Serial configuration
-
Baud rate: 57,600
-
Format: 8N1
-
Communication: Bidirectional UART
-
Messages: Variable length
-
Message terminator: 0x77
-
Encoding: Session-based XOR key
During initialization, the controller and roaster exchange a handshake sequence. A session key is then obtained and used to XOR-encode and decode subsequent communication.
Initialization
The observed startup sequence includes:
FF
08 01 03 07 0F 1F 3F 7F
16 20
Following initialization, the communication transitions to XOR-encoded command and telemetry messages.
Numeric Encoding
Kaleido uses a custom representation for decimal digits before applying the XOR encoding:
| Digit | Value |
|---|---|
| 0 | 0x6B |
| 1 | 0x4B |
| 2 | 0x2B |
| 3 | 0x0B |
| 4 | 0x6F |
| 5 | 0x4F |
| 6 | 0x2F |
| 7 | 0x0F |
| 8 | 0x63 |
| 9 | 0x43 |
The resulting message is XORed with the current session key before being transmitted.
Known Telemetry
The protocol provides access to several important roaster parameters:
-
BT — Bean Temperature
-
ET — Environmental Temperature
-
SV — Temperature Set Value
-
Power — Heater output
-
Smoke — Exhaust/smoke fan
-
Drum — Drum control
Telemetry fields are identified within decoded messages using 0x23 field separators.
Known Controls
The reverse-engineered protocol allows control of:
-
Heater power: 0–100%
-
Exhaust/smoke fan: 0–100%
-
Drum: 0–100%
-
Temperature setpoint
-
Heating mode
-
Cooling system ON/OFF
The reference implementation translates Artisan-style commands such as OT1, OT2, IO3, SV, and CLDN into the corresponding Kaleido UART messages.
Bridge Architecture
A typical implementation is:
Artisan / Application → ESP32 → Kaleido UART Protocol → Roaster
The ESP32 acts as a protocol bridge, receiving easy-to-use commands from software, translating them into Kaleido messages, applying the session XOR encoding, and transmitting them to the roaster.
This makes it possible to integrate Kaleido roasters with custom controllers, roasting software, alternative Bluetooth interfaces, and other community-developed hardware without relying exclusively on the original control interface.
Current Status
The protocol has been sufficiently reverse engineered to:
-
Read BT and ET
-
Read current heater, fan, drum, and SV values
-
Set heater power
-
Set exhaust/smoke fan
-
Control drum output
-
Set temperature SV
-
Start/stop cooling
-
Emulate portions of the original Kaleido controller communication
-
Interface the roaster with external roasting software
Further protocol analysis may reveal additional commands, operating states, alarms, configuration parameters, and model-specific differences.
No comments to display
No comments to display