Troubleshooting¶
By symptom. The error flags and what clears them are in Errors and recovery; the faults of the firmware that are known and not yet fixed, with what to do until they are, in Known issues.
The motor does not move¶
flowchart TD
A([The motor does not move]) --> B{Does the driver answer?}
B -- no --> C[The supply and its polarity, the LED;<br>UART: the baud rate, TX and RX;<br>CAN: the node ID, 1 Mbit/s, the termination]
B -- yes --> D{Calibrated?}
D -- no --> E[#Cal and #Save]
D -- yes --> F{An error active? The LED on steadily}
F -- yes --> G[#Error names it: fix the cause, then #Clear]
F -- no --> H{A current limit above 0?}
H -- no --> I[#Ilim to the motor's rated current, #Save]
H -- yes --> J[Command a setpoint in a closed-loop mode;<br>#Mode and #Info show the state]
The driver does not answer¶
| Symptom | Check |
|---|---|
| No LED | the supply, DC+ and DC−, the power cable's orientation. If the cable was the wrong way round the driver is destroyed |
| LED on, nothing on the terminal | 256000 baud; TX to RX and RX to TX; the adapter's port; 3.3 V adapter; the line ending CR+LF |
| LED on, nothing on CAN | the node ID; 1 Mbit/s on the adapter; termination (about 60 Ω across CAN H and CAN L with everything unpowered); the CAN cable's orientation |
Unknown command |
the name's spelling and case: #Kpiq, not #kpiq |
| the LED is off and nothing works after a firmware update | the bootloader has no valid firmware: flash again, see Updating through the bootloader |
Motor GUI¶
| Symptom | Check |
|---|---|
| the browser offers no port | a Chromium-based browser (Chrome, Edge, Brave, Opera); Firefox and Safari have no Web Serial |
| the port is listed but will not open | another program holds it: a terminal, PlatformIO's monitor, the Arduino serial monitor |
| the port opens, nothing appears | the driver's power; TX and RX crossed on a non-Source adapter; the baud rate on a non-Source adapter (256000) |
| No connection on CAN | the CANvas adapter's port; the bus termination; the node ID of the driver; 1 Mbit/s |
| the calibration does not start | calibration runs over the serial connection only, not over CAN |
| Unsaved changes after a power cycle | the settings were not saved to the driver; Save writes them |
| the firmware update finds no bootloader | power-cycle the driver while the GUI scans, to catch the bootloader's 2 s window. A driver with firmware 101 or older has no bootloader (one that reports 101 may have it: Drivers that report 101): Installing the bootloader on an older board |
Calibration¶
The messages and their causes are in Calibration. The ones that come back most:
| Symptom | Cause |
|---|---|
Magnet test: Failed |
magnet too far, axially magnetised, or missing |
| the motor wobbles left and right during calibration | one phase is not connected |
Open loop: Failed |
the motor did not turn: a phase open, the open-loop voltage (#Openv) too low for the motor |
Commutation/alignment check failed! |
the motor did not respond to the commutation check: a phase open, #Iqoffset too low, a magnet that slips |
| calibration succeeds, the motor then runs badly or in the wrong direction | the magnet slipped on the shaft; glue it and calibrate again |
calibration succeeds but the LED stays on and #Error shows nothing |
#Info shows -1, a value from an older release (The check at power-up): #Default, calibrate again |
The motor¶
| Symptom | Cause |
|---|---|
| crunching or whining at speed | the current limit or the current loop gains too high; lower #Ilim, lower #Cbw and calibrate again, or lower #Kpiq |
| humming, oscillating at rest | #Kpv or #Kpp too high; see Current limit and loop tuning |
| weak torque | #Ilim low; the supply's current limit; a calibration run at a low supply voltage (the constants are off) |
| the motor is hot | lower #Ilim, enable the thermistor; a gimbal motor held against a load at its current limit heats quickly |
| it stops with a Vbus error when decelerating | the supply cannot absorb the returned energy; a different supply, or a brake resistor |
| it stops with a velocity error | the measured speed passed the fixed limit of 20,000,000 ticks/s: an encoder fault or a slipping magnet, rarely a real runaway; #Vlimit does not change it |
| it falls behind under a load | the torque limit: raise #Ilim within the motor's rating, or a bigger motor |
| it holds position with a sawtooth noise | the position loop gain; the magnet distance |
Low-quality motors¶
Motors with visibly bad windings, an uneven back-EMF or a resistance that differs between the phases calibrate poorly and run rough. The tested motors are known good.
The magnet and the encoder¶
- The distance is 1 mm. "Magnet Good" from the magnet test does not mean the distance is right, only that the field is strong enough.
- A magnet touching the chip can destroy the microcontroller; a magnet too far gives a noisy, wrong position.
- The magnet must be diametrically magnetised and centred on the shaft.
The driver gets hot or shuts down¶
The MOSFET driver stage shuts down on its own overtemperature or overcurrent and reports a driver error. Lower the current limit, give the board airflow, check the motor leads for a short. Near 2.8 A the driver needs cooling.
After a firmware update¶
#Info shows the new release. If the values look wrong or the LED stays on: #Default, #Cal, #Save. A release note says when an update clears the calibration.
Getting help¶
Support says where to ask and what to include; #Info's output is the first thing.
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