Spindle running at half speed

I just set up my 800W water cooled Huanyang spindle and VFD. The VFD is reading a little under half the speed requested by the controller. Controller says it’s full speed.

For example: By running M3 S10000, the Buildbotics controller says 10000 was requested and is operating at 10000, but the VFD displays 4799. I haven’t measured the actual speed to know what it’s doing, but it looks slower than 10krpm.

Any ideas?

I remember seeing on the Internet the VFD doesn’t read out RPM, but some other unit. I’d look into that.

You can cycle through several options, but I have it set to rpm.

I just did a factory reset and put in these settings. Still the same results. Any other ideas?

PD000 = 0 unlock settings
PD001 = 2 command source RS485
PD002 = 2 speed/frequency source RS485
PD005 = 400 max operating frequency
PD004 = 400 base frequency
PD003 = 400 intermediate frequency
PD072 = 400 higher analog frequency
PD008 = 110 max voltage
PD141 = 110 rated motor voltage
PD142 = 7 rated motor current
PD163 = 1 modbus ID 1
PD164 = 1 9600 baud
PD165 = 3 8 bit, no parity, RTU mode
PD000 = 1 lock settings

post what your tool settings are on the onefinity controller.

The speed is just under half requested for any speed.
1000rpm -> 475rpm
5000rpm -> 2395rpm
10000rpm -> 4795rpm
20000rpm -> 9595rpm

This applies to the Huanyang VFD with a 24,000 rpm spindle motor.

If you spindle motor is rated to spin at up to 24,000 rpm then look in your VFD Manual for PD144 settings. It should be listed as “Rated Motor Revolutions” and most likely shows the default setting is 1440. If so then change the setting for PD144 to 3000. That will enable your spindle rpm to max out at 24,000 rpm. With the default setting of 1440 your spindle is only running at around12,000 rpm when maxed out.

To get the RPM to show up on the display Click the >> button on the front of the VFD to cycle through the settings. You want to select the Setting where the “ROTT” light is on to show RPM’s. See the image below.

You can change the rate that the motor winds up and winds down when powered on and off by changing the PD settings for PD014 & PD015. The value you set these to is number of seconds to either wind up to selected rpm (PD014) or wind down to zero rpm (PD015).

PD014 set to 8 will enable the spindle to reach the set rpm in 8 seconds.

PD015 set to 10 will enable the spindle motor to come to a complete stop in 10 seconds.

I do not recommend using a value of less than 8 (seconds) for either of the two settings because the VFD sends increased current to the motor to cause it to speed up and slow down in less time. If you get too aggressive then you can overheat the motor and or the VFD. Some models have an optional Braking Resistor and Heat Sync to allow for much faster start and stop times.


Charley, I owe you a beer if I ever see you. Thank you! This did it. I had not seen this setting before. The manual didn’t help a lot but its function is not clear, and speeds are as expected.

A couple more questions if you don’t mind, since you know your stuff.

With the PD014/PD015, will the controller or software take in to consideration this time? If its taking 8 seconds to come up to speed, will it wait before it starts actually cutting?

I have also read it is good to set PD011 (lower frequency limit) and PD073 (lower analog frequency limit) to 120. I guess that would basically just set a minimum speed. Do you use those settings or something similar?


No it will not wait… unless… you place a wait command in your gcode file. I will post another reply shortly but am sending this now in hopes that you don’t find out the hard way.

These are the Settings for a 2.2KW water cooled spindle 110 vac Huanyang VFD Your settings may differ especially PD142 and PD 070. Be sure to use the ratings printed on the side of your actual spindle.

|PD001|1|Source of Run Commands|
|PD002|1|Source of Operating Frequency|
|PD003|400|Main Frequency |
|PD004|400|Base Frequency|
|PD005|400|Max Operating Frequency|
|PD006|2.5|Intermediate Frequency |
|PD007|0.5|Min. Frequency|
|PD008|110|Max. Voltage|
|PD009|15|Intermediate Voltage|
|PD010|0.5|Min. Voltage|
|PD011|0|Frequency Lower Limit|
|PD014|10|Spindle Accel. Time 1|
|PD015|10|Spindle Decel. Time 1|
|PD023|0|Rev. Rotation Select|
|PD041|8|Carrier Frequency (Affects the amount of RF noise. Lower value increased noise and decreases heat. Higher values decrease noise and increases heat) Adjust value if you get errors when Spindle starts.|
|PD070|0|Analog Input (Spindle PWM) Gecko G540 is 0-10V. Typical Breakout Board is 0-5V I believe the OneFinity output is 0-3.2 volts.|
|PD071|20|Analog Filtering Constant |
|PD072|50|Lower Analog Frequency|
|PD073|400|Higher Analog Frequency|
|PD141|110|Rated Motor Voltage|
|PD142|8.4|Rated Motor Amps|
|PD143|4|Number of Motor Poles|
|PD144|3000|Rated Motor RPM|

1 Like

I have to run for a bit but when I get back I will show you how to test your spindle on off and rpm within gcode.


For PD070 I am set at 0-10V. Seems to work fine, but is there a benefit to changing to 0-5V to be closer to the Onefinity output range?

Sorry for the delay…

I currently do not have a vfd/spindle on my OneFinity. I do have one on another cnc controlled by Mach3. The information below should be a good way to test your vfd/spindle with the OneFinity Controller.

OK, here is some g-code that will test your spindle and vfd to make sure they are working correctly with the OneFinity Controller. It will also demonstrate the use of M0 command with popup messages. Copy the following g-code and paste it in a new Text File using Windows Notepad or equivalent. Do not use a word processor because it will insert formatting commands that will cause errors. Saving it with the default .txt extension is ok. It will still load and run on the OneFinity just fine.

G91 G1 Z 0.250 F50
M0 (MSG, Click Continue to turn your spindle on at 1000 RPM)
M3 S1000
M0 (MSG, Click Continue to increase to 5000 RPOM)
M0 (MSG, Click Continue to increase to 24000 RPM)
M0 (MSG, Click Continue to turn spindle off and end this test)

Send the saved file to your OneFinity controller just like you would a regular carving gcode file and when ready click the play button to start it

What the TEST file will do:

  • Set your units to imperial and then Raise your spindle up 1/4 inch
  • Prompt you to click continue to Turn on your spindle at 1000 rpm
  • Prompt you to click continue button to increase rpm to 5000
  • Prompt you to click continue button to increase rpm to 24000
  • Prompt you to click continue to turn off your spindle off and end test.

Keep in mind that the spindle rpm will not be exact but could be close. If you find that it is way off then edit your VFD PD070 setting to match the voltage output of the OneFinity Controller closer which I believe tops out at 3.2 volts. So PD070 may need to be set at 0-5 volts since I don’t think there is a setting for 0-3.2volts. Below is a calculated chart that shows Requested RPM via G-Code and what I believe will be the actual rpm.The assumption here is the OneFinity will only output a max of 3.2 volts for the PWM output to the VFD which is looking for 5 volts to achieve a max rpm of 24000. If the OneFinity output is in fact limited to 3.2 volts then your spindle rpm will likely max out at 16000 rpm. To allow for manual rpm control, change PD002 to a 0 on the VFD to use the rotary dial on the front to control the rpm of the spindle and still use the M3 and M5 commands to turn the spindle on and off. I believe there will also be a jumper to move on the vfd when changing PD002. The Sxxx commands in your gcode will be ignored when your VFD is set to manually control the RPM.

G-code-------Actual RPM
1500 RPM —1000 RPM
3000 RPM — 2000 RPM
4500 RPM — 3000 RPM
6000 RPM — 4000 RPM
7500 RPM — 5000 RPM
9000 RPM — 6000 RPM
10500 RPM—7000 RPM
12000 RPM—8000 RPM
13500 RPM—9000 RPM
15000 RPM—10000 RPM
16500 RPM—11000 RPM
18000 RPM—12000 RPM
19500 RPM—13000 RPM
21000 RPM—14000 RPM
22500 RPM—15000 RPM
24000 RPM—16000 RPM

1 Like

This fixed my half spindle speed issue as well. thank you :slight_smile:

This fixed my half-speed issue, but now the dial on my VFD is backward. All the way left (lowest) sets the spindle at 24K and all the way right (max) puts it to 0. Any idea on what I may have fat fingered?

Is there a PDO23 to set forward or reverse? ! to allow reverse, 2 to lock forward?

Solved - My PD073 / 72 are reversed from Charley. 72 is Max and 73 is Min.

1 Like