Huanyang VFD 2,2kw Water Cooled Spindle to D3MB6HCv1 mainboard

  • Greetings,

    I finished connecting my Huanyang VFD 2,2kw 110v Water Cooled Spindle to my D3MB6HCv1 mainboard. Wanted to post this info for others that wanted to do the same.

    Searched this forum and started with this post by Catalin_RO 26 Jun 2018, 13:54 -

    I bought the module on Amazon (currently unavailable, but there are other similar modules available, make sure it is a 0-10V) KNACRO PWM to 0-10V Conversion Module Digital to Analog Module PLC Industrial Interface Conversion Module.

    Wired the module using information from an Openbuilds post here -

    The module needs external power and will operate at 5v and 24v. There is a white jumper on the side that can be changed for the voltage you have available. The black and red wires in the image below are from the 24v power supply that powers the mainboard.

    The orange and yellow wires are connected to the mainboard on the - 2-pin JST VH or compatible connectors OUT_1 thru OUT_3 pins normally used for extruders, heaters, and fans. I used the "OUT_1" connection. With this 2 pin connection, OUT_1 pin connects to the yellow wire and the V_FUSED connects to the orange wire.


    I found this image on the Openbuilds site. I do not know if it is accurate. I could not find a schematic of the module and this image was helpful.

    PWM-to-analog-converter .png

    The grey and pink wires from the module connect to the VFD control circuit terminals at the ACM (grey) and the VI (pink) terminals. The red wire is a jumper to keep the VFD in an 'always on' state using DCM and FOR terminals, (WARNING: I do not know if this will cause some unforeseeable problem with the VFD, use at your own risk) otherwise you will need to use another module (two total) and use another pin on the mainboard to turn the spindle on when the M3 is issued. See M453 for more info:

    Next, you will need to program the VFD on the main panel. The following information was taken from:

    • PD001 from 0 to 1 to change spindle on/off from "operator" control to "external" control.

    • PD002 was already set to 1, which is "external" control, but until you switch the jumper, the "external" is the potentiometer on the control panel. Once you move the jumper to the left, it will use the pins.

    • PD070 from 1 to 0 to change the input voltage it's looking for from 0-5v to 0-10v. Before I changed this, the spindle speed was double what I was sending. i.e. I'd send M3 S12000 and the spindle would go to 24000RPM.


    The module is velcro'd to the inside of the hatch and out of the way when it's buttoned up.


    The config.g needs to be reconfigured to use the "OUT_1" pin on the mainboard.

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Wed Jul 29 2020 15:25:39 GMT-0700 (Pacific Daylight Time)
    ; General preferences
    M453			       					; CNC Mode
    G90                            			; send absolute coordinates...
    M83                            			; ...but relative extruder moves
    M550 P"Duet 3"                 			; set printer name
    ; Drives
    M569 P0.2 S0                   			; X 0.2 physical drive goes backwards
    M569 P0.0 S0                			; Y-R 0.0 physical drive goes backwards
    M569 P0.1 S0                   			; Y-L 0.1 physical drive goes backwards
    M569 P0.3 S1                   			; Z 0.3 physical drive goes forwards
    M584 X0.2 Y0.0:0.1 Z0.3 E0.4:0.5:0.6 	; set drive mapping
    M350 X16 Y16 Z16 U16 I1        			; configure microstepping with interpolation U=dummy Y axis
    M92 X400.00 Y400.00 Z400.00      		; set steps per mm
    M566 X900.00 Y900.00 Z12.00    			; set maximum instantaneous speed changes (mm/min)
    M203 X2000.00 Y2000.00 Z1000.00 		; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00    			; set accelerations (mm/s^2)
    M906 X3000 Y2500 Z3000 I30     			; set motor currents (mA) and motor idle factor in per cent
    M84 S30                        			; Set idle timeout
    ; Axis Limits
    M208 X0 Y0 Z0 S1                		; set axis minima
    M208 X500 Y375 Z60 S0          	    	; set axis maxima
    ; Endstops
    M574 X2 S1 P"!^"         			; configure active-high endstop for high end on X via pin !^
    M574 Y1 S1 P"!^"         			; configure active-high endstop for low end on Y via pin !^
    M574 Z2 S1 P"!^"         			; configure active-high endstop for high end on Z via pin !^
    ; Z-Probe
    M558 P5 c"!^" H5 F120 R1 T300     ; Z probe switch type, probe recovery 1s probe speed and travel speed
    M557 X15:215 Y15:195 S20       			; define mesh grid
    ; Fans
    M950 F0 C"out7" Q500           			; create fan 0 on pin out7 and set its frequency
    M106 P0 S1 H-1                 			; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out8" Q500           			; create fan 1 on pin out8 and set its frequency
    M106 P1 S1 H-1                 			; set fan 1 value. Thermostatic control is turned off
    ; Tools
    M563 S"XYZ-Probe" P1                    ; define XYZ Touch Probe tool 1
    M563 P0 S"Spindle"                      ; define tool 0
    G10 P0 X0 Y0 Z0                         ; set tool 0 axis offsets
    G10 P0 R0 S0                            ; set initial tool 0 active and standby temp to 0C
    ; Custom settings are not defined
    M564 S1 H1                              ; disable jog commands when not homed
    M501                                    ; load stored parameters
    ; CNC
    M453 S0 C"out1" R24000 Q100 T0          ; set to CNC mode using tool 0 pin=1 max RPM 24000 PWM frequency 100hz

    Lines 47-49 and line 57 need to be added. I'm not sure if lines 48 and 49 are needed concerning the G10 parameters for the M563 that defines the spindle as tool 0.

    M563 P0 S"Spindle" defines the spindel as tool 0.
    M453 S0 C"out1" R24000 Q100 T0 sets up the tool and needs to come after the M563 that defines the spindel. T0 is optional and aids the DWC in monitoring the tool.

    To test the setup, enter M3 S500 on the DWC console to turn the spindle @ 500 RPM and all should be well. Enter M5 to turn it off.

    If anyone needs help, post a reply and I'll try to help out. Otherwise, somone with more experience from Duet3D will come to your aid.

  • good write up but I have a question and an enhancement for you.

    First off, the duet 3 doesn't need the PWM converter as it has a 0-5v VFD header. As the huanyang supports both 0-5v and 0-10v control, why didn't you use that? Removes any middle components and cleans the installation up.

    In RRF3, an enable pin is able to specified. This would allow you to remove the wire from between the forward and DCM terminals.
    To do so, you would first need to connect DCM to the 0v line on the PSU supplying the duet. This just ties the ground together. You then connect the "For" line to the ground pin of an out connecter on the duet. Any of the heater or fan pins would work.
    You would then modify the M453 command to

    M453 S0 C"out1+out2" R24000 Q100 T0

    Assuming out2 is used for the enable side. This means you reduce the risk of the spindle operating accidently.
    This is how I have my spindle wired up to a non duet 3 (but still RRF) board.

  • Does the Duet3 PWM output need filtering to get an analogue signal for the VFD or will the Huanyang work from the PWM signal directly?

  • It should work directly with it.
    If I get time, I might be able to run a test today

Log in to reply