A complete set of error codes which may be a result of a high-level command/operation. This header file shall be included in the printer's firmware as well as a reference, therefore the error codes have been extracted to one place.
Please note the errors are intentionally coded as "negative" values (highest bit set), becase they are a complement to reporting the state of the high-level state machines - positive values are considered as normal progress, negative values are errors.
Please note, that multiple TMC errors can occur at once, thus they are defined as a bitmask of the higher byte. Also, as there are 3 TMC drivers on the board, each error is added a bit for the corresponding TMC - TMC_PULLEY_BIT, TMC_SELECTOR_BIT, TMC_IDLER_BIT, The resulting error is a bitwise OR over 3 TMC drivers and their status, which should cover most of the situations correctly.
Enumerator |
---|
RUNNING | the operation is still running - keep this value as ZERO as it is used for initialization of error codes as well
|
OK | the operation finished OK
|
TMC_PULLEY_BIT | +64 TMC Pulley bit
|
TMC_SELECTOR_BIT | +128 TMC Pulley bit
|
TMC_IDLER_BIT | +256 TMC Pulley bit
|
FINDA_DIDNT_SWITCH_ON | Unload Filament related error codes.
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 | E32770 FINDA didn't switch off while unloading filament.
|
FSENSOR_DIDNT_SWITCH_ON | E32771 Filament sensor didn't switch on while performing LoadFilament.
|
FSENSOR_DIDNT_SWITCH_OFF | E32772 Filament sensor didn't switch off while performing UnloadFilament.
|
FILAMENT_ALREADY_LOADED | E32773 cannot perform operation LoadFilament or move the selector as the filament is already loaded.
|
INVALID_TOOL | E32774 tool/slot index out of range (typically issuing T5 into an MMU with just 5 slots - valid range 0-4)
|
HOMING_FAILED | generic homing failed error - always reported with the corresponding axis bit set (Idler or Selector) as follows:
|
HOMING_SELECTOR_FAILED | E32903 the Selector was unable to home properly - that means something is blocking its movement.
|
HOMING_IDLER_FAILED | E33031 the Idler was unable to home properly - that means something is blocking its movement.
|
STALLED_PULLEY | E32839 for the Pulley "homing" means just StallGuard detected during Pulley's operation (Pulley doesn't home)
|
FINDA_VS_EEPROM_DISREPANCY | E32776 FINDA is pressed but we have no such record in EEPROM - this can only happen at the start of the MMU and can be resolved by issuing an Unload command.
|
FSENSOR_TOO_EARLY | E32777 FSensor triggered while doing FastFeedToBondtech - that means either:
- the PTFE is too short
- a piece of filament was left inside - pushed in front of the loaded filament causing the fsensor trigger too early
- fsensor is faulty producing bogus triggers
|
FINDA_FLICKERS | The user is obliged to inspect FINDA and tune its switching.
FINDA flickers - seems to be badly calibrated and happens to be pressed at spots where it used to be not pressed before.
|
MOVE_FAILED | generic move failed error - always reported with the corresponding axis bit set (Idler or Selector) as follows:
|
MOVE_SELECTOR_FAILED | E32905 the Selector was unable to move to desired position properly - that means something is blocking its movement, e.g. a piece of filament got out of pulley body.
|
MOVE_IDLER_FAILED | E33033 the Idler was unable to move - unused at the time of creation, but added for completeness.
|
MOVE_PULLEY_FAILED | E32841 the Pulley was unable to move - unused at the time of creation, but added for completeness.
|
FILAMENT_EJECTED | Filament was ejected, waiting for user input - technically, this is not an error.
|
MCU_UNDERVOLTAGE_VCC | MCU VCC rail undervoltage.
|
LOAD_TO_EXTRUDER_FAILED | E32811 internal error of the printer - try-load-unload sequence detected missing filament -> failed load into the nozzle.
|
QUEUE_FULL | E32811 internal logic error - attempt to move with a full queue.
|
VERSION_MISMATCH | E32812 internal error of the printer - incompatible version of the MMU FW.
|
PROTOCOL_ERROR | E32813 internal error of the printer - communication with the MMU got garbled - protocol decoder couldn't decode the incoming messages.
|
MMU_NOT_RESPONDING | E32814 internal error of the printer - communication with the MMU is not working.
|
INTERNAL | E32815 internal runtime error (software)
|
TMC_IOIN_MISMATCH | TMC driver init error - TMC dead or bad communication
- E33344 Pulley TMC driver
- E33408 Selector TMC driver
- E33536 Idler TMC driver
- E33728 All 3 TMC driver
|
TMC_RESET | 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_UNDERVOLTAGE_ON_CHARGE_PUMP | 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_SHORT_TO_GROUND | 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_OVER_TEMPERATURE_WARN | 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_ERROR | 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
|
MMU_SOLDERING_NEEDS_ATTENTION | TMC driver - IO pins are unreliable. While in theory it's recoverable, in practice it most likely means your hardware is borked (we can't command the drivers reliably via STEP/EN/DIR due to electrical issues or hardware fault. Possible "fixable" cause is undervoltage on the 5v logic line. Unfixable possible cause: bad or cracked solder joints on the PCB, failed shift register, failed driver.
|