Error code list

Error code list that came with printer

Pic 2 not every one got this apparently I didn’t with mine

Thanks, never seen it before.
Do you think you can scan them & upload so users can download & print..??

Did a quick translation in AI and compared images against below. I might of missed something, but over all translation looked clean. Shows a error in the codes as well, see bottom.

SOVOL ZERO — Screen Prompt Codes

No. Knob screen prompt code Reasons and Problems
1 101 x / 101 y / 101 z No trigger on %s after full movement
2 102 Probe triggered prior to movement
3 103 x / 103 y / 103 z Endstop %s still triggered after retract
4 104 x Must home axis first X
5 104 y Must home axis first Y
6 104 z Must home axis first Z
7 105 x Move out of range X
8 105 y Move out of range Y
9 105 z Move out of range Z
10 106 Extrude below minimum temp
11 107 Extrude only move too long
12 108 Move exceeds maximum extrusion
13 109 Pressure probe more than five times
14 110 Exception in chamber_fan
15 111 Invalid lis2dw id
16 112 LDC1612 I2C bus busy or timeout error, please check the connection between the sensor module and the mainboard
17 113 LDC1612 I2C bus error. There may have been internal or external interference during the communication
18 114 Invalid ldc1612 id
19 115 Invalid probe_eddy_current height
20 116 Failed calibration – incomplete sensor data
21 117 Failed calibration – frequency not increasing each step
22 118 Must calibrate probe_eddy_current first
23 119 probe_eddy_current sensor outage
24 120 Unable to obtain probe_eddy_current sensor readings
25 121 probe_eddy_current sensor not in valid range
26 122 Communication timeout during homing
27 123 Eddy current sensor error
28 124 Must home before probe
29 125 Exception in exhaust_fan

SOVOL ZERO — Screen Error Codes

Error codes 1–15

No. Knob screen error code Reasons and Problems
1 1 Multiple unknown error reports
2 2 Shutdown cleared when not shutdown
3 3 sentinel timer called
4 4 Invalid command
5 5 Message encode error
6 6 Command parser error
7 7 config_reset only available when shutdown
8 8 oids already allocated
9 9 Can’t assign oid
10 10 Invalid oid type
11 11 Already finalized
12 12 Invalid move request size
13 13 Move queue overflow
14 14 alloc_chunks failed
15 15 alloc_chunk failed

Error codes 16–53

No. Knob screen error code Reasons and Problems
16 16 update_digital_out not valid with active queue
17 17 Scheduled digital out event will exceed max_duration
18 18 Can not set soft pwm cycle ticks while updates pending
19 19 Missed scheduling of next digital out event
20 20 Can’t reset time when stepper active
21 21 Invalid count parameter
22 22 Stepper too far in past
23 23 Can’t add signal that is already active
24 24 ADC out of range
25 25 Invalid spi config
26 26 I2C Timeout
27 27 I2C START READ NACK
28 28 I2C_START NACK
29 29 I2C NACK
30 30 Scheduled pwm event will exceed max_duration
31 31 Missed scheduling of next hard pwm event
32 32 Invalid buttons retransmit count
33 33 Set button past maximum button count
34 34 Max of 8 buttons
35 35 tmcuart data too large
36 36 Invalid neopixel update command
37 37 Invalid neopixel data_size
38 38 Thermocouple reader fault
39 39 Invalid thermocouple chip type
40 40 angle sensor requires cs pin
41 41 Invalid spi angle chip type
42 42 HX71x gain/channel out of range 1–4
43 43 Not a valid input pin
44 44 Not an output pin
45 45 Not a valid ADC pin
46 46 Rescheduled timer in the past
47 47 Failed to send i2c addr
48 48 Unsupported i2c bus
49 49 Invalid spi bus
50 50 Another CAN node assigned this ID
51 51 Invalid PWM channel
52 52 PWM already programmed at different speed
53 53 Not a valid PWM pin

Error codes 60–73

The printed list skips codes 54 through 59.

No. Knob screen error code Reasons and Problems
54 60 Lost communication with MCU
55 61 Shutdown due to webhooks request
56 62 ADC out of range
57 63 Heater extruder not heating at expected rate
58 64 Heater heater_bed not heating at expected rate
59 65 TMC stepper_x reports error
60 66 TMC stepper_y reports error
61 67 TMC stepper_z reports error
62 68 TMC extruder reports error
63 69 Move queue overflow
64 70 Missed scheduling of next digital out event
65 71 Unable to write tmc spi stepper_x register
66 72 Unable to write tmc spi stepper_x register
67 73 Exception in hotend_fan

Source-sheet oddity: error codes 71 and 72 both say stepper_x in the photographed document. I preserved that duplication exactly rather than guessing what code 72 was intended to say.

Since I now own two Zeros, one running 1.4.7 and one still on factory-original 1.3.7, I pulled the codes directly from the firmware.

That matters because the code list changed between firmware versions, which explains a lot of the disagreement between published lists and what people actually see on screen.

Codes by version

Firmware Codes Difference
1.3.7 / 1.3.8 23 101–109, 111–124. No 110 or 125. Has 118.
1.4.1 / 1.4.2 25 adds 110 (chamber_fan) and 125 (exhaust_fan)
1.4.6 / 1.4.7 24 removes 118

So if your list has 118 and your printer doesn’t, or your printer shows 110/125 and your list doesn’t, the list may simply be for a different firmware version.

Also, 1.3.8 is byte-identical to 1.3.7 apart from the version string. If you’re on 1.3.8, you’re effectively running the launch firmware.

A few things this clears up

71/72 is a typo in the printed sheet.

The sheet lists both as stepper_x. The firmware is unambiguous: 71 is stepper_x, 72 is stepper_y.

@MikeHides had already flagged the duplicate and correctly preserved the source instead of guessing.

54–59 aren’t missing codes.

Shutdown codes are generated as:

shutCode = 60 + index

So 60 is the lowest possible value. 54–59 are simply unreachable.

109 changed between firmware versions.

Firmware Message
1.3.7 / 1.3.8 Pressure probe more than five times
1.4.1 onward Toolhead probe more than ten times

The printed sheet contains the 1.3.x wording exactly. It isn’t wrong, just old. Both the text and retry limit changed in 1.4.x, while the documentation did not.

Code 124

124 comes from probe_pressure.py, the load-cell module.

From 1.4.x onward, [probe_pressure] is no longer present in printer.cfg, so the module still ships but isn’t loaded. Later production also removed the load-cell hardware.

On a stock 1.4.x printer, 124 therefore can’t fire.

Shutdown codes

These are in klippy/klippy.py and are identical between 1.3.7 and 1.4.7.

Code Message
60 Lost communication with MCU
61 Shutdown due to webhooks request
62 ADC out of range
63 Heater extruder not heating at expected rate
64 Heater heater_bed not heating at expected rate
65 TMC ‘stepper_x’ reports error
66 TMC ‘stepper_y’ reports error
67 TMC ‘stepper_z’ reports error
68 TMC ‘extruder’ reports error
69 Move queue overflow
70 Missed scheduling of next digital out event
71 Unable to write tmc spi ‘stepper_x’ register
72 Unable to write tmc spi ‘stepper_y’ register
73 Exception in Hotend_fan

Prompt codes

The line numbers below are from 1.4.7. {name} and {axis} are filled in at runtime, which is how you get things like 101 x or 103 z.

Code Message Source Version
101 {name} No trigger on name after full movement extras/homing.py:118 all
102 Probe triggered prior to movement extras/homing.py:270 all
103 {name} Endstop name still triggered after retract extras/homing.py:220 all
104 {axis} Must home axis first kinematics/corexy.py:77 all
105 {axis} Move out of range kinematics/corexy.py:79 all
106 Extrude below minimum temp kinematics/extruder.py:208 all
107 Extrude only move too long kinematics/extruder.py:215 all
108 Move exceeds maximum extrusion kinematics/extruder.py:230 all
109 five times (1.3.x) / ten times (1.4.x) extras/z_offset_calibration.py:85 text differs
110 Exception in chamber_fan extras/fan.py:90 1.4.1+
111 Invalid lis2dw id extras/lis2dw.py:107 all
112 LDC1612 I2C bus busy or timeout, check sensor-to-mainboard connection extras/ldc1612.py:192 all
113 LDC1612 I2C bus error, internal or external interference extras/ldc1612.py:195 all
114 Invalid ldc1612 id extras/ldc1612.py:198 all
115 Invalid probe_eddy_current height extras/probe_eddy_current.py:73 all
116 Failed calibration, incomplete sensor data extras/probe_eddy_current.py:136 all
117 Failed calibration, frequency not increasing each step extras/probe_eddy_current.py:181 all
118 Must calibrate probe_eddy_current first extras/probe_eddy_current.py ≤1.4.2 only
119 probe_eddy_current sensor outage extras/probe_eddy_current.py:249 all
120 Unable to obtain probe_eddy_current sensor readings extras/probe_eddy_current.py:301 all
121 probe_eddy_current sensor not in valid range extras/probe_eddy_current.py:305 all
122 Communication timeout during homing extras/probe_eddy_current.py:367 all
123 Eddy current sensor error extras/probe_eddy_current.py:370 all
124 Must home before probe extras/probe_pressure.py:142 stock 1.4.x can’t reach it
125 Exception in exhaust_fan extras/fan.py:93 1.4.1+

A few useful distinctions

104 vs 105: same check, different failure. 104 means the axis isn’t homed. 105 means it is homed, but the requested move is outside its limits.

112 vs 113: both are I²C faults on the eddy sensor and both occur after the read has already been retried. 112 is the busy/timeout path, which points more strongly at the physical connection. 113 is the other bus-error path. If communication succeeds but the returned ID is invalid, you get 114.

118: on ≤1.4.2, an uncalibrated eddy sensor produces hard error 118. By 1.4.6, the same condition is only an advisory message with no tip code.

Check your own printer

cd ~/klipper
grep -rn "Tip code" klippy/ --include='*.py'
sed -n '214,217p' klippy/klippy.py

Sovol’s recovery image on the wiki is 1.3.7, and contains the same Klipper files, so the older code list can also be checked directly against Sovol’s published image.

@rpcyan Nice update, thank you for the in-depth analysis and clarifications.

Cheers,
-Mike