I’m testing a large gimbal BLDC using ODrive and got trouble: after first "p … " command nothing happen but error code (“g 1 3”) is “6” that means (as I understand) “ERROR_PHASE_INDUCTANCE_OUT_OF_RANGE”. Could you suggest some next step?
That is actually really interesting that it would trip the phase inductance check: gimbal motors are usually driven in a different way than regular brushless motors, because of their higher resistance.
Actually you should have tripped the ERROR_PHASE_RESISTANCE_OUT_OF_RANGE first, but I just discovered a bug in that test which means it will never trip (it cannot detect resistances higher than 0.1ohm in the way it’s implemented currently, and the trip level is set to 0.2 ohms). I will fix this bug.
Because gimbal motors have way more turns they also have higher inductance, and since the resistance test was broken, you tripped the inductance test instead.
“Gimbal motor mode” would consist of bypassing the current controller and applying the required torque by applying a q axis voltage directly, derived from the motor resistance and the kv value of the gimbal motor. In this mode, only resistance measurement is required.
I will add an issue on github for the gimbal control mode. If anyone here knows how to do this exactly then feel free to do it. If not, I can do this as soon as I have finished shipping out the kits.
@Mykola_Rabchevskiy, out of interest, what is the resistance and kv value of your gimbal motor?
Just fyi, the phase resistance is the resistance you would measure with a multi-meter between say phase A and phase B, divided by two.
why devided by 2? The resistance that causes heat is the one you can measure with the multimeter (as long as your multimeter can measure down to mOhms, like a 4-wire-milliohmmeter)…no?
In 3-phase theory, phase resistance refers to the resistance between one phase and the neutral/star point. When you measure from phase A to phase B, you get twice that: the resistance from A to neutral, and from neutral to B.
Here we are talking about gimbal motors, so the resistance is 10’s of ohms, so should be fine with a multimeter.
Motor designeted as BGM8108-90, specification exposes phase resistance 9.5 Ohm. I will check it
Maybe make sense don’t measure motor parameters that are hard coded?
(UPDATE) Measured resistance is 8.5 Ohm (identical for all pairs A-B, B-C, A-C, es expected), so divided by 2 equals 4.25 Ohm. Different version of specification show 9.3 … 9.5 Ohm. Probably inductance is relatively big too…
I try this motor because my potential robotic application requires low speed but hihg torque motor.
There is link to one of descriptioons:
Okay cool, yeah the spec of these kinds of motors is usually the Line Resistance (resistance A-B), which seems to agree well enough with what you measured. cool.
I am also having issues with the gimbal motor I am using the GM4008 Motor from HobbyPro. http://www.hobbypro-rc.com/default/gimbal-motor-gm4008h.html
I have had a go at doing this. I have it working but its a bit of a hack. I tried using the FOC_voltage_loop but that seems to be used at startup Startup and Im not entirely sure why. I have made a second FOC voltage command function without the indefinite for loop. Just need to have a go at tuning gains now and tidy up a bit. This does not use the brake resistor either.
Cool! Care to share the code?
FOC_voltage_loop was just a test function that is convenient to tell a motor to just do a voltage. It is used in startup as a way to “disable” M1 when only using M0.
Your method of making a second one is probably good. Although I would make it so that you have the infinite loop one call the non-infinite loop one inside of the loop, so as to avoid code duplication.
I will tidy it up tonight and make a pull request.
Gimbal mode development has started, much thanks to @tokol0sh’s efforts.
Discussion about the development can happen in the linked topic:
Gimbal motor mode is now ready for testing. Please have a look: