I am using the VESC to control a robot joint and for that I need maximum torque out of relatively small motors at zero and low speeds. Motors I am testing are for example a Hobbyking AX-4005-650kv, Turnigy 4220-880kv and a Flyduino HE4108-475kv.

I think I have managed to figure out most of the basics of the VESC controls and settings. I have added hall sensors to the AX-4005 and it operates well. However it doesn't feel like I am getting the most torque out of the motors that should theoretically be possible, so perhaps someone could help me consider this problem?

I estimate the theoretical torque from some basic motor information (in this case the AX-4005):

* 650kv = 0.015Kt (Nm per Amps, ±25% error)

* Therefore at, say, 30A ==> 0.45Nm output (theoretical maximum)

However the motor has been driven at above that current (perhaps 50A peak at times) and at no point I believe I have achieved >0.07Nm, or 15% or theoretical value.

I can see the following might be the problem:

- Sub-optimal commutation despite hall sensors seemingly operating correctly
- Current readings on BLDC-Tool are not correct
- Calculation of torque (theoretical or actual) error
- Other incorrect VESC setting limiting performance

Out of those I believe I have mostly eliminated 2 and 3. The current readings match an external meter in series with the battery. More accurately, the "motor current" in realtime-data view is often much higher than "current-in", but "current-in" often matches the external ammeter fairly closely (average and peaks). I admit I am yet to understand how "motor current" and "current-in" can be so different at times. I must be missing something, like multiply by duty factor perhaps?

For torque, I may be mistaken about the theoretical maximum of the motor. Perhaps someone can spot if I overlooked something? I am fairly confident of the measured torque output, as the test is simply to turn a shaft that lifts a weight. Lever arm multiplied by mass lifted, converted to Newtons.

I have carried out torque experiments both by demanding maximum duty factor in BLDC-Sensored mode and through PID Position control in FOC mode (sensored, by setting "Senseless ERPM in FOC to very high such as 10000).

That leaves me with 1 and 4. Unfortunately I am not sure what might be helpful to mention without making this an even longer(!) post. The motor works very nicely in BLDC and FOC modes. I have set current limits well above 30A, so it's definitely being achieved. In fact some motor coils are now quite charred, I will need a new one.

Any insight or ideas would be much appreciated.