Handling Errors

My controllers use two LEDs to indicate controller status.
H1 – DMX Activity flashes to indicate DMX data has been received and processed.
H2 – Power / Error is on to indicating Power is ON and there are no errors.  H2 flashes various patterns to indicate the type of error.

The change of a relevant channel is indicated by a flashing green LED.

flashing DMX data has been received and processed. Normal Operation.

The red LED repeats error codes until cleared:

Pattern Error Solution
flashing There is no signal connected to the transceiver. Connect the transceiver to the DMX bus.
double flashing The received signal is not DMX. Try swapping D+ and D- at the DMX connector.
triple flashing Future Functionality. N/A.
constant on DMX received and no errors.  Normal Operation

This error indicator is easily implemented with the following code:
void indicate(void) {
static uint8_t count;
if (++count >= 10)
count = 0; // reset every 5 secs
if(Blink ==0) CLEAR(H1);
else if (count <= Blink)
TOGGLE(H1); // toggle LED
}

Each error condition is given an unique Odd number.
The LED Flash period is set by an timer overflow.

This entry was posted in AVRs, DMX, Light Controllers. Bookmark the permalink.