From dbf26d13ac4d46bce5fcc65f415d86fa59e0a69d Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 29 Sep 2021 11:29:51 +0200 Subject: [PATCH] Make search for error codes easier --- src/logic/error_codes.h | 61 +++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/src/logic/error_codes.h b/src/logic/error_codes.h index a565500..60d5f7d 100644 --- a/src/logic/error_codes.h +++ b/src/logic/error_codes.h @@ -19,48 +19,75 @@ enum class ErrorCode : uint_fast16_t { OK = 0x0001, ///< the operation finished OK /// Unload Filament related error codes - FINDA_DIDNT_SWITCH_ON = 0x8001, ///< FINDA didn't switch on while loading filament - either there is something blocking the metal ball or a cable is broken/disconnected - FINDA_DIDNT_SWITCH_OFF = 0x8002, ///< FINDA didn't switch off while unloading filament + FINDA_DIDNT_SWITCH_ON = 0x8001, ///< E32769 FINDA didn't switch on while loading filament - either there is something blocking the metal ball or a cable is broken/disconnected + FINDA_DIDNT_SWITCH_OFF = 0x8002, ///< E32770 FINDA didn't switch off while unloading filament - FSENSOR_DIDNT_SWITCH_ON = 0x8003, ///< Filament sensor didn't switch on while performing LoadFilament - FSENSOR_DIDNT_SWITCH_OFF = 0x8004, ///< Filament sensor didn't switch off while performing UnloadFilament + FSENSOR_DIDNT_SWITCH_ON = 0x8003, ///< E32771 Filament sensor didn't switch on while performing LoadFilament + FSENSOR_DIDNT_SWITCH_OFF = 0x8004, ///< E32772 Filament sensor didn't switch off while performing UnloadFilament - FILAMENT_ALREADY_LOADED = 0x8005, ///< cannot perform operation LoadFilament or move the selector as the filament is already loaded + FILAMENT_ALREADY_LOADED = 0x8005, ///< E32773 cannot perform operation LoadFilament or move the selector as the filament is already loaded - INVALID_TOOL = 0x8006, ///< tool/slot index out of range (typically issuing T5 into an MMU with just 5 slots - valid range 0-4) + INVALID_TOOL = 0x8006, ///< E32774 tool/slot index out of range (typically issuing T5 into an MMU with just 5 slots - valid range 0-4) - QUEUE_FULL = 0x802b, ///< internal logic error - attempt to move with a full queue + QUEUE_FULL = 0x802b, ///< E32811 internal logic error - attempt to move with a full queue - VERSION_MISMATCH = 0x802c, ///< internal error of the printer - incompatible version of the MMU FW - PROTOCOL_ERROR = 0x802d, ///< internal error of the printer - communication with the MMU got garbled - protocol decoder couldn't decode the incoming messages - MMU_NOT_RESPONDING = 0x802e, ///< internal error of the printer - communication with the MMU is not working - INTERNAL = 0x802f, ///< internal runtime error (software) + VERSION_MISMATCH = 0x802c, ///< E32812 internal error of the printer - incompatible version of the MMU FW + PROTOCOL_ERROR = 0x802d, ///< E32813 internal error of the printer - communication with the MMU got garbled - protocol decoder couldn't decode the incoming messages + MMU_NOT_RESPONDING = 0x802e, ///< E32814 internal error of the printer - communication with the MMU is not working + INTERNAL = 0x802f, ///< E32815 internal runtime error (software) // TMC bit masks - TMC_PULLEY_BIT = 0x0040, ///< TMC Pulley bit - TMC_SELECTOR_BIT = 0x0080, ///< TMC Pulley bit - TMC_IDLER_BIT = 0x0100, ///< TMC Pulley bit + TMC_PULLEY_BIT = 0x0040, ///< +64 TMC Pulley bit + TMC_SELECTOR_BIT = 0x0080, ///< +128 TMC Pulley bit + TMC_IDLER_BIT = 0x0100, ///< +256 TMC Pulley bit - TMC_IOIN_MISMATCH = 0x8200, ///< TMC driver init error - TMC dead or bad communication + /// TMC driver init error - TMC dead or bad communication + /// - E33344 Pulley TMC driver + /// - E33404 Selector TMC driver + /// - E33536 Idler TMC driver + /// - E33728 All 3 TMC driver + TMC_IOIN_MISMATCH = 0x8200, /// TMC driver reset - recoverable, we just need to rehome the axis /// Idler: can be rehomed any time /// Selector: if there is a filament, remove it and rehome, if there is no filament, just rehome /// Pulley: do nothing - for the loading sequence - just restart and move slowly, for the unload sequence just restart + /// - E33856 Pulley TMC driver + /// - E33920 Selector TMC driver + /// - E34048 Idler TMC driver + /// - E34240 All 3 TMC driver TMC_RESET = 0x8400, - TMC_UNDERVOLTAGE_ON_CHARGE_PUMP = 0x8800, ///< not enough current for the TMC, NOT RECOVERABLE + /// not enough current for the TMC, NOT RECOVERABLE + /// - E34880 Pulley TMC driver + /// - E34944 Selector TMC driver + /// - E35072 Idler TMC driver + /// - E35264 All 3 TMC driver + TMC_UNDERVOLTAGE_ON_CHARGE_PUMP = 0x8800, - TMC_SHORT_TO_GROUND = 0x9000, ///< TMC driver serious error - short to ground on coil A or coil B - dangerous to recover + /// TMC driver serious error - short to ground on coil A or coil B - dangerous to recover + /// - E36928 Pulley TMC driver + /// - E36992 Selector TMC driver + /// - E37120 Idler TMC driver + /// - E37312 All 3 TMC driver + TMC_SHORT_TO_GROUND = 0x9000, /// TMC driver over temperature warning - can be recovered by restarting the driver. /// If this error happens, we should probably go into the error state as soon as the current command is finished. /// The driver technically still works at this point. + /// - E41024 Pulley TMC driver + /// - E41088 Selector TMC driver + /// - E41216 Idler TMC driver + /// - E41408 All 3 TMC driver TMC_OVER_TEMPERATURE_WARN = 0xA000, /// TMC driver over temperature error - we really shouldn't ever reach this error. /// It can still be recovered if the driver cools down below 120C. /// The driver needs to be disabled and enabled again for operation to resume after this error is cleared. + /// - E49216 Pulley TMC driver + /// - E49280 Selector TMC driver + /// - E49408 Idler TMC driver + /// - E49600 All 3 TMC driver TMC_OVER_TEMPERATURE_ERROR = 0xC000 };