< All Topics

xPRO V5 Motion Control System

Safety Statement

The author of this document is not liable or responsible for any accidents, injuries, equipment damage, property damage, loss of money or loss of time resulting from improper use of electrical or mechanical or software products.

Assembling electrical and mechanical CNC machine components like power supplies, motors, drivers or other electrical and mechanical components involves dealing with high voltage AC (alternating current) or DC (direct current) and other hazardous items which can be extremely dangerous and needs high attention to detail, experience, knowledge of software, electricity, electro-mechanics and mechanics.


Before starting please read through all the instructions.

Note: : Any Mains power connections must be installed by a Licensed electrician or suitability qualified person.

Errors and omissions excepted

Pre Install Notes

  • Always use shielded cable for motors and drivers, this will minimize significantly electromagnetic interference, in consequence, this will permit you to run a job without any problem.
  • NEVER connect or disconnect any wire while power is applied. Failure to do the above will result in damage to the stepper drivers.
  • ALWAYS disconnect power before making any connections or disconnections.
  • If using our hardware, please follow the wiring guides below:

1.0 xPRO V5 to Power Supply Wiring (DC)

Figure 1

Click on the image(s) to expand

To connect the 24V Power supply to xPRO V5 follow the below steps:

  •  Connect V- from the power supply to GND on the xPRO V5
  • Connect V+ from the power supply to +24V on the xPRO V5. See Figure 1 for reference.

2.0 Power Supply to Mains Wiring

Note: Any Mains power connections must be installed by a Licensed electrician or suitability qualified person.

The mains wiring must be done by a licensed electrician or a similarly qualified individual. Please guide your electrician to the power supply manual using this link.

3.0 Stepper Motor Wiring

3.1 Wiring for machines: OutBack, WorkBee, Lead, C-Beam, C-Beam XL:

Figure 2

Click on the image(s) to expand

  • Machines that use lead screw and nut block-based transmission system, follow the stepper motor wiring as shown in Figure 2. The sequence of wiring is Red – Green – Blue -Yellow.

3.2 Wiring for machines: Ox-Belt, Ox-GEAR, WorkBee (rack and pinion):

Figure 3

Click on the image(s) to expand

  • Machines that use rack and pinion transmission system, follow the stepper motor wiring as shown in Figure 3. The only change is in the sequence of Y2/A Axis motor wiring which is Yellow – Blue – Green – Red.

4.0 Limit Switch Wiring

Figure 4

Click on the image(s) to expand

  • Connect the Blue lead into GND and the White lead to SIG. Leave the middle pin blank. See Figure 4 for reference.

5.0 Inductive Limit Switch Wiring 

Figure 5
Figure 6
Figure 7

Click on the image(s) to expand

  • If you are using Inuctive Limit Switches, wire them as shown in Figure 5.
  • Then remove the xPRO V5 top cover and shift the Limit Switch jumper from 5V Logic to 24V Logic as shown in Figures 6 & 7.

5.0 Emergency Stop Switch Wiring

Figure 8

Click on the image(s) to expand

  • The emergency stop switch can be wired in 2 ways. The first way is to be wired by an electrician in line with your mains lead to the 24V power supply and the second method is as a pause button for the xPRO V5.
  • Figure 8 shows the pause/hold method with our Normally Closed (NC) Emergency stop switches.
  • Wiring it this way will pause the program when activated. To use our NC switches with the xPRO V5, flash your xPRO with the CNC_xPRO_V5_XYYZ_PWM_NC.bin located in the main firmware repository here. To flash this firmware, refer to the guide, below.

5.1 Flashing xPRO V5 Firmware

Step 1:

Figure 9
Figure 10

Click on the image(s) to expand

  • First connect to your xPRO-V5 wifi and the WebUi will automatically open in the browser.
  • In the WebUI, navigate to the ESP3D Menu. 
  • Select the Firmware Update Button. Figures 9 & 10 for reference.

Step 2:

Figure 11

Click on the image(s) to expand

  • Click “Select file” and choose new firmware (.bin), then select “Update”. The new firmware will load and the xPro V5 will reboot.
  • Open up CNCjs and type in the console $RST=* command to load the latest default settings.

6.0 Configuring xPRO V5 with CNCjs

6.1 CNCjs Installation

CNCjs is our recommended gcode sender for the xPRO-V5 and other GRBL based controllers download it here:

Open the downloaded file and follow the installation prompts.

6.2 Driver Installation

Download and install the CP210x driver for the xPRO-V5 here.:

Extract the file and run

  • CP210xVCPInstaller_x64 if you have a 64-bit computer
  • CP210xVCPInstaller_x86 if you have a 32-bit computer

6.3 CNCjs Overview

Below Figure shows you the different sections of the CNCjs gcode sender.

Figure 12

Click on the image(s) to expand

  • The top left highlighted in green shows the connection widget. This allows you to select different firmware and connect to your controller. In this case, we will be using GRBL since the xPRO-V5 is a GRBL controller. Ensure that the GRBL option is ticked.
  • Below that in red is the Console. The console will be used to display warnings, error states, and so on. You may also enter commands to change a setting directly in the console.
  • Underneath the console widget is the firmware widgets. This display overrides and other status reports. As we are only using GRBL, remove the other widgets by left-clicking on the 3 vertical dots and clicking remove widget. See the example shown below on how to remove them:
Figure 13

Click on the image(s) to expand

  • In the top right corner are your quick set commands to do homing, resetting the controller, unlocking your controller from an alarm state, and sleep mode.
  • Below that, highlighted in pink are the axis commands. You can set the machine and working coordinates here.
  • Highlighted in yellow is the status report of your Gcode. You will be shown how long your gcode has left to finish running and workpiece dimensions.
  • Highlighted in blue are your macro and probe widgets.

6.4 Connecting xPRO V5 to CNCjs 

A USB type C cable is required for a wired connection to your computer. Please make sure that it is a USB type A to USB type C cable. A USB type C to USB type C will not work. After connecting to the computer via USB, open CNCjs and navigate to the connection widget and click on the refresh icon shown by the two arrows to check for controller connections.

Figure 14
Figure 15

Click on the image(s) to expand

  • After this, click on the down-facing arrow in the Choose Port section.
  • In our case, the COM port for our xPRO-V5 is COM16. Note that the Manufacturer is Silicon Labs. Click open and the controller will connect. Initially, it will show the output illustrated in Figure 16.
Figure 16
Figure 17

Click on the image(s) to expand

  • Click the reset button on the xPRO V5 controller and  machine data will be displayed as shown in Figure 17. Now your controller is fully connected and communicating with the gcode sender (CNCjs). Do not jog/move your machine yet. We will set up the controller first.

6.5 Machine Configuration Settings

Setting up your machine is quite straightforward. Below is a set of configuration files for each of our machine kits and these files contain our recommended settings for each machine from the working area to the motor current.

The quickest and easiest method to flash your controller with our recommended settings is by using a macro. The example below will use a WorkBee 1000 x 1000mm with High Torque motors. For now, minimize CNCjs.

Firstly, download the master configuration here. Follow the guide below:

  • Unzip the Master Config file. In this config file is a number of folders corresponding to each of our machines. If you have a custom machine or a different brand of machine, contact us at sales@makerstore.com.au and our technicians will be able to assist you with your machine.
  • Navigate to the folder containing the brand of the machine series you own. The image below shows the list of machines in our inventory. For example, if you own a WorkBee 1000 x 1000mm kit, navigate to the WorkBee folder.
Figure 18
Figure 19

Click on the image(s) to expand

  • Locate the configuration file of the machine that you have. Take note of the motors attached to your machines. We offer High Torque and Standard Torque motors.
  • Open the file and select all of its contents and copy them. See Figures 18 & 19 for reference.
Figure 20
Figure 21

Click on the image(s) to expand

  • Open CNCjs and navigate to the right-hand side of the program. Locate the macro widget. Select the + icon highlighted in green to add a macro.
  • Copy the contents of the configuration file into the Macro Commands field and click OK. See Figures 20 & 21 for reference.
Figure 22
Figure 23

Click on the image(s) to expand

  • Copy the contents of the configuration file into the Macro Commands field and click OK.
  • The macro will now look as shown in Figure 22.

  • To flash your controller with these new settings, make sure that the xPRO-v5 is still connected via USB and click the play button on the macro widget shown in Figure 23.

Figure 24
Figure 25

Click on the image(s) to expand

  • After clicking on the Play Button, a window will appear as shown in Figure 24.
  • Clicking Run will flash the controller with the machine settings. You will only need to do this once. You may edit the macro if there are certain changes you wish to implement.
  • A successful flash as shown in Figure 25 will show.

7.0 Fine Tuning Motor Direction and Homing

7.1 Inverting the Motor Direction

Figure 26

Click on the image(s) to expand

Depending on the motor wiring and machine setup, you may need to invert the direction of an axis if it is going the wrong way. See the correct convention below:

  • X+ = Right
  • X- = Left
  • Y+ = Rear of machine
  • Y- = Forward of machine
  • Z+ = Up
  • Z- = Down

To invert an axis, open the machine configuration macro and locate $Stepper/DirInvert in the 5th line of the macro. If for example X is moving to the right when you click X-. change it to $Stepper/DirInvert =X. If 2 axes are inverted for example X and Y, change it to $Stepper/DirInvert =XY. See Figure 29 for reference.

After making these changes, run the macro again and then reset the controller by pressing the reset button on the side of the controller for the change to take effect.

7.2 Inverting the Homing Direction

Figure 27

Click on the image(s) to expand

When homing, the machine may attempt to home away from the limit switch. To get the machine homing in the right direction, you can invert the homing direction logic just as the motor direction. For example, if the Z is homing away from the limit switch, stop the homing cycle by clicking the Reset button in CNCjs or by pressing the reset button on the xPRO V5 side and change the $Homing/DirInvert in the 12th line of the macro and make it $Homing/DirInvert=Z. See Figure 27 for reference.

After making these changes, run the macro again and then reset the controller by pressing the reset button on the side of the controller for the change to take effect.

The next time that you connect the controller to CNCjs, you must unlock it in order to use the machine. This is a safety precaution to ensure that the software will know where the machine is initially. After resetting and unlocking, home your machine by selecting the Homing button in blue in the top right corner of CNCjs.

7.3 Jogging

Figure 28

Click on the image(s) to expand

After the parameters have been set and any inverted axis fixed, the machine can be jogged by using the Axes panel shown in Figure 28. Here you can set the machine home, set your work position and move the machine in certain intervals. By clicking Z+, Z-, X+ X-, Y+ and Y-.

8.0 Z Touch Probe Wiring

Figure 29

Click on the image(s) to expand

9.0 XYZ Touch Probe Wiring

Figure 30
Figure 31

Click on the image(s) to expand

  • The xPRO-V5 uses a 3 pin connector which is provided with the controller.
  • To connect the xPRO-V5 to the touch probe, connect the red wire to GND and the black wire to SIG using the provided green EDG connector. Leave the middle pin unconnected.
Figure 32

Click on the image(s) to expand

  • Connect the probe to the probe port as shown in Figure 32.
Figure 33
Figure 34
Figure 35
Figure 36

Click on the image(s) to expand

For XYZ Probing, follow the steps below:

  • Download the XYZ Probe Macro from here. The probing sequence is Z, then Y and then X-axis.
  • Copy the contents of the above macro.
  • Navigate to the Macro widget in CNCjs and click on “+” button to add a new macro. See Figure 33 for reference.
  • Name the macro as XYZ Macro and paste the contents of the macro copied earlier, as shown in Figure 34.

Note: Depending on the diameter of the end mill you are using, please update the “ENDMILL_DIAMETER = …” accordingly. See Figure 34 for reference.

  • Click on Save Changes.
  • Place the XYZ touch probe at the corner of the workpiece. Ensure the clamps are not in the way of the spindle. Jog the machine (spindle) above the touch probe.
  • Run the XYZ Probe macro by clicking on the play button and selecting Run. See Figures 35 & 36 for reference.

See the XYZ Probing video below.

10.0 Framing

In the CNC world, Framing is a feature that allows the user to preview the design outline before cutting. The machine traces around the perimeter of the part, taking the minimum and maximum dimensions of the workpiece into consideration. It allows you to see whether you are machining within the stock or out of the stock.

In CNCjs we have to add Framing Macro to execute the framing feature. The Framing Macro is mentioned below:


G0 Z10

G0 X[xmin] Y[ymin]

G0 X[xmax]

G0 Y[ymax]

G0 X[xmin]

G0 Y[ymin]


Figure 37
Figure 38
Figure 39
Figure 40

Click on the image(s) to expand

  • In the Macro Tab click on the New macro button (+ sign).
  • In the Macro Name type Framing. Copy the Macro menioned above and paste it in the Macro Commands window as shown in Figure 38. Click OK
  •  Click on the play button and then click on Run. See Figures 39 & 40 for reference.
  • The machine will frame the design.

11.0 xPRO V5 Laser Control

Safety Statement

Before starting please read through all the instructions. Note : Any Mains power connections must be installed by a Licensed electrician or suitability qualified person. The laser safety goggles MUST be worn whenever the laser unit’s power supply is turned on.

CNCjs is recommended for controlling the laser. You may generate the gcode from GRBL laser and then open the gcode in CNCjs It is recommended to wear your safety glasses whenever your laser module has its power supply turned on.

The 2.5W and 15W diode lasers are built for a variety of custom laser applications so custom wiring will be required. These laser kits can be adapted for use in CNC applications with longer cables and custom mounting hardware.

To connect the laser to the Maker Shield, you will only need to connect the signal wires from the laser control board to the Maker Shield controller. All other connections are already pre-done. Locate the TTL signal port circled in orange as shown below:

Figure 41

Click on the image(s) to expand

TTL+ connects to the PWM connector and TTL- connects to GND on the TOOLHEAD connector port as illustrated below. The lime green wire corresponds to TTL- (Black wire) and the red wire corresponds to TTL+.

Figure 42

Click on the image(s) to expand

Flash the xPRO with the appropriate firmware.

In the CNCjs software, you can enable the laser mode by typing the following commands in the console:

  • $Spindle/Type=Laser
  • $Gcode/LaserMode=ON
  • $31=1.

12.0 Connecting xPRO V5 to Folinn 1.5/2.2 kW VFD

Figure 43

Click on the image(s) to expand

The below instructions are for control of the BD600 VFD via the xPRO V5’s 0-10V VFD control port.

Please wire your VFD’s terminals and xPRO V5 controller as shown below: 

Figure 44

Click on the image(s) to expand

xPRO v5-VFD Connection table


xPRO V5 Controller TerminalsFolinn BD600 VFD Terminal
GND (Relay)ACM
NO (Relay)S1

Below are the parameters that need to be set on the VFD to configure it for 0-10V Control.

Initially Reset the VFD to factory default setting settings by setting F00.28 = 1

  • Frequency Reference Resolution
    • F00.11 = 1
  • Speed Control Mode
    • F00.00 = 2
  • Command Source Selection
    • F00.01 = 1
  • Max Output Frequency
    • F00.03 = 400.00
  • Run Frequency – Upper Limit
    • F00.04 = 400.00
  • Run Frequency – Lower Limit
    • F00.05 = 133.00
  • Frequency A command selection
    • F00.06 = 2
  • Keypad Setting Frequency
    • F00.10 = 400
  • Acceleration time 1
    • F00.12 = 5
  • Decceleration time 1
    • F00.13 = 5
  • Motor Rated Power: (Ensure that you choose the correct motor power rating for your spindle)
    • 1.5kW: F02.01 = 1.5
    • 2.2kW: F02.01 = 2.2
  • Motor Rated Frequency
    • F02.02 = 400
  • Motor Rated Speed
    • F02.03 = 24,000
  • Motor Rated Voltage
    • F02.04 = 220
  • Motor Rated Current: (Ensure that you choose the correct motor current for your spindle)
    • 1.5KW: F02.05 = 7
    • 2.2kW: F2.05 = 9

After making the necessary connections and programming the VFD, You must calibrate the xPRO Controller to output the correct signal using the onboard potentiometer.

Referencing the image (Figure 40) above, please follow the steps below.

  1. Make sure that the TOOLHEAD switch is in the PWM Position indicated by the #1 arrow.
  2. Remove the 4 screws holding the xPRO V5 lid and locate the 0-10V potentiometer indicated by the #2 arrow.
  3. Open up CNCjs and connect your xPRO V5 via USB. Connect the 24V power supply and switch the xPRO V5 controller on.
  4. In the CNCjs console, enter the following commands:
  5. $Spindle/Type=PWM
  6. $32=0
  7. $GCode/MaxS=24000 (Sets spindle Max Speed)
  8. $GCode/MinS=8000 (Sets spindle Minimum Speed)
  9. Next enter M3S24000. Your spindle will turn on so please ensure that the collet nut is removed.
  10. Put the probes of your multimeter on the GND and 0-10V terminals on the TOOLHEAD terminal and adjust the 0-10V potentiometer until the multimeter reads 10.00V.
  11. Type in the console M5 to turn the spindle off.

Useful Guides


For any questions or concerns, please contact us at sales@makerstore.com.au

Australian customers: For more project ideas and solutions, please visit makerstore.com.au

North American customers: For more project ideas and solutions, please visit makerstore.com.cc

UK Customers: For more project ideas and solutions, please visit makerstore.co.uk


  • The Maker Community.

  • Our fantastic customers, whose feedback constantly helps improve our processes and guides.

Table of Contents