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 and there will always be one reset 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_ERRO |
| 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 Error Codes
These errors codes are no longer in use.
- CRIFF Error Codes
-
These error codes are for legacy
CRIFFdevices.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. |