# Error Codes and Messages

Overview of supported error codes and messages for the fixture firmware.

Error Codes are up to 5 letters long codes shown on the main screen when an error or fault condition occurs. They do not indicate a specific error and its cause, but rather hint in a general direction what is going wrong. They are also transmitted in the `GLP_ERROR_CODES` RDM PID.

Error messages are shown in the `Errors` menu and provide detailed information about what error occured in which component.

When reporting bugs, or enquiring about fixture issues always include error messages! The error codes are rather useless for anything than first seeing that something is wrong.

If an error code is called sticky, it will be shown even if the fault went away by itself. This is used for critical things that you would want to investigate even after the fault went away. An example is a fan where the current dropped to zero although it should run at full power, because a cable is damaged. You want to be notified that something is wrong, even if the the cable has contact again.

In the error message below, `{}` acts as a placeholder. Detail information will be inserted there on the fixture.

## Error Codes

All 5-letter error codes supported by the firmare. Note that this does not mean they actually can be triggered by the firmware, depending on the hardware and software configuration. But none other than these can occur.

### `CALER`

LED Calibration Error

### `DUSTF`

Warning, dust filter probably clogged

### `FANER`

Fan Error (sticky)

### `IQMER`

iQ.Mesh Error

### `MCUER`

Controller Error

### `MEMER`

Memory Error

### `NIFER`

Network Interface Error

### `STPER`

Generic Stepper Motor Error

### `VERER`

Software Version Error

## Error Messages

List of all error messages that can be shown in the errors menu. The messages are organized by their title. The message as shown on the fixture (with `{}` placeholders) is given, as well as a short description.

Note that not all messages can actually appear "in the field", since some messages should only occur during development, or are impossible due to hardware or software configuration. But none other than these messages can appear.

### ArtNet OEM Invalid

- Message: `Network Interface detected an invalid ArtNet OEM code. Please report this to the GLP Support.`
- Description: The configured ArtNet OEM code is 0x0000, which is a place-holder if the OEM Code is not set. In this case, DMX reception is not possible (sorry). R&D needs to apply for an ArtNet OEM code and when assigned, it needs to be specified in the software.

### Assertion Failed

- Message: `file:line: Message`
- Description: A software assertion failed. Contact R&D department.

### Bootloader Version Invalid

- Message: `{} bootloader version {} is not supported. Expected at least version {}.`
- Description: A bus-connected controller is not responding to commands. Check the connections in the device and the status LEDs of the appropriate controller.

### Buffer Memory Exhausted

- Message: `Memory allocation failed at {}:{}`
- Description: Failed to allocate memory on block-allocated memory region. Contact R&D department.

### Controller Timeout

- Message: `{} did not respond to bus commands for a period of time.`
- Description: A bus-connected controller is not responding to commands. Check the connections in the device and the status LEDs of the appropriate controller.

### Fan: Cannot Init

- Message: `{} parameters were not transfered correctly to driver!`
- Description: Configuration of fan not possible.

### Fan: Controller Timeout

- Message: `{} controller is not responding!`
- Description: Reliable communication is with the controller is not possible. Detected separately from controller timeout, because fan errors are considered to be critical.

### Fan: Dust Warning

- Message: `{} fan is spinning slower than expected, check for dust buildup`
- Description: Only available for selected fans, and only if the tachometer signal is available. If the measured fan speed during POST, or full-on operation is below a certain threshold, the airflow through the fan is probably attenuated by dust build-up. Clean the filters!

### Fan: No Current

- Message: `{} fan does not draw any current, when it was expected to do so!`
- Description: The measured fan current dropped very close to zero, although it should be running and draw current. See if something is blocking the fan, preventing it from rotating, or if the fan cable contact is loose.

### Fan: No Speed

- Message: `{} fan is not spinning, when it should.`
- Description: Only applicable to fans with tachometer signal. The fan does not spin when it acutally should. Check if something is blocking the fan.

### Fan: No Voltage

- Message: `{} fan driver provides no voltage, when it was expected to do so!`
- Description: The measured fan voltage dropped very close to zero, although the set voltage is non-zero. Check if a fuse was blown on the fan driver PCBA. If not, the driver electronics might be damaged.

### Fan: Over-Current

- Message: `{} fan current exceeded limits!`
- Description: The measured fan current exceeded a set maximum during operation. Can hint to the onset of fan driver electronics breakdown.

### Fan: Over-Speed

- Message: `{} fan speed exceeded limits!`
- Description: The measured fan speed exceeded a set maximum during operation. Only applicable to fans with tachometer signal. Happens if you vacuum clean the fan during operation.

### Fan: Over-Voltage

- Message: `{} fan current exceeded limits!`
- Description: The measured fan voltate exceeded a set maximum during operation. Can hint to the onset of fan driver electronics breakdown

### Fan: POST Current Error

- Message: `Measured current during {} fan self-test was out of accepted limits!`
- Description: Power-On-Self-Test failed because the measured current deviated too much from nominal value. Check the `Fan Status` menu to see the measured and expected values. Zero current means the fan is probably not connected, or the cable is damaged.

### Fan: POST not Started

- Message: `{} self-test cannot be started in time!`
- Description: Something prevented the self-test to start. Might be a software incompatibility. Very rare.

### Fan: Post RPM Error

- Message: `Measured speed during {} fan self-test was out of accepted limits!`
- Description: Power-On-Self-Test failed because the measured speed deviated too much from nominal speed. Only applicable to fans with tachometer signal. Check the `Fan Status`menu to see the measured and expected values.

### Fan: POST Voltage Error

- Message: `Measured voltage during {} fan self-test was out of accepted limits!`
- Description: Power-On-Self-Test failed because the measured voltage deviated too much from nominal value. Check the `Fan Status`menu to see the measured and expected values. If the output voltage is very close to zero, check the 48V fuses. If they are okay, the driver electronics is probably damaged.

### Fan: Verify Failed

- Message: `Fan parameter {} for {} has unexpected value when querying controller`
- Description: Configuration was not transfered correctly. Might be caused by a software incompatibility. Should only occur during development.

### Fan: Verify Timeout

- Message: `Cannot verify parameters for {}, the controller did not respond to request.`
- Description: Probably, the fan driver crashed after the configuration was transfered, or electrical noise prevents communication. Should only occur during development.

### Firmware Version Invalid

- Message: `{} firmware version {} is invalid. Expected {}.`
- Description: The firmare on a slave does not match the expected firmware version from the uploaded firmware package. Maybe no bootloader is present on the slave, or something went wrong during the last update / device boot.

### Heap Memory Exhausted

- Message: `Memory allocation failed at {}:{}`
- Description: Failed to allocate memory on heap. Contact R&D department.

### iQ.Mesh: Not Detected

- Message: `Cannot connect to iQ.Mesh system module.`
- Description: The iQ.Mesh module did not respond to any requests, it is therefore assumed it is missing, or defective.

### LED Calibr.: Corrupt Data

- Message: `LED calibration data on fixture is corrupted.`
- Description: Cached calibration in fixture is corrupted. Upload the calibration again using the iQ.Service App.

### LED Calibr.: Decompression Error

- Message: `LED Driver {} did not accept calibration, decompression failed.`
- Description: The calibration data sent to the fixture was somehow malformed. Probably an issue with the software used for uploading the calibration.

### LED Calibr.: Driver Timeout

- Message: `LED driver {} did not respond to calibration upload protocol.`

### LED Calibr.: Invalid Calibration

- Message: `LED Driver {} did not accept calibration. Maybe calibration version does not match?`
- Description: The calibration on an LED driver was not accepted by the ColorControl library.

### LED Calibr.: Memory Exceeded

- Message: `Calibration data cannot be uploaded to LED Driver {}, because it is too large.`

### LED Calibr.: No Data

- Message: `No LED calibration data was uploaded to fixture.`
- Description: No calibration was uploaded to the fixture. Use the calibration rig to create a calibration, or use the iQ.Service app to either upload a previous calibration (e.g. after mainboard change), or upload a dummy calibration.

### LED Calibr.: Outdated Calibration

- Message: `Calibration on LED Driver {} is outdated, please update using iQ.Service app, or contact GLP support.`
- Description: The version of the calibration data is considered to be outdated. This can happen after an update, if features or bugfixes require a re-calculated set of calibration parameters. It is not required to do a new calibration! An update via the App or DMX dongle suffices. The fixture should still work without the update, but the performance might not be optimal.

### LED Calibr.: Stream Corruption

- Message: `LED Driver {} did not expect transferred packet (lagged {} frames). {}`

### Motor: Cannot Start Reset

- Message: `{} reset sequence cannot be started! Controller does not report reset activity.`
- Description: Reset cannot be started. Probably, the motor driver is in bootloader-mode, or it is not responding at all. Could also hint to a software incompatibility.

### Motor: Feedback Error

- Message: `{} encoder did not detect motion, or measured distance does not match expected value.`
- Description: Feedback (Hall/Encoder) error during motor reset. Check if optical encoders are correctly aligned and clean. Check if belt tension is correct.

### Motor: Invalid Phase Count

- Message: `Configured number of {} motor phases ({}) is invalid. Driver {} support vari-phase.`
- Description: Configured number of motor phases is invalid. This should only happen during development, or when exchanging (incompatible!) hardware between different fixture generations.

### Motor: Reset Soft-Timeout

- Message: `{} controller did not report reset success in-time. Consider reset as timeouted.`
- Description: Reset timeouted in motor controller module.

### Motor: Reset Timeout

- Message: `{} reset was not finished in required time!`
- Description: Reset timeouted in the motor driver

### RDM ID Slice Exhausted

- Message: `Serial number {} is too large for RDM ID slice 0x{}. Software change required, contact R&D department.!`
- Description: Contact R&D department!