Diagnostic Monitoring

The controller performs both start-up and continuous monitoring of various conditions. A condition that is outside a normal range may cause the controller to automatically take mitigating action (e.g. cut back output power) or trigger a fault.

For clarity, the term condition refers to a specific status indication. A low battery voltage is an example of a condition. The term fault refers to a condition that causes the controller to inhibit motion, and requires a keyswitch cycle to clear.

So, for example, a throttle deadband check can result in a condition that inhibits motion, but it is not a fault. When the deadband condition clears (throttle moved back to neutral) the condition clears and motion is allowed.

Conditions

The following conditions are monitored and reported as status. Conditions are not exclusive (more than one abnormal condition can be reported at a time)

Controller Temperature

An onboard sensor measures the temperature of the controller near the drive electronics. As the temperature rises near the limit, the controller will indicate a high temperature condition and automatically reduce power. When the temperature decreases, output power will be restored and the high temperature indication will clear. See Controller Temperature Limit for more information.

Motor Temperature

Applies to

Version 1.7.2 and higher

When wired to a temperature sensor in the motor, the controller's ANALOG IN input monitors the sensor. There are two temperature thresholds. The first one causes the motor current to be reduced when the threshold is exceeded. The second (higher) limit will cause the motor to stop, report a fault, and require a key switch cycle before the motor will run again. See Motor Temperature Limiting for more information.

Under Voltage

The controller monitors the input voltage and compares it to two values: a threshold for displaying a low battery indication (Undervoltage), and a second threshold (Severe Undervoltage) that reduces the output power in order to extend battery life and potentially allow the vehicle to return to a charging point before stopping completely. When the voltage drops below the severe undervoltage threshold by a few volts, the controller switches off. Cycling keyswitch will turn the unit back on if the system voltage has increased above the severe undervoltage limit.

To troubleshoot an under-voltage condition, check for

  • Depleted batteries
  • Correct wiring between the battery and motor controller
  • Correct configuration of the low-voltage limit.

Over Voltage

The system High Voltage Limit is configurable. If the system voltage increases toward this limit, the controller will report an overvoltage condition and will begin to limit the output power. When the over-voltage condition clears, power will be restored. A common situation that can lead to an overvoltage condition is heavy regenerative braking with a fully charged battery.

If the voltage continues to rise above the high-voltage limit, the controller will stop to protect the hardware from damage. The controller will resume operation when the over-voltage condition clears and (if Deadband Check is enabled) the throttle returns to a neutral position.

Current Limiting

If the output current to the motor exceeds the preset limit, the controller limits its output to prevent damage to the system.

Throttle Deadband Check

If configured to do so, the controller will not allow movement after power on, until the throttle has been detected to be in the neutral position. This is intended to prevent unexpected movement when the controller is switched on, and the throttle is not in neutral. Moving the throttle to the neutral position will clear the condition.

Other things to check:
- Correct configuration of the Throttle Deadband
- Correct configuration of the Throttle Neutral
- Correct configuration of the No Deadband Start setting.

Quickstop Active

The Quickstop input allows the external system to inhibit motion. The Quickstop signal is configurable; for example, whether it is active high or low, how quickly the motor decelerates when the condition occurs, and whether the keyswitch must be cycled in order to restore motion. See Register 0x0318 and Register 0x0353 for more configuration information.

Typically this condition means that a safety sensing device such as a seat switch, proximity sensor, emergency stop button has been activated. Check for
- A device connected to the Quickstop input indicating a stop condition
- Loose or broken connection to the Quickstop input
- Incorrect configuration of the Quickstop input

Motor Stall

A stall condition was detected using the motor position sensors. Check for

  • Obstacles preventing movement
  • Correct wiring to the motor and motor sensors.
  • Correct configuration of the motor sensor(s)

The controller will continue to provide power to the motor during a stall condition.

CAN Bus Communication

If CAN Bus equipped, and CAN Bus is being used to provide control inputs, a loss of CAN Bus communication (too many missed messages or bus off condition) will cause the controller to inhibit motion. Re-establishing the CAN Bus connection will restore operation. Note: if the Deadband Check feature is enabled, the throttle must first be moved to the neutral position before motion is allowed.

Motor State

The controller provides a motor state output byte that is useful for monitoring the drive state of the controller. Its value is one of the following. See System Status Message for more information.

State Condition Description
0 Powering Up/Down A temporary state while the controller completes its power-up or power-down processing
1 Idle The controller is ready but is not driving the motor
2 Idle Hold The controller is ready but is not driving the motor, and is in a regenerative braking mode that resists motion.
3 Push Mode The controller is running in push mode. The motor was turned by external forces which generated voltage enough to power on the module.
8 Overvoltage Protect The controller is limiting output power due to a high input voltage condition
9 Diagnostic Fault Motion is inhibited due to a fault condition
10 Operating Fault Decel The motor is stopping due to an abnormal condition
11 Operating Fault Zero PWM The motor is stopped due to an abnormal condition
16 Reverse Idle The controller is ready to drive in reverse. The throttle is in a neutral position
17 Forward Idle The controller is ready to drive forward. The throttle is in a neutral position
20 Reverse Limited The controller is driving reverse, but a power-limiting condition is active. Refer to PWM Diagnostics for details.
21 Forward Limited The controller is driving forward, but a power-limiting condition is active. Refer to PWM Diagnostics for details.
24 Reverse The controller is driving in Reverse
25 Forward The controller is driving in Forward

System State

The controller provides a status output that signals conditions in an abnormal range. It is possible for multiple conditions to be reported as out-of-range at the same time. See System Status Message for more information.

Bit Mask Condition Description
0x01 Overtemperature The on-board sensor is indicating a temperature approaching the limit
0x02 Stall The controller has detected that the motor is not moving (stalled). This condition applies to BLDC motor types.
0x04 Undervoltage The controller has detected that the input voltage is near or below the undervoltage threshold.
0x08 Overvoltage The controller has detected that the input voltage is near or above the high voltage threshold.
0x10 Sensor_Fault Set when invalid motor sensor pattern detected
0x20 Over Volt Protect Set when High Volt Protect active
0x40 Holdoff 1.8.2+/
Throttle Fail
Holdoff (motor control is held idle. Could be a failure condition or charger detected but not active).
Throttle Fail is set when throttle has entered fail band. This feature was removed in 1.8.2.
0x80 Quickstop Active Set when quick stop active

PWM Diagnostics

The controller provides a status message that contains information about what could be causing no PWM or limited PWM to occur. Multiple bits can be set. See System Status Message for more information.

Bit Mask Condition Description
0x01 Accel Drive PWM is set to zero due to acceleration drive
0x02 Hard Stop /
Current Limited
Prior to 1.7.8 PWM is set to zero due to hard stop
1.7.8 and above this means current limit is not cur_ub
0x04 Limited PWM is being limited by unspecified source
0x08 Max PWM PWM is being limited by max_pwm setting
0x10 Low Battery PWM limiting w/in range of Low Battery Voltage
0x20 High Voltage PWM limiting w/in range of High Battery Voltage
0x40 High Temperature PWM limiting w/in range of High FET Temperature
0x80 High Motor Temperature PWM limiting w/in range of High Motor Temperature

Stop Diagnostics

The controller provides a status message that contains information about what caused the motor to stop. This is an enumerated value. Bits 0-3 contain the value. See System Status Message for more information.

Value Condition Description
0 No stop condition No stop has been activated
1 Drive time exceeded Drive Timer Exceeded
2 Forward/Reverse inhibits active Contact detected with object
3 Digital stop active Stopped receiving CAN Bus Digital Throttle commands
4 Qstop pin active Emergency stop signal activated
5 Seat stop active Seat switch shows seat not occupied
6 Charging active Battery is being charged
7 Deadband start fault Throttle was not in deadband when powering on
8 Key off active Key switch is turned off. Unit may shut off
9 Throttle failure active Throttle exceeded Failband limits
10 Sensor failure active Hall sensor disconnected/malfunction
11 ANALOG IN stop active External temperature limit exceeded
12 Waiting for deadband start Throttle is not in deadband
13 Locked Special CAN Bus feature that requires 0 throttle before running
14 No Drive / Internal Failure Diagnostic failure
15 Latched Failure Fault occurred, key switch is required to clear fault
16 Current Limit Exceeded Current limit exceeded. See Motor Current Limiting

Miscellaneous Diagnostics

The controller provides a status message that contains miscellaneous information about what could be causing certain faults or conditions. See System Status Message for more information.

Bit Mask Condition Description
0x01 Reserved
0x02 Reserved
0x04 Reserved
0x08 Reserved
0x10 Reserved
0x20 Sensor Error Hall Effect Sensor error active
0x40 ANALOG IN Limit Motor temperature is above software limit. Throttle input range is being affected.
0x80 Seat Stop Active Seat Stop request active

Special Diagnostic Commands

Special diagnostic information on motor faults can be found by reading special RAM registers.

Register Function Description
0106 Diagostic
Warnings
0x00 No Warnings
0x81 EEPROM Revision Error
0x82 Calibration Error
0107 FET Test Test for motor opens and shorts
0x00 No faults
0x18 - 0x1F Faults during "No FET" test
0x38 - 0x3F Faults during "One FET" test
0x48 - 0x4B Faults during "FET Pairs" test
0x4C - 0x4F Open Motor Faults

Charge Mode

The charge mode status byte indicates the status of the connected battery charger (applies to compatible chargers only). If the value is 0, the controller is not in charging mode.

Value Description
0x01 Pre-Charge
0x02 Bulk Charge
0x04 Balancing
0x08 Float
0x80 Just changed from charge mode to drive mode. Key cycle or power cycle is required to clear this.

Diagnostic Reports

There are several diagnostic records stored inside the controller's EEPROM. Here is a list of information available.

Note: If EEPROM Register 0302 Bit 2 is set, the address of the counters is OR'ed with 0x0080. For example the reset cause will be at 03E9 instead of 0369.

EEPROM
Address
Description Details
0301 Fault Log Pointer EEPROM address of most recent fault in fault log
0370-037F Fault Log Circular buffer of last 16 fault codes
0360 or 03E0 Motor Runtime Counters (LSB) LSB of total run time in .065536 second units
0361/03E1 Motor Runtime Counters (MSB) MSB of total run time in .065536 second units
0362/03E2 Motor Runtime Hours (LSB) LSB of total run time in hours
0363/03E3 Motor Runtime Hours (MSB) MSB of total run time in hours
0364/03E4 Charge Float Errors LSB of charge float errors
0365/03E5 Low Battery Runtime LSB of low battery operation
0367/03E7 Over Temperature Fault Counter Count of OT fault count (Max = 255)
0368/03E8 Throttle Fault Counter Count of throttle fault count (Max = 255)
0369/03E9 Reset Cause Cause of last microprocessor reset
Bit 0 = Timed shutdown
Bit 1 = Charge Finished
Bit 2 = Key Switch

Identification

See Identity.

Item Description
Serial # The controller’s factory-assigned serial number.
Motor SW Version Indicates the version of software (major.minor.patch) contained in the motor control microprocessor
Comm SW Version Indicates the version of software (major.minor.patch) contained in the CAN Bus microprocessor (for CAN Bus-equipped and non DSP controllers)