Faults and warnings
The S1 reports what it is doing as a state, what went wrong as faults, and what is getting close to wrong as warnings. All three are in every telemetry frame, and Tercio Control shows them on each motor’s page.
States
Section titled “States”| Value | State | Meaning |
|---|---|---|
| 0 | Disabled | Bridge off. The shaft turns freely. |
| 1 | Holding | Closed loop, at rest, holding the target. |
| 2 | Moving | Following a position move. |
| 3 | Velocity | Turning at a set velocity. |
| 4 | Step/Dir | Following the STEP/DIR/EN inputs. |
| 5 | Calibrating | Calibrate is running. |
| 6 | Homing | Home is running. |
| 7 | Auto-tuning | AutoTune is running. |
| 8 | Fault | A hard fault switched the bridge off. ClearFaults once the cause is gone. |
Faults
Section titled “Faults”A fault latches: it stays set until it is cleared, even if the cause went away. There are two kinds:
- Hard faults switch the bridge off and put the axis in the Fault state. The motor has no holding torque.
- Soft faults stop the motion. The axis stays enabled.
| Bit | Fault | Effect | What to do |
|---|---|---|---|
| 0 0x0001 | Over-temperature OVER_TEMPERATURE | Bridge off | The board is too hot. Let it cool, improve airflow or lower the run current. |
| 1 0x0002 | Driver over-temperature DRIVER_OVER_TEMP | Bridge off | The TMC2209 shut down on heat. Lower the current or add cooling. |
| 2 0x0004 | Driver fault DRIVER_FAULT | Bridge off | The driver switched its bridge off: short circuit or supply problem. Check the motor wiring. |
| 3 0x0008 | Driver not responding DRIVER_COMM | Bridge off | The TMC2209 stopped answering over UART. Check the motor supply. |
| 4 0x0010 | Encoder ENCODER | Bridge off | No valid encoder readings. Check the magnet and the encoder connection. |
| 5 0x0020 | Stall STALL | Stops motion | The shaft fell behind the command. Reduce speed or acceleration, raise the current, or check for a blockage. |
| 6 0x0040 | Calibration failed CALIBRATION_FAILED | Stops motion | The encoder did not follow the motor. Check the magnet, steps per revolution and gear ratio. |
| 7 0x0080 | Homing failed HOMING_FAILED | Stops motion | No switch or hard stop was found in time, or the axis was blocked. |
| 8 0x0100 | Command timeout COMMAND_TIMEOUT | Stops motion | The host went quiet while the axis was moving, so it stopped. |
Clearing faults
Section titled “Clearing faults”- Fix the cause using the table above.
- Send ClearFaults (Tercio Control: Clear fault on the red banner; Python:
motor.clear_faults()). If the cause is still there, the S1 refuses withFaultedand the fault stays. - After a hard fault, enable the motor again.
Soft faults also clear on their own when the next move starts: a new MoveTo, MoveBy or SetVelocity clears Stall and Command timeout; starting a procedure clears Calibration failed and Homing failed as well.
How fast does the host hear about it? A new fault goes out at once on the event ID (0x080 + node), without waiting for the next telemetry frame. In Python, set bus.on_fault.
Warnings
Section titled “Warnings”Warnings are live, not latched: each one is set while its condition lasts. They never stop the motor by themselves.
| Bit | Warning | Meaning |
|---|---|---|
| 0 0x0001 | Running hot TEMPERATURE_HIGH | The board is within 10 °C of the shutdown temperature. |
| 1 0x0002 | Driver near thermal limit DRIVER_PRE_WARNING | The TMC2209 reports its pre-warning temperature. |
| 2 0x0004 | Magnet too weak MAGNET_WEAK | The encoder magnet is too far away or too weak. |
| 3 0x0008 | Magnet too strong MAGNET_STRONG | The encoder magnet is too close or too strong. |
| 4 0x0010 | Supply voltage low SUPPLY_LOW | The supply is below 8 V. |
| 5 0x0020 | CAN errors CAN_ERROR_PASSIVE | The CAN controller is error-passive: check wiring and termination. |
| 6 0x0040 | Motor disconnected? OPEN_LOAD | The driver sees no current in a coil while enabled: a motor wire may be loose. |
| 7 0x0080 | Saving settings failed STORAGE | The last SaveConfig failed. |
Status flags
Section titled “Status flags”Telemetry also carries eight flags.
| Bit | Flag | Set when |
|---|---|---|
| 0 0x01 | enabled | The bridge is on. |
| 1 0x02 | calibrated | Calibration has been done (and saved). |
| 2 0x04 | homed | Home succeeded since power-up. |
| 3 0x08 | settled | At the target, within the deadband. |
| 4 0x10 | limitMin | The IN1 switch is active. |
| 5 0x20 | limitMax | The IN2 switch is active. |
| 6 0x40 | movePending | A move is queued, waiting for Sync. |
| 7 0x80 | extEnable | The step/dir EN input is active. |