Skip to main content

Cubean

Cubean TX Line
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:

Start Drum/Cooler/FanHeat repeated
Byte PosIndex NameHex HexMeaning
0 Start Byte0x02FE Start ofbyte frame1
1 Temp IntEF 0x29 41°Cbyte 2
2 Temp Deci00 0x00.0°CUnused/reserved
3 Heater PWM00 0x4872 → 72/127 ≈ 56.7% heaterUnused/reserved
4 Exhaust Fan PWM5A 0x40 64state → 64/127 ≈ 50.4% fan(bitfield?)
5 Bitfield64 0xC0 Drumpower ON(0–100 + Cooling Fan ONdecimal)
6 End/Repeat Byte02 0x02Unknown, possibly a mode ID
7 Often76 Fan startspeed (0–255 scale)
8AAMarker
955Marker
1022Checksum or paddingend byte

Cubean RX Protocol (Roaster → Controller)


  • Direction: Cubean roaster → Arduino/controller

  • RXRate: Line
    Same UART config: 9600 baud, SERIAL_8N1

  • Interval: ~200ms

  • Packet Length: 11 bytes

  • Structure:

StartTemperatureTemperature start
Byte PosIndex NameHex HexMeaning
0 Start Byte0x02FE Start ofbyte telemetry packet1
1 Temp IntEF 0x29 41°Cbyte 2
2 Temp Deci0X 0x00 .0°Chigh nibble (BCD/hex?)
3 Heater PWM EchoYY 0x42 66low → 66/127 ≈ 52.0% actual heater outputnibble
4 Exhaust Fan Echo00 0x4064 → 64/127 ≈ 50.4% fan outputUnknown
5 Bitfield00 0xC0Drum ON + Cooling Fan ONUnknown
6 Padding/Repeat00 0x02Possibly status byte
7 Matches00 Possibly another status byte
8AAMarker
955Marker
10XXChecksum or data byte