Table of Contents
Error Codes for MS2000 and TG1000 Diagnostics
Error codes are dumped to the serial terminal with the last error code shown first using the DU Y command.
If you're looking for command syntax error codes such as N-1, N-2, etc you can find a table at the bottom of the page.
If you're looking for filter wheel error codes, they are listed at the bottom of the page.
- DU Y Example Output
-
2DU Y Adr:2:ZF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
An empty error buffer on card #2.
The table below lists the meanings of the error codes.
| Error Code Table | |
|---|---|
| Error Number | Error Description |
| 0 | No Error |
| 1-9 | OVERTIME – RECOVERABLE. Error caused by competing tasks using the microprocessor. Should be treated as warning. |
| 10-14 † | OVERSHOT – Move overshot the target; happens frequently, not really an error. |
| 15 | NEGATIVE LOG – Negative number for Log conversion. |
| 20-23 † | AXIS DEAD – FATAL. No movement for 100 cycles; axis halted. |
| 30-33 † | RUN AWAY – FATAL. Getting further from the target; axis halted. Commonly preceded by 90-93. |
| 34 | UPPER LIMIT – Upper Limit reached. (axis unspecific) |
| 35 | LOWER LIMIT – Lower Limit reached. (axis unspecific) |
| 36 | MOVE INTO UPPER (axis unspecific) |
| 37 | MOVE INTO LOWER (axis unspecific) |
| 38 | BACK VOLTAGE LIMIT (axis unspecific) |
| 42 | CRISP Error |
| 43 | CRISP Halted |
| 44 | Finish Speed Clamp |
| 45 | ADC_LOCK_OOR – Out-of-range error for locked servo - causes unlock. |
| 46 | ADC_FOLLOW_ERR – Error attempting to follow an analog ADC input. |
| 47 | Servo Locked |
| 48 | Task Loop Overtime |
| 49 | Low Light |
| 50-53 † | ENCODER ERROR OVERFLOW – FATAL. Error term so large that move intent is indiscernible; axis halted. |
| 54 | I2C Poll Error |
| 55 | EPROM NO LOAD – Saved-settings on EPROM not loaded, compile date mismatch. |
| 56 | I2C Busy Error |
| 57 | I2C Write Error 1 |
| 58 | I2C Read Error 1 |
| 59 | I2C No Acknowledgement Error , followed by I2C Chip Address |
| 60-64 † | ADJUST-MOVE ERROR – Failed to clear ‘M’ more than 18 times in a row. FATAL |
| 65-69 † | ADJUST-MOVE WARNING - Failed to clear 'M' less than 19 times in a row, but eventually cleared. RECOVERABLE. |
| 85 | SCAN LOST PULSES – During a scan, missing pulses were detected. |
| 86 | SCAN INCOMPLETE – During a scan, terminated before completing the row. |
| 87 | TTL Report Buffer Overrun |
| 90-94 † | ERROR_LARGE – RECOVERABLE. Motor set to FULL SPEED; hope to catch up (e.g. speed set faster than possible). |
| 100-104 † | INDEX NOT FOUND |
| 105 | Buffer Overrun |
| 106 | Buffer Underrun |
| 110 | SPIM Loop Time, followed by the SPIM State and the Task ID |
| 120-124 † | Encoder E Flag |
| 140 | ADEPT High Voltage low |
| 141 | ADEPT I2C Dead |
| 142 | PIEZO READ POS |
| 143 | PIEZO WRITE POS |
| 144 | PIEZO MOVE ERR |
| 145 | PIEZO READ POS1 |
| 146 | PIEZO INIT |
| 147 | PIEZO POS ERROR |
| 148 | Autofocus 200um safety limit Encountered |
| 149 | I2C_BAD_BUSY ERROR |
| 150 | READ_I2C_ZERO_POT_ERR1 |
| 151 | READ_I2C_ZERO_POT_ERR2 |
| 152 | READ_I2C_FEEDBACK_POT_ERR1 |
| 153 | READ_I2C_FEEDBACK_POT_ERR2 |
| 154 | READ_I2C_ALIGNSET_ERR1 |
| 155 | READ_I2C_ALIGNSET_ERR2 |
| 156 | WRITE_I2C_ALIGNSET_ERR1 |
| 157 | WRITE_I2C_ALIGNSET_ERR2 |
| 158 | READ_BYTE_I2C_U15_ERR1 |
| 159 | READ_BYTE_I2C_U15_ERR2 |
| 160 | READ_BYTES_I2C_U15_ERR1 |
| 161 | READ_BYTES_I2C_U15_ERR2 |
| 162 | WRITE_BYTE_I2C_U15_ERR1 |
| 163 | WRITE_BYTE_I2C_U15_ERR2 |
| 164 | WRITE_BYTES_I2C_U15_ERR |
| 165 | WRITE_I2C_ZERO_POT_ERR1 |
| 166 | WRITE_I2C_ZERO_POT_ERR2 |
| 167 | WRITE_I2C_FEEDBACK_POT_ERR1 |
| 168 | WRITE_I2C_FEEDBACK_POT_ERR2 |
| 169 | DC_PORT_SETUP1_ERR |
| 170 | DC_PORT_SETUP2_ERR |
| 171 | DC_PORT_SETUP3_ERR |
| 172 | I2C_CALIBRATION_ERR |
| 173 | I2C_AXIS_ENABLE_ERR1 |
| 174 | I2C_AXIS_ENABLE_ERR2 |
| 175 | I2C_AXIS_MUTE1_ERR |
| 176 | I2C_AXIS_MUTE2_ERR |
| 177 | I2C_READ_TTL_ERR1 |
| 178 | I2C_READ_PIEZO_DAC_ERR1 |
| 179 | I2C_READ_PIEZO_DAC_ERR2 |
| 180 | I2C_WRITE_PIEZO_DAC_ERR |
| 181 | I2C_READ_ERR2 |
| 182 | MS_I2C_IDLE_ERR |
| 183 | MS_I2C_STOP_ERR |
| 184 | I2C_WRITE_ERR2 |
| 185 | I2C_WRITE_ERR3 |
| 186 | I2C_WRITE_ERR4 |
| 187 | I2C_WRITE_ERR5 |
| 188 | I2C_WRITE_ERR6 |
| 189 | I2C_WRITE_ERR7 |
| 190 | I2C_WRITE_ERR8 |
| 191 | I2C_WRITE_ERR9 |
| 192 | I2C_WRITE_ERRA |
| 193 | I2C_WRITE_ERRB |
| 194 | I2C_WRITE_ERRC |
| 195 | I2C_NACK_ERR3 |
| 196 | I2C_NACK_ERR4 |
| 197 | I2C_READ_ERR3 |
| 198 | I2C_READ_ERR4 |
| 199 | I2C_READ_ERR5 |
| 200 | I2C_READ_ERR6 |
| 201 | I2C_READ_ERR7 Tunable lens temp sensor I2C_NACK error |
| 202 | I2C_READ_TTL_ERR2 |
| 203 | I2C_NACK_ERROR |
| 204 | ERR_TTL_READ_TIMEOUT |
| 205 | ERR_TTL_MISMATCH I2C bus error. |
| 206 | I2C_WRITE_ERRD |
| 207 | I2C_WRITE_ERRE |
| 208 | I2C_READ_ERR8 |
| 209 | I2C_READ_ERR9 |
| 210 | I2C_WRITE_ERRF |
| 211 | I2C_WRITE_ERR10 |
| 212 | I2C_WRITE_ERR11 |
| 213 | I2C_WRITE_ERR12 |
| 214 | I2C_WRITE_ERR13 |
| 215 | I2C_WRITE_ERR14 |
| 216 | I2C_WRITE_ERR15 |
| 217 | READ_BYTE_I2C_U15_ERR3 |
| 218 | READ_BYTE_I2C_U15_ERR4 |
| 219 | READ_BYTE_I2C_U15_ERR5 |
| 220 | READ_BYTE_I2C_U15_ERR6 |
| 221 | I2C_BUS_ERROR_RD |
| 222 | I2C_BUS_ERROR_WR |
| 223 | I2C_WRITE_ERR16 |
| 224 | I2C_WRITE_ERR17 |
| 225 | RDBYTE_0 |
| 226 | RDBYTE_1 |
| 227 | RDBYTE_2 |
| 228 | RDBYTE_3 |
| 229 | RDBYTE_4 |
| 230 | RDBYTE_5 |
| 231 | RDBYTE_6 |
| 233 | RDBYTE_7 |
| 234 | RDBYTE_8 |
| 235 | RDBYTE_9 |
| 236 | READ_I2C_ALIGNSET_ERR3 |
| 243 | I2C_NACK_WRITING |
| 244 | LIMIT_NOT_FOUND |
| 254 | REPORT_PSD |
| 255 | WRITE_DAC_ERROR0 |
| 256 | WRITE_DAC_ERROR1 |
| 257 | WRITE_DAC_ERROR2 |
| 258 | I2C_DIP_SWITCH_ERR0 |
| 259 | I2C_DIP_SWITCH_ERR1 |
| 260 | I2C_DIP_SWITCH_ERR2 |
| 261 | WRITE_DAC_ERROR3 |
| 262 | I2C_DIP_SWITCH_ERR3 |
| 263 | WRITE_I2C_ALIGNSET_ERR3 |
| 264 | LCD_STATE_ERROR |
| 300 | Autofocus Scan failed due to insufficient contrast |
| 301 | Autofocus Calibration Failed |
| 302 | Clutch Disengaged, Engage clutch to do Autofocus |
| 305-311 | Source of last Reset , Very common there will always be one preset on controller start. 305(External VDD Mon),309(Software cmd or reset button),307(Missing Clk), 306(Onboard VDD Mon) |
| 500 | TX1_OVERRUN |
| 501 | TST_ERROR0 |
| 502 | TST_ERROR1 |
| 503 | TST_ERROR2 |
| 504 | TST_ERROR3 |
| 505 | TST_ERROR4 |
| 600-604 | FEEDBACK_POT0_TEST |
| 610-614 | ZERO_POT0_TEST |
| 620-624 | ALIGNSET0_TEST |
| 630-634 | ENCODER_TEST |
| 635 | DIP_SWITCH_SELF_TEST |
| 636 | PIEZO_DAC_TEST |
| 640-641 | FW_DEAD_ERROR |
| 650-651 | FW_ABSENT_ERROR |
| 665 | I2C_RECOVER_SUCCESS |
| 666 | I2C_RECOVER_FAILED |
| 670 | TTL1_LIMIT_X - TTL1 went “HIGH”, halted X axis |
| 671 | TTL1_LIMIT_Y - TTL1 went “HIGH”, halted Y axis |
| 672 | TTL1_LIMIT_Z - TTL1 went “HIGH”, halted Z axis |
| 673 | TTL1_LIMIT_F - TTL1 went “HIGH”, halted F axis |
| 65535 | 10 MINUTE ELAPSED TIME MARK |
† The last digit indicates the axis number that is in error in controller ordering starting from 0. E.g. on three-axis units X=0, Y=1, and Z=2; on single-axis MFC units, Z=0.
FATAL errors cause the controller to halt motion on the axis that has the error. A commanded move will not be completed to the desired precision if a FATAL error occurs.
RECOVERABLE errors do not stop the controller from attempting to complete a commanded move. Large numbers of recoverable errors should be taken as a warning. Frequent servo errors (numbers 90-92) often mean that the speed is near or exceeding the stage maximum. Frequent overtime errors (numbers 1-9) often mean that competing processes, such as over-frequent serial status requests, are using too much CPU time.
Legacy CRIFF Error Codes
These error codes are for legacy CRIFF devices.
| Error Number † | Error Description |
|---|---|
| 237 | I2C_WRITE_INT_ERR1 |
| 238 | I2C_WRITE_INT_ERR2 |
| 239 | I2C_WRITE_OP_CODE_ERR1 |
| 240 | I2C_WRITE_OP_CODE_ERR2 |
| 241 | I2C_READ_INT_ERR1 |
| 242 | I2C_READ_INT_ERR2 |
| 248 | CRIFF_I2C_ERR1 |
| 249 | CRIFF_I2C_ERR2 |
| 250 | I2C_READ_FAIL |
Other Error Types
Command Syntax Error Codes
When a command is received that the controller cannot interpret, for one reason or another, an error is returned in the following format:
:N-<error code>
The error codes are as follows:
| Command Syntax Error Codes | |
|---|---|
| :N-1 | Unknown Command (not issued in TG-1000) |
| :N-2 | Unrecognized Axis Parameter (valid axes are dependent on the controller) |
| :N-3 | Missing Parameters (command received requires an axis parameter such as x=1234) |
| :N-4 | Parameter Out of Range |
| :N-5 | Operation Failed |
| :N-6 | Undefined Error (command is incorrect, but for none of the above reasons) |
| :N-7 | Invalid Card Address |
| :N-8 … :N-10 | Reserved |
| :N-11 … :N-20 | Reserved For Filterwheel |
| :N-21 | Serial Command Halted (by the HALT command) |
| :N-30 … :N-39 | Reserved |
Filter Wheel Error Codes
A list of recent errors are available through the Dump Errors (DE) command.
| Error Codes | ||
|---|---|---|
| Name | Number | Notes |
| OVERSHOT | 10 | Plus axis number. |
| DRIVER_HOT | 25 | |
| RUN_AWAY | 30 | Plus axis number, followed by mode. See mode table below. |
| LARGE_OVERFLOW | 50 | Plus axis number. |
| SLIP_ERROR | 70 | Plus axis number. |
| PAST_ERROR | 80 | Plus axis number. |
| ERROR_OVERFLOW | 90 | Plus axis number. |
| KP_ERR_OVERFLOW | 100 | Plus axis number. |
| KV_SPD_OVERFLOW | 110 | Plus axis number. |
| KI_SUM_OVERFLOW | 120 | Plus axis number. |
| ERR_INTEGRAL_OF | 125 | Plus axis number. |
| KD_TRM_OVERFLOW | 130 | Plus axis number. |
| KA_TRM_OVERFLOW | 140 | Plus axis number. |
| ENCODER0_ERROR | 160 | Plus error number. |
| ENCODER1_ERROR | 170 | Plus error number. |
| MOVE_OVERTIME | 180 | Plus axis number. |