Errors and recovery¶
When the driver inside the gripper detects a fault it stops the motor, goes to idle and sets the error bit in every CAN frame it sends. The grip is released: an idle motor holds nothing beyond the mechanism's friction.
Seeing the error¶
- The error bit of every answer's identifier: 1 while any error is active.
- Respond_Gripper_data_pack carries the three gripper error bits: temperature, timeout, E-stop.
- Send_Respond_State_of_Errors returns every flag of the driver, which is where the other causes show.
- Motor GUI shows the errors in its gripper panel;
#Errorover UART prints them.
The errors¶
| Error | Reported in | Cause | What to do |
|---|---|---|---|
| Temperature | the gripper's temperature bit | the thermistor in the windings reads more than 75 °C (#Tlim) |
let the motor cool; hold with less current |
| Timeout | the gripper's timeout bit | the driver's CAN watchdog ran out: no valid frame within the time set by Send_Watchdog | the host stopped sending; fix the host, then clear |
| E-stop | the gripper's E-stop bit | a move command with the E-stop bit set, or #Gripstop 1 |
send a command with the bit at 0 (or #Gripstop 0), then clear: while the last command's bit is 1, a clear does not hold |
| Not calibrated (motor) | State_of_Errors, #Error |
the driver's own motor calibration is missing: a self-built gripper before Driver configuration, or after #Default |
calibrate the motor |
| Vbus | State_of_Errors | the supply is below 9 V or above the driver's #Vmax limit, 29 V after #Default |
the supply, the cable |
| Encoder | State_of_Errors | the driver's encoder does not see its magnet | the magnet on the motor shaft (a self-built gripper) |
| Driver | State_of_Errors | the driver stage's own protection tripped: overcurrent, overtemperature | lower the current; check the motor leads |
| Velocity | State_of_Errors | the motor exceeded the driver's speed limit | unlikely in a gripper; clear |
| Driver E-stop | State_of_Errors | Send_ESTOP was received | clear |
A gripper that is not gripper-calibrated is not in error: it just refuses moves until Send_gripper_calibrate has found the end stops.
Clearing¶
Send_Clear_Error, Clear in the GUI or #Clear clears every flag, the gripper's E-stop included, and goes to
idle. An error whose cause is still present comes straight back: a hot motor, a supply that is still low.
The gripper's E-stop counts as such a cause while the E-stop bit of the last gripper command is 1: the driver
raises the error again at every cycle. So after an E-stop, first send a gripper command with the E-stop bit at 0
and the action bit at 0 (or #Gripstop 0 over UART), then clear. The next command with the action bit set moves
the gripper again.
After clearing, the gripper is idle and still calibrated and activated; the next move command moves it. A clear sent while the gripper calibration runs ends the calibration, and the gripper stays uncalibrated.
When the gripper does not answer¶
- No answer at all: the supply, the cable (and its pinout), the bus termination (about 60 Ω across CANH and CANL with everything unpowered), 1 Mbit/s on the adapter, the node ID.
- Answers but does not move: not calibrated, not activated, an error active, or the action bit at 0.
- Moves to one end during calibration and stops there: the other end stop is blocked, or the mechanism is too stiff for the calibration's 500 mA; after 30 seconds the routine gives up.
Troubleshooting goes through the symptoms one by one.
Comments
Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF