Faults & errors
Identify whether output stopped because of a protection fault or a refused command.
A fault reports a detected problem. A hard fault stops motor output. A warning reports a condition to check but does not always stop output. A refusal means the controller did not accept a command or setting.
What a fault looks like on the motor
Select a pair of lights to play its pattern. Selecting another turns the first off; select the same pair again to stop. These are demonstrations of the two end lights, not a live connection.
| End lights | Meaning | Next step |
|---|---|---|
| Red and orange, alternating | A non-thermal fault has latched. Both end lights swap between red and orange. | Open Health to identify the cause. The light pattern alone does not identify which fault occurred. |
| Orange, brief offset flashes | Thermal protection has stopped output. Each end flashes briefly, offset from the other. | Disable, let the motor cool, and inspect load, limits, and cooling before testing again. |
| Current Measurement Invalid | The controller cannot trust its current measurement and stops output. | Check battery power and connections. If it returns after the cause is cleared, stop testing and contact SWYFT support. |
| Current Control Stopped | Current control cannot maintain a valid switching window. | Check for a jam and review current limits. If it returns, stop testing and contact SWYFT support. |
A command refusal does not necessarily create a fault-light pattern. Read the app’s message as well as the lights. See all status patterns for communication, enable, identify, and updater states.
Protection causes in this release
| Cause | Behavior | Next action |
|---|---|---|
| Power-stage fault | The electronics that switch power to the motor detected a fault and stopped output. | Stop requests; inspect the power-stage report, wiring and load. |
| Undervoltage | Bus voltage is inadequate or collapses during drive. | Check battery voltage and power connections while the mechanism is trying to move. |
| Over-temperature | Sustained high board temperature stops output. | Let it cool; inspect load, limits and cooling. |
| Overvoltage | Voltage at the motor’s power input is too high. | Check voltage at the motor and whether the problem occurs when stopping or reversing. |
| Encoder loss | Motion angle is no longer valid. | Stop and inspect the sensor/reference before rearming. |
| Invalid temperature sensor | A sensor fault is treated as a thermal protection condition. | Inspect the hardware; do not treat it as a temperature to tune around. |
| Emergency stop | An emergency-stop command keeps output disabled until it is released. | Resolve the reason, release the latch, then satisfy enable conditions. |
Warnings are not all hard faults
Temperature warning, low bus voltage, communication history and receive-loss evidence can be reported without meaning the same thing as a latched protection stop. Use the current library’s decoded state or the app’s health view. Do not test faultMask != 0 as a substitute for hasHardFault().
Common refusals
| Refusal type | Response |
|---|---|
| No gains / unsupported mode | Choose a supported mode and configure the required gains. |
| DriverStation or enable gate | For SystemCore control over CAN, check Driver Station and motor enable state. For standalone USB-C testing without CAN, Driver Station is not required; check the motor enable state in SWYFT Link. On firmware 1.7.1 and later, USB-C requires robot permission after the Cyclone has received a robot heartbeat or CAN Disable. Restore permission and select ENABLE again. Unplugging CAN does not bypass this gate. |
| Controller armed during configuration | Stop output, then apply the supported setting again. |
| Field unsupported | Use a supported setting from the API reference. |
| Out of range | Check units and the device’s accepted range. |
| Another command owner | Use either robot code or SWYFT Link to command the motor, not both at the same time. |
Command timeout: restore the connection, check that the mechanism is clear, then stop and deliberately enable again. Increasing the target or repeatedly clearing protection faults does not fix a missing command stream. See what happens when control is lost.
Clear the problem before enabling again
Disable motor output and fix the reported problem first. On a robot, also disable Driver Station. Then clear the fault or release the emergency stop, as appropriate, before enabling and sending a new command. Do not repeatedly clear a fault that returns; that can hide an unresolved electrical, mechanical, or temperature problem. Check the status lights and the message in SWYFT Link together.