As the topic states, I have a brushless motor with uneven phase resistance; that is, one of the phases has about 3x the resistance of the other two. I believe this is due to manufacturing defect; I have cut down the motor leads and confirmed that the issue is not with the external motor wiring, and the only solution on the motor side would be to completely rewind the phase. That said, I am hoping I can make it work with the odrive. The motor calibration is visibly non-smooth (since one of the phases is not generating as much force as the others), but it does complete and the motor operates (albeit with suboptimal torque/performance characteristics). However, the odrive tends to kill/coast the motor with an ERROR_CURRENT_UNSTABLE error under sudden/jerky loads (which makes sense, since I assume the phase resistance reading is too high for 2 phases and too low for 1 phase, thus causing unexpectedly high current to flow through the former two).
I guess my question is - can odrive measure the resistance of each phase independently and operate the motor accordingly? Or is this a really bad idea and I should just get a new motor?
edit: after briefly poking around the firmware source code, it seems ADC2 and ADC3 are being used to measure current through phases B & C, and ADC1 is used for other things like measuring vbus_voltage. Altering the motor calibration firmware to read phase A current (ostensibly using ADC1) and then storing all three phase resistances might be an option, but it’s not clear to me whether phase A can even be read by ADC1, not to mention that ADC1 is already tied up doing other measurements. Hopefully Oskar or somewhere else with sufficiently deep expertise can chime in here.
second edit: perhaps ADC1 could be left alone and ADC2 or ADC3 could be directed to sample phA (after sampling phB/phC) during motor calibration? Of course, this assumes that a phase A current reading is accessible to the ADC2/3 hardware in the first place.