Skip to main content

Upgrade to a VFD Spindle

Upgrading the underpowered DC spindle to a proper VFD spindle is one of the best improvements you can make to a desktop CNC router. You get quieter cutting, better torque at low RPM, and full software control of speed and start/stop.

The guide refer to a Genmitsu 3030-PROVer Max controller and a MK100 VFD (as sold by Genmitsu), but the same ideas apply to many desktop CNC routers and VFDs.

The goal is to have your CNC controller command the VFD to start/stop the spindle and set its speed using a 0–10 V analog signal. As an added bonus, you can also power an external water pump or air blast using the VFD's integrated relay.

Key Components

alt text
Wiring Diagram

CNC Controller

The Genmitsu controller which is mounted at the back of the machine has a 8-pin connector which runs to its external power supply. We will only need to use the 24 V and GND pins from this connector to power the controller and two more pins for spindle on/off and speed.

Genmitsu Pinout on Controller

Pins are numbered from top left to bottom right when looking at the connector on the controller board.

Pin NumberColorFunction
1Red0-48V Spindle
2Black24V Power for Stepper Drivers and Logic Board
3YellowSpindle ON/OFF Signal (Connects to Ground to turn ON)
4WhiteSpindle Speed Control (0-13.2V for 0 to max RPM)
5GreenGround
6OrangeGround
7Blue24V VCC Output
8BrownGND Output

24V DC Power Supply

You can eliminate the external power supply and power the controller from a 24V DC power supply instead. Either get a new power supply or open the external power supply and remove the smaller of the two power supplies. The other power supply is for the 48V spindle which is now obsolete.

VFD (MK100)

Full documentation for the MK100 VFD can be found at https://cncdrive.com/downloads/MK100_manual.pdf. We will have to make some changes to the VFD parameters to get it working correctly with the CNC controller.

Important terminals:

  • AI1, AI1‑GND – analog input (0–10 V)
  • X1–X5 – digital inputs (optically isolated, 9–30 V)
  • SEL – “external 24 V reference” for digital inputs
  • COM – common for digital inputs, isolated from analog GND
  • 10V, GND – VFD’s own 10 V reference (for a potentiometer, not used here)
  • 24V – VFD’s internal 24 V supply (disconnect bridge to SEL)
  • TA, TC – relay which can be programmed to close when spindle is running

Spindle – 3‑phase AC motor connected to VFD U, V, W plus a protective earth.

  • VFD U/V/W → spindle 3‑phase leads.
  • VFD earth/PE → spindle body → machine frame.
  • Use shielded VFD cable (4‑conductor + shield).
    • Connect shield and spindle body to earth on both ends.
    • Keep this cable away from signal wiring.

Run Signal

The controller’s “Switch” output is an NPN transistor that pulls to ground when it wants the spindle ON. The VFD’s digital inputs are perfect for this.

  • PSU +24 V → VFD SEL
  • PSU +24 V → CNC Controller 24V in
  • PSU 0 V → VFD COM
  • PSU 0 V → CNC controller GND
  • Ensure VFD SEL and 24V are disconnected

This means:

  • SEL is the “high” reference for the X1–X5 inputs.
  • COM is their “low” reference.
  • The controller shares that same 0 V so it can safely pull things to ground.

Important: Do not connect your PSU to the VFD’s 24V terminal. That is an internal supply. Use SEL/COM for external 24 V.

  • CNC controller Switch output → VFD X1

Inside the VFD, X1 has an internal pull‑up to SEL (24 V) through ~2.4 kΩ. So:

  • Spindle OFF → X1 floats → pulled up to 24 V (logic “high”).
  • Spindle ON → X1 pulled to COM (0 V, logic “low”).

Speed Signal

The controller outputs a variable voltage of 0-14V. This is not ideal because the VFD only supports an input range from 0-10V on its analog inputs. You can either bring the voltage down but adding a 5kΩ resistor or you can alter the maximum spindle RPM in the controller to be 33% higher than the actual maximum spindle speed. In my case, my spindle has a maximum RPM of 24,000 so I changed the GRBL $30 setting to 32,000 RPM. At 24,000 RPM, I now see a clean 10V.

Now that you control the speed of the spindle using the controller, make sure you allow the spindle to spool up before the machine starts moving. Add a G4 P5 command to your G-Code processor to wait 5 seconds after spinning up the spindle.

Lastly, some of the parameters in the VFD need to be adjusted.

ParameterDescriptionDefault ValueNew Value
P0-02Command Source0 (Panel)1 (Terminals)
P0-03Main Frequency Source4 (Potentiometer)2 (AI1)
P0-04Auxiliary Frequency Source04 (Potentiometer)
P0-17Acceleration Time10s5s
P0-18Deceleration Time10s5s
P4-17AI1 Filtering Time0.1s1s
P5-02Relay Trigger01 (Spindle running)

VFD parameter settings

Again, exact parameter numbers vary, but you’ll set:

  1. Speed reference source = AI1 (0–10 V)
  2. Min analog voltage / speed (e.g. 0 V → 0 RPM or 6,000 RPM)
  3. Max analog voltage / speed (e.g. 10 V → 24,000 RPM)
  4. Acceleration/deceleration ramps appropriate for your spindle.

On the controller side, set your $30 (max RPM) value to match the RPM you assigned to 10 V in the VFD so the mapping is consistent.

Grounding and noise tips

VFDs are electrically noisy, so a bit of attention here saves you from weird disconnects or erratic behavior.

Earth

  • Bond mains earth to: VFD PE, spindle body, machine frame, and enclosure.

Analog vs digital ground

  • The controller pulls the spindle on/off digital input from the VFD X1 to its ground. This means that we cannot use the built-in 24V source and the isolated ground.

  • Cable routing

    • Keep:
      • Mains and U/V/W cables in one bundle/side of the enclosure.
      • Signal and stepper cables on the opposite side.
    • Cross power and signal cables at 90° if they must cross.

Commissioning checklist

When you power up for the first time:

  1. No spindle connected yet.

    • Verify VFD powers up without errors.
    • Verify controller is powered up.
    • VFD display is flashing.
    • Check DC between SEL and COM: you should see ~24 V.
    • With controller idle, measure X1 to COM: ~24 V.
    • Close circuit between X1 and COM. You should hear the VFD's relay click and the display should stop flashing.
  2. Connect spindle.

    • Double‑check U/V/W and PE; ensure the spindle body is grounded.
    • Start at a low frequency (say 50–100 Hz) and verify rotation direction.
    • If direction is wrong, power down and swap any two of U/V/W.
  3. Test speed control.

    • Command different RPMs (e.g. 6k, 12k, 18k, 24k).
    • Confirm the VFD’s displayed frequency / speed matches reasonably.
    • Adjust VFD analog scaling if needed.
  4. Run a dry test job (no cutter, air cut) to make sure the spindle turns on, reaches speed, and turns off when expected. Run a longer program with all axes moving. Listen for missed steps which could be a sign of EMI issues.

  5. Test E-Stop Hit the e-stop button on the controller and make sure that the spindle stops.