Front_Panel - Spark-Concepts/xPro-V5 GitHub Wiki
Connect Positive ("+24V") and Negative ("GND") from your Power Supply to the xPro-V5 using the supplied (5mm) Connector - be sure to observe correct polarity.
The Coolant output can be used to control dust-extraction or cutting fluid systems, and/or repurposed for other switching requirements. Note: the port labeled "GND" acts as a switched ground source, the signal labeled "SIG" is a constant 5V(default) or 24V*
The Cool(mist) signal is enabled using the M7 (mist) gcode statement and turned off with the M9 gcode statement
Electrical Specifications:
- Voltage: jumper select(1) - 24v or 5v(default)
- Max Current: 250mA(5V) and 2A(24V)
- Suitable for inductive loads (24V only)
note: the SIG port can also be configured to output 24V by removing the xProV5 lid and moving the "MIST" jumper(1) from 5V to 24V
Spindle classes are defined in the firmware (the default firmware on the xProV5 is PWM). The Spindle Type is dynamically selected by entering $Spindle/Type=XXXXX
' in the command line. There are two classes of Spindles with two separate Spindle Types.
Default Spindle Setting:
$Spindle/Type=NONE
For the PWM and Laser Spindle classes:
$Spindle/Type=PWM
$Spindle/Type=LASER
For the RS485 class:
$Spindle/Type:=HUANYANG
$Spindle/Type:=H2A
If your machine does not require a spindle, like a pen plotter, choose this type. It will not use any I/O. It will default to this type if no I/O is defined.
This is the default setting on the xProV5. Many speed control circuits for spindles use a PWM signal to set the speed.
- With the EN/PWM-RS485 A/B switch(1) set to EN/PWM the TOOLHEAD port provides the means to drive many different toolheads (spindles, VFDs, laser
$Spindle/Type=LASER
, and plasmas, etc.) This 4-pin connector provides the following:
-
Ground Reference
-
0-5V PWM Signal
-
The pwm signal is used primarily to drive lasers and small spindles. The pwm signal is activated by an
M3
orM4
gcode statement. The value of the pwm signal is determined by the speed portion of the M3/M4 command – ex.M3 S6000
will create a half max pwm signal output (assumes the default max spindle speed of 12,000rpm) -
When laser mode is enabled, Grbl controls laser power by varying the 0-5V voltage from the spindle PWM connector. 0V should be treated as disabled, while 5V is full power. Intermediate output voltages are also assumed to be linear with laser power, such that 2.5V is approximate 50% laser power.
-
By default, the spindle PWM frequency is 5kHz, and compatible with most current Grbl-compatible lasers system. If a different frequency is required, such as the "Bulkman 15W Laser a modulation frequency <9 kHz" is recommended; this can be changed by typing
$Spindle/PWM/Frequency 9000
in the console window ($Spindle/PWM/Frequency "Spindle PWM Freq")- For LightBurn users please note the xPro-V5
$30
setting. TheS-value max
setting in LightBurn should match the$30
setting on the xPro (typically$30=1000
)
- For LightBurn users please note the xPro-V5
-
NOTE: go to Edit > Device Settings in LightBurn and modify the S-Value as required
For SAFETY and unintentional actuation of the spindle when a PWM signal isn't being commanded, it is suggested that you wire the PWM through the relay and move the relay jumper(1) to SP_EN as illustrated below:
-
3.3V Spindle Enable
- The spindle enable signal is used by some laser modules and spindles to act like an “on” switch. When an
M3
orM4
command is issued, the Spindle Enable signal goes high to 3.3V and stays constant regardless of the speed command if your laser module does not have an enable, you will need to route the PWM output through the relay -
WARNING: SEE $Spindle/Type=LASER FOR LASER WIRING INSTRUCTIONS
- The spindle enable signal is used by some laser modules and spindles to act like an “on” switch. When an
-
0-10V Analog Signal
- The 0-10V signal is used primarily to drive VFDs and a select few laser modules. The 0-10V output act identical to the pwm output, except it is processed to create an analog 0-10V ouput that scales with the speed command. note: the maximum output of 10V can be calibrated by commanding
M3 S12000
and adjusting the potentiometer(2) as indicated below
- The 0-10V signal is used primarily to drive VFDs and a select few laser modules. The 0-10V output act identical to the pwm output, except it is processed to create an analog 0-10V ouput that scales with the speed command. note: the maximum output of 10V can be calibrated by commanding
-
$GCode/MaxS=XXXX
sets Maximum spindle speed (XXXX=0-1000). This value is used to match a PWM duty to the RPM you want. If you set this to 1000 and send S500, it will set the duty to 50%. If you send S1500, it will change clip your value to 1000. -
$GCode/MinS=XXX
sets the the minimum RPM. If your spindle does not work well below 200 RPM, set $31=200. If you send an S value below 200, it will set the speed to 200.
-
$Spindle/PWM/Off=XXX
sets spindle PWM Off Value. Typically set to 0. The PWM values are set in percentage of duty cycle. -
$Spindle/PWM/Min=XXX
sets spindle PWM Min Value Typically set to 0. -
$Spindle/PWM/Max=XXX
sets spindle PWM Max Value. Typically set to 100.
You can also install a Solid State Relay (SSR) to control your spindle using Gcode commands (ensure the EN/PWM-RS485 A/B switch(1) is set to EN/PWM)
A laser is basically a PWM spindle with a few extra features. You want it to turn off when the machine is doing a rapid move or is paused. It can also do a speed compensation feature. If you are engraving you want the laser to proportionally reduce the power when it is accelerating or decelerating. Use the M4 command, normally used for counter clockwise rotation, to enable this feature.
- Most PWM Settings also apply
-
$GCode/LaserMode Set
$GCode/LaserMode=1
for laser mode -
$Laser/FullPower=nnnn; sets the full power number used for the PWM.
$Laser/FullPower=100
means your power range is 0-100.
It is critical that the spindle enable signal is used if your laser module has on; if your laser module does not have an enable, you will need to route the PWM output through the relay
This spindle mode talks to a Huanyang VFD (a very popular Chinese VFD) using an RS485 serial connection. It can control the speed and which direction the spindle should turn. To change this setting flip the EN/PWM switch(1) over to RS485 A/B and enter the command $Spindle/Type=HUANYANG
or $Spindle/Type=H2A
; Note: type HUANYANG is their original protocol and HY2 is Huanyang's latest protocol. Wire terminal A on the xPRO V5 to RS+ of the VFD and terminal B to the RS- of the VFD.
- With the EN/PWM-RS485 A/B switch(1) set to RS485 A/B the TOOLHEAD port GPIO's are de-activated and the bi-directional differential pair RS-485 circuit enabled:
- RS485 A = (RS+)
- RS485 B = (RS-)
RS485 circuit automatically asserts a send signal as it transmits - e.g. a direction pin is not required
NOTE: The VFD's AC and Spindle cables induce a lot of noise/EMI on the RS485 - special considerations with wiring must be followed:
-
Only use a twisted-pair (minimum of 2 or 3 twists per inch) or twisted-shielded-pair for the RS-485 communications line (20-24AWG); this will help to eliminate common mode noise that can corrupt the data on the line. (if using a twisted-shielded-pair, be sure to terminate the shield to ground at only one end of the cable)
-
DIY twisted-pair:
- Carefully insert two cut ends of 20-24AWG wire into a drill chuck
- Pull the wire taut so that it will twist evenly when the drill is started
- Using the drill twist the wire until you achieve a minimum of 2 or 3 twists per inch
-
Recommended: place 100-120 ohm network termination resistor at the ends of the RS-485 twisted-pair communications line; this will help to eliminate data pulse signal reflections that can corrupt the data on the line(2). (any standard 100-120 ohm 1/2-1/4 Watt carbon film resistor will suffice)
note: make sure the EN/PWM-RS485 A/B switch(1) is set to RS485 A/B
Using the procedure in the Huanyang-VFD-manual , set the following register values:
Register | Value | Description |
---|---|---|
PD000 | 0 | unlock parameters |
PD001 | 2 | Command source is RS485 |
PD002 | 2 | Speed source is RS485 |
PD163 | 1 | Communications address 1 |
PD164 | 1 | 9600 b/s |
PD165 | 3 | 8 Bit No Parity - RTU |
PD000 | 1 | lock parameters |
Also verify the following settings (based on the values on the motor's nameplate)
Register | Description |
---|---|
PD004 | Base frequency as listed on spindle (typically 400) |
PD005 | Maximum frequency Hz (typical value for spindles is 400) |
PD011 | Min speed (recommended air-cooled=120 water=100) |
PD014 | Acceleration time (test to optimize) |
PD015 | Deceleration time (test to optimize) |
PD023 | Reverse run enabled (set to 1) |
PD141 | Spindle max rated voltage (typically 220) |
PD142 | Max rated motor current (0.8kw=3.7, 1.5kw=7.0, 2.2kw=??) |
PD143 | Motor poles (typically 2 or 4) |
PD144 | Rated motor revolution at 50Hz (typically 3000 @ 50Hz and 24000 @ 400Hz) |
The onboard relay provides a high-power switch to activate device the normally could not be controlled by a digital logic pin – example Plasma Trigger, 24V coolant pump, 24V water cooled spindle pump, 24V VFD logic signal etc. The relay acts as a simple switch connecting two wires and creating a path for current to flow. The relay is controlled via the Spindle Enable signal or the Mist signal. The selection is made using the internal jumper(1) next to the Relay (as seen below). note: the default relay control is set to Spindle Enable(1)
A switch can be connected to the Door/Estop terminal to allow a physical button to stop the machine. The Door/Estop button is a safety switch and will completely abort the current motion (or gcode cut) and require a reset the controller. You can use a Normally Open (NO) or Normally Closed (NC) switch for the Door/Estop switch.
- To use a NO switch, simply wire the switch to the 2 pin, 3.81mm header. Verify the default jumper settings(1 & 2) (see figure below).⤵
- To use a NC switch, you must first update the firmware to one of the “CNC_xPRO_V5_----_---_NC” variants. Verify the jumper settings(1 & 2) Then wire the NC switch to the 2 pin, 3.81mm header (see figure below).⤵
This button is used to initialize the bootloader when uploading firmware via USB. Otherwise, don’t push it 😊.
The USB connection for the xProV5 is a USB-C type connector. This connector allows the use of USB based GRBL Senders (CNCjs, Universal Gcode Sender, etc). These sender provide more features than available through the WebUI – mostly in terms of graphics and job tracking.