0 10V Output Module - bdring/6-Pack_CNC_Controller GitHub Wiki

This can be used with spindle controllers that require a 0-10V analog voltage for speed control. It also has (2) opto isolated digital outputs that can be used for signals like direction. It has a potentiometer to adjust the output voltage, so it can be used with 3.3V and 5V signals. With a 3.3V signal the full speed output can be adjusted with the potentiometer from 4.75V to 11V. It has (3) LEDs to indicate the status of the outputs. The brightness of the LED on the spindle output pin will be proportional to the 0-10V output. It has a pluggable terminal block that can be installed horizontally or vertically.

Note: Ignore if "Use spindle type PWM" is written on back of module.

Huanyang VFD Instructions.

Set the following parameters

Parameter Value Description
PD001 1 Source of on/off is external (optos)
PD002 1 Source of freq is external (0-10v)
PD005 400 Max frequency Hz (24000 RPM/ (60sec/min) = 400)
PD011 120 Min Frequency (going too slow could overheat motor)
PD014 10 Acceleration in secs (test to optimize)
PD015 10 Deceleration in secs (test to optimize)
PD023 1 Reverse enabled (optional)
PD142 3.7 Max current (0.8kw=3.7, 1.5kw=7.0, 2.2kw=??)
PD070 0 External speed control is 0-10V

FlidNC Config Examples

In socket #3

10V:
  output_pin: gpio.26
  forward_pin: gpio.4
  reverse_pin: gpio.16
  spinup_ms: 0
  spindown_ms: 0
  tool_num: 0
  speed_map: 0=0% 6000=0% 24000=100%

In socket #4

10V:
  output_pin: gpio.14
  forward_pin: gpio.13
  reverse_pin: gpio.15
  spinup_ms: 0
  spindown_ms: 0
  tool_num: 0
  speed_map: 0=0% 6000=0% 24000=100%

Grbl_ESP32 Machine definitions

*Note: This module uses the VMot voltage. VMot should not exceed 32V is you install this module.

This module should be used in sockets $3 and #4 only, do to the pin properties of the other sockets.

// when used in socket #3
// https://github.com/bdring/6-Pack_CNC_Controller/wiki/0-10V-Output-Module
#define SPINDLE_TYPE            SpindleType::_10V// default, check actual $Spindle/Type Setting
#define SPINDLE_OUTPUT_PIN      GPIO_NUM_26
#define SPINDLE_FORWARD_PIN     GPIO_NUM_4
#define SPINDLE_REVERSE_PIN     GPIO_NUM_16
// when used in socket #4
// https://github.com/bdring/6-Pack_CNC_Controller/wiki/0-10V-Output-Module
#define SPINDLE_TYPE            SpindleType::_10V// default, check actual $Spindle/Type Setting
#define SPINDLE_OUTPUT_PIN      GPIO_NUM_14
#define SPINDLE_FORWARD_PIN     GPIO_NUM_13
#define SPINDLE_REVERSE_PIN     GPIO_NUM_15

Setup

Make sure the following settings are correct

  • $Spindle/Type=10V
  • $GCode/MaxS=24000 (your max RPM)

The output voltage has to be tuned to 10V. Connect USB and the primary voltage (12V-24V). Connect a voltage meter to the ground and 10V terminals. With Grbl in Idle, send M3 S24000 (assuming 24000 is your max speed). Adjust the potentiometer until meter reads 10V.

Wiring

CNC I/O Module VFD Description
Grn ACM Analog Common
0-10V VI signal voltage input
Com DCM Digital common
Out1 FOR Forward Direction Signal
Out2 REV Reverse Direction Signal (Optional)

If there is a jumper, make sure it is on the VI side. VR is for a potentiometer that is often on the control panel.

Testing

Make sure the rotation of the spindle is correct. It is is not, see your manual on how to fix it.

Source Files