Chinese DC spindle Speed Regulation ?

I was wondering if anyone knows the good but simple solution to have the RPM control for the Chinese 52mm spindles of this kind (image below)

As far as I see, there is a potentiometer input that should accept 0-10V of the control signal. I am thinking about having the possibility to:

  1. Stabilize the RPM by having some PID loop or even something simpler (just some simple algorithm raising RPM in relation to the speed lowering due to cut resistance)
  2. Control the RPM from Ramps/Gcode
I am okay with having the separate schematic (not a function of existing Ramps board)


Ryan worked on one for the dw660. The input came from Marlin. The output went to a triac and the sensor on the dw660 was a neat ir led/receiver combo.

He implemented a PID on an arduino nano and it works.

Your spindle would need a transistor to bump the voltage to 10V, and you’d need to find a way to sense the speed.

the original Thread is this one,

The PID code is stored on Github :

As Jeffeb3 says, you’d need to adapt the output to 10V or use a digipot (I think the hardware one is a 10K), and measure the speed (IR ? HALL effect sensor ? )


Do a google search. Somewhere there is a guy that discovered that you can’t just replace the pot with a 0-10v signal. The circuitry on the other side of the POT has some type of feedback into it. I read his blog post, but didn’t save it. I don’t remember the full specifics of what he had to do to get it to work.

I just ordered an upgrade to that power supply that has a separate 0-10v input designed to be used with Mach3. I figure I can use the 0-12v fan output in Marlin to set the RPM of the spindle.

For now, I just plan on using the POT to control it until I get around to messing with the digital control.

1 Like

Or pilot the pot via a servo ?

stepper motor RPM control :slight_smile:

I assume the PSU is using the 0-10V or pot signal to determine the input current, not the output speed. It’s easy to test, just see if it slows down when it starts cutting.

If it’s brushless, then it is likely that it’s possible it’s controlling the output speed. It needs to know the speed on brushless motors anyway.

If it’s brushed, then it needs some speed feedback to do closed loop control on the speed.

There are two wires in the picture, so that’s brushed.

  1. When you will order ensure that you choice “mach3 version power supply”

[attachment file="-13078163301410127354.jpg"]

  1. Guys are right. Probably only way to get stabilized rpm with that spindle is to use adapted Ryan’s arduino nano based pid controller.

Theoretically there is a way to detect rpm of dc brushed motor by pulsatiins of current in the circuit, so the power could have a pid controller, but i don’t believe that china guys use this way.

Thanks guys!! Unfortunately I already bought the spindle and it does not have Mach3 connections.

So far - looks like I will maybe try controlling potentiometer by servo, with usage of Ryan’s PID code. It is going to wear fast, but maybe that will be enough for some time.

It is very sad that the system does not accept 10V instead of potentiometer

The potentiometer has a high side, a low side, and the slider voltage. Moving the potentiometer would make the analog voltage somewhere between the high and low side.

You could do this without a big servo mechanism. The key things you’d want to know are:

  • What is the voltage between the high and low sides, 10V? 5V? 12V?
  • Will it respond to a PWM signal of the same range? If so, then you need a PWM signal at the right voltage. If not, then you need to add a low pass filter to smooth the PWM signal to an analog approximation. I would guess that’s already inside, and it will respond to a PWM.

You won’t get speed control, but you’ll get “effort” control.

That will be cool! But…

Anyway, that worth trying…

Oh, crud, Why do they make it so hard?

Today a guy in Facebook group of v1, Nick Ellson (i saw him here too) explained that he got same spindle (same version as you, not mach3) and he going to control it with pwm. He measured that output voltage 0-98v varies when voltage on central point of the potentiometer varies in range 0-1.9v. You can try to contact him