Brushless Makita Mod (unsupported)

Already got the hashtag going lol. The VESC is still working great with zero tuning but limited to manual app computer control.

Really really impressed on the performance, even without running a fan. Marv from KERN asked me to do some high power high rpm tests, after this Z is done we’ll push it!


Force assumes 1/4" endmill:


It was 1/4 in. Very nice graphs.

Sensorless Read Velocity is the electrical velocity (Ve).

RPM = Ve * ( 60 / ( PolePairs * 2 * pi ) )

This motor has two pole pairs so:

60 / ( 2 * 2 * pi ) = 4.7746


RPM = 4.7746 * Ve

I am curious how you are deriving the watts.

1 Like

Yup - I screwed that up - thanks:

Power is calculated from speed and torque. Torque is calculated from measured current and motor’s torque constant. Force is calculated from torque increase when cutting and endmill diameter. Do you want the spreadsheet?

I am already converting the Ve to RPM in the data as SensorlessRPM. I mostly included the Ve because that is what I have to send to the ODrive as the set point. This allows me to see how close to the set point the motor is actually running at.

I figured that is how you were calculating the power. Just wanted to make sure you were not basing it on the voltage.

Maybe add (log and display?) torque and power too (spindle/power supply usage)?

Also displaying cutting force in “real time” would help the operator determine when and how to adjust cutting parameters to optimize performance.

Material removal rate, in conjunction with cutting power, enables calculation of material K Factors which are useful for speeds and feeds calculations. Having accurate K Factors would greatly increase the utility of those calculators.

1 Like

A live monitoring program that listens to the arduino output will have to handle those conversions. Among other things the Arduino does not know the cutter diameter.

1 Like

Except torque and power - right?

My general thought is if a PC running at multiple GHz can do the calculation with the data the arduino is already outputting then there is no point for the 20Mhz arduino to do the calculation. The arduino is there to spit out the raw data. The only reason I am doing the Ve to RPM conversion right now is because it is needed for tuning the ODrive’s PID parameters and I do not have a GUI written. The less the arduino does the faster it can refresh the data. The faster it is refreshing the faster it can react to the ODrive going into an error state.

1 Like

So good news is the isolator works perfectly.

Bad news is that for some reason if I have the ODrive start up in sensorless mode, it is immediately spinning at 400Ve (~1900 RPM). This appears to be hard coded for some reason even though I can run at 150Ve and have no issues. This means I have to put it into sensorless mode only when actually spinning up the spindle, wait for it to get to 400Ve and then adjust from the 400Ve to the speed I want.

1 Like

Finding these things is what testing is for :wink:

Why do you prefer sensorless mode?

I don’t. Long story but basically this motor produces so much Back EMF that the current waveform is a sawtooth instead of sinusoidal. This confuses the ODrive and probably confused the VESC. The ODrive developer has an idea of how to deal with this by doing a “harmonic feedfoward” in the current control. In the meantime sensorless works fine.

1 Like

Now I’m confused. Doesn’t sensorless ignore the Hall sensors and use back EMF to commutate?

You, Me, and the ODrive developer but it is working in sensorless for some reason. The developer wants me to hook the motor up to an Oscilloscope to see what exactly the current waveform looks like.

I’d imagine it’s pretty similar to Milwaukee’s - trapezoidal 120 degrees?

While I was poking around on the Milwaukee site looking for new brushless offerings, I noticed this little beast:

3.5 Horsepower
1/2” Collet
10k-22k Variable Speed Drive

Holy pants. The power is …interesting on its own, but the idea of a decent variable speed unit built in is exciting, bc though it comes operated by a knob, wiring that up to the controller could be pretty sweet. But then I wonder, if it’s not actually excess power we want at all, but running lighter loads at greater speeds. Hm.

I’ve searched for any mention of this thing on this site but didn’t find this one specifically. Vince, in all your many spindles (would you say it’s a plethora?) have you tried this one out?

Ach, it’s not brushless though.

Yeah that’s a big boy router, not a trim router. It’s probably between 3.5" to 4.5" in diameter so would not fit in the Shapeoko mount. It also draws 15A so basically needs it’s own electrical circuit or you will be tripping breakers left and right.

I would love to test the various brushless offerings to see which works best with the ODrive. DeWalt, Milwaukee, Makita, etc. From what I’m learning the way the motor is wound has a big impact.


And it’s likely only capable of 120V, 15A, and 55% efficiency = 990 Watts = 1.3 HP continuous output power. A properly rated HF spindle (continuous output powers of 800W, 1500W, or 2200W) would be a better choice.

How their rotors are designed and their stator - housing thermal resistances will determine how much continuous power they’re be capable of (likely plenty IMO).


Right. I would like to find one that just works with the ODrive without having to go sensorless or requiring massive code changes.