Skip to main content
Firmware 6.0.x {testing}

Error log

When the driver detects an error, it logs its human-readable string representation in the non-volatile system log memory. If the log is full, the oldest record is removed.

The log can be printed using log command.

Example output

SC-felix#>log
AUX(err 1, run 8, 25 s): #16445, 46.4932V, 16.6112A, 40.4155C, 16.0112RPM, level E stage 0 pass 0 : phase C positive over-current

Error log structure

The error log string is structured as follows:

Error Log FieldDescription
AUXSource of the log.
err 1Error criticality.
run 8Current run from permanents.
25sTime from controller start.
#16445Error number. (equals to /driver/error)
46.4932VBattery voltage at the time of the error.
16.6112ABattery current at the time of the error.
40.4155CController temperature at the time of the error.
16.0112RPMMotor speed at the time of the error.
level E stage 0 pass 0 : phase C positive overcurrentDecoded error number.
note

If you see over-voltage errors (such as 'Input voltage abs max'), but the reported voltage is below the 'Critical voltage' threshold: Controller averages the voltage measurement, nevertheless the over-voltage protection reacts much faster than the averaging speed. Therefore, the error might be raised even though the recorded value is not exceeding the limit.

LED status indicator and error codes

The siliXcon controllers are equipped with a status LED that provides visual feedback on the device's operational state. In case of a system fault, the LED will blink in a specific sequence to communicate a 16-bit error code. This allows for rapid diagnostics of potential issues. The error code is represented by a sequence of short and long blinks, which correspond to the binary digits '0' and '1'.

The LED signals are defined as follows:

  • Short Blink (Binary '0'): A brief flash of light representing a binary digit '0'.
  • Long Blink (Binary '1'): A longer flash of light representing a binary digit '1'.
  • Inter-Bit Pause: A short pause between each blink within the 16-bit sequence.
  • End-of-Code Pause: A significantly longer pause that occurs after all 16 bits of the code have been transmitted. After this pause, the entire sequence repeats.

How to decode an error

To identify an error, observe the blinking pattern and translate it into a 16-bit binary number. The blinking occurs from left to right (most significant bit to least significant bit).

Example

Let's assume the device is signaling a "Undervoltage or SMPS off - battery voltage was below Critical error undervoltage" error, which corresponds to the binary code 0111 1111 1111 0100 (Hex: 0x7FF4). You would observe the following pattern:

Sequence StepEventBit Value
1Short blink0 (MSB)
2Long blink1
3Long blink1
4Long blink1
5Long blink1
6Long blink1
7Long blink1
8Long blink1
9Long blink1
10Long blink1
11Long blink1
12Long blink1
13Short blink0
14Long blink1
15Short blink0
16Short blink0 (LSB)
17Long pause

By writing down the sequence of 0s and 1s, you can determine the 16-bit code and look up its meaning in decode the error page.