Improved calibration mechanism

A project log for moteus brushless controller

Open source, compact, high performance, FOC based BLDC motor control

josh-pieperJosh Pieper 11/23/2021 at 14:500 Comments

TLDR: The default calibration approach used by moteus_tool as of version 0.3.30 now works on a much wider variety of motors, including gimbal style high resistance motors, and smaller high Kv motors.

pip3 install --upgrade moteus

Long form

During the calibration process, moteus_tool measures a few different motor parameters.  Those are the relationship between the electrical phases and the magnetic encoder, the phase resistance, the phase inductance, and the Kv rating.  Each of these operations has to assume something about the motor in order to operate correctly.  While those assumptions are configurable, there are many things that have to be set for any given motor and the names are non-obvious.

With the newer version, there are two primary tunables.  The first is how much power to dissipate in the windings during the encoder, resistance, and inductance calibration phases.  The second is the maximum mechanical speed to try to spin at during Kv calibration.

Given those values, moteus_tool gradually ramps up the voltage to find an appropriate value that roughly matches the desired power consumption and the desired speed.  That makes it work on motors with very low or high resistance, and very low or very high Kv with no modifications.

All the old parameters are still there, albeit with rationalized names.  If you want the details of what those names are, you can check out the more detailed write-up at: