I am trying to setup the spindle for my Shapeoko CNC to use an ODrive. The Spindle is a Makita BLDC trim router. The motor is 1500kV with 2 pole pairs. It has a hall sensor. I used 12 gauge wire for the 3 phases. They are twisted together to reduce the EMI. The hall sensor wires are run through Cat7 wire. They are double shielded and the A, B, and C wires are twisted around ground. The shielding is also tied to ground on the ODrive end. I have checked continuity on the hall wires and they all are reading good. Both the 3 Phase wires and the wires for the hall are about 8 feet long. The hall sensor wires coming from the motor are Blue, Yellow, and White so it is possible I have them hooked up wrong. Also when I measure the voltage at the ODrive on the A, B, Z pins they are reading either 0 or 3.2V. When I read the voltages on those lines at the motor they are about 4.6V. Not sure if that would be an issue.
I have followed the Getting Started doc and the Hoverboard doc. When I get up to the point where I am supposed to run this command:
I think I may have found the problem. Looking at the code, the error gets set to ERROR_NO_RESPONSE if the shadow_count does not go up or down by 8 during calibration. My CPR is 12 so to go up by 8 the shaft would need to make 2/3 of a revolution. During calibration it is only moving about 1/16th of a turn. Is there a way I can adjust this?
Well switching axis0 to axis1 did not help. I have checked all my connections and they seem good. May try resoldering the terminals on the motor. Other than that I am kind of at a loss. Not really sure how this error is triggered so I am not sure what exactly to look for.
Thanks. I have sense upped the current to 20 and still having issues. I will try 30 and see if that helps. I was reading another thread that mentioned low Phase Inductance can cause this error as well. Mine is
What is your bus voltage?
I think 8uH is a little bit on the low side, but probably not the core reason why it can’t spin at any significant speed. More likely is the fact that we don’t have velocity feed-forward to the current controller, and so if the motor accelerates very fast, it can cause current transients that cause the error.
I would suggest that you try using the velocity ramp mode and see how that goes.
So I have been messing with this most of the day. The only thing I can see that might be able to prevent this is to mess around with the current_lim_tolerance but that does not seem like the best idea.
cpr shouldn’t be an issue at high speed. more likely there isn’t enough voltage to reverse the phase current quickly enough against the motor inductance.
reducing motor.config.current_control_bandwidth to 500 or lower might help - it did for my eBike wheel motor