Error Codes

Cube firmware uses it's own way to encode errors into numbers, which is described bellow. You can also find the table of all current error codes here.

General description

  • 32bit unsigned int
  • the 32bits are divided such that top 8bits are namespace, lower 24bits are error_code
  • error_code is further divided, higher 8bits error_category and lower 16bits error_id
  • the complete error code is calculated as follow: namespace + error_category + error_id
  • all zeroes correspond to no error

Error code table

namespace category error_id description
0xAA 0x01 0x0001 message is not a command message
0x02 0x0001 message decoding error
0x0002 message wrong payload
0x03 0x0001 planner out of bounds
0x0002 planner conversion error
0x0003 planner misc error
0x05 0x0001 error while in velocity mode
0x0002 error while in step mode
0x0003 unexpected endstop triggered
0x0004 reset position error
0x06 0x0001 gpio set mode error
0x0002 gpio wrong mode
0x0003 gpio set error
0x0004 gpio read error
0x0005 gpio misc error
0x000a i2c error
0x000b spi error
0x08 0x0001 fatal error in cube_lib::controller
0x0002 instruction not implemented
category id category name
0x01 message
0x02 decode
0x03 planner
0x04 hw_transfers
0x05 hw_movement
0x06 hw_io
0x07 hw_misc
0x08 misc