Brushless Makita Mod (unsupported)

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:

https://www.milwaukeetool.com/Products/Power-Tools/Woodworking/Routers/5625-20

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.

2 Likes

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).

2 Likes

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

Maybe sensored with ODrive is still a “work in progress” like with VESC? Are you sure your Hall sensors are properly powered and wired/phased?

Yes I am sure they were wired up properly, and their phase does not matter. During calibration the ODrive figures out which wire is for which phase.

When I try to run with the Hall Sensors I am able to run up to 1990Ve (about 10k RPM). As soon as I go over that though I start getting ERROR_CURRENT_UNSTABLE errors from the ODrive. After a lot of troubleshooting with the lead developer of ODrive via their Discord server we have basically figured out that the most likely issue is the Back EMF. Unfortunately to confirm this I will need to hook an Oscilloscope up to the motor and then find a way to spin it at 10k RPM to see what the waveform looks like. The spinning it up to 10k RPM is the part that is difficult.

One thought I have had is writing the Arduino code such that it switched the motor from sensored mode to sensorless mode above 1000Ve. That way I can achieve low RPMs for doing drilling operations.

You could use another Makita router with a rod connecting both shafts to spin it up. Does direction matter?

Good to have as a backup anyway.