Hello Guest it is February 26, 2026, 08:59:52 PM

Recent Posts

Pages: « 1 2 3 4 5 6 7 8 9 10 »
21
M31 Motion Controller / Re: VFD
« Last post by paul.stephens on February 17, 2026, 09:58:43 AM »
Software configuration steps:

In your M31 Config (M31 Plugin):

Check Motor0, make sure your Type is set to stepper at index 0, Feedback source is undefined at index 0, Select your homing type
Check Motor1, make sure your Type is set to stepper at index 1, Feedback source is undefined at index 1, Select your homing type
Check Motor2, make sure your Type is set to stepper at index 2, Feedback source is undefined at index 2  , Select your homing type
IF a 4th axis:
Check Motor3, make sure your Type is set to stepper at index 3, Feedback source is undefined at index 3, Select your homing type

You wont need to check polarity at this time as the M31 should be blind to direction with no feedback.

In Configure → Control... → Motors, make sure that your desired motors are enabled.
In Configure → Control... → Axis Mapping, make sure that your Motors are mapped to your Axis and enabled. Only enable and map the axis that you are using.

Make sure that an ESTOP event is not happening. You will not get motion without an ESTOP. (M31 expects a N.C. setup)

Open your logging data in Diagnostic → Logging and keep an eye on your status bar to verify no errors. The logging data will tell you almost every event in Mach. It will be your number 1 troubleshooting tool.

Enable Mach, lower your rapid, and try to jog your machine to see if you get any motion. If you do not, please send over your logging data for review and double check your wiring.




22
MachPro General Discussion / Registers
« Last post by cd_edwards on February 17, 2026, 09:23:08 AM »
I've been attempting to use Registers for an automatic unload/reload of a dustboot. Here is my script so far.

In m6 I have
require "dustboot"
and have placed DropDustBoot() and PickupDustBoot() in appopriate places.


And here is my DustBoot.lua file. All of the mcRegGetHandle() always return 0 for the hreg and rc of 0. 
As well mcRegGetValue() calls have a return code of -27 and return 0 even when there's definitely values in the registers. Yes iRegs0/DustBoot/* all exist. -27 indicates it doesn't exist which should be correct as a register 0 doesn't exist but then the Gethandle should have told me that.
hreg,rc = mc.mcRegGetHandle(inst, "core/global/Version") fails with a hreg of 0 and a rc of 0. Either that exists or Mach is not running.

I believe this is ALL IPC related. Mach4 with it's wxprobe screen doesn't recognize probes have activated. This script fails there as well. I'm open to suggestions here.


local DustBoot = {}

-- Dustshoe Entry Settings
local inst = mc.mcGetInstance()

local hreg, rc, ignoreDustBoot
local DustBootX = 46.2057   
local DustBootY = 11
local DustbootZ = -3.7143
local DustbootRateY = 100
local DustBootRateZ = 200
local DustBootYSlide = 4   
local DustBootStatus

hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/ignoreDustBoot")

if (rc == 0) then
    ignoreDustBoot, rc = mc.mcRegGetValue(hreg)
   hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/DustBootX")
   DustBootX, rc = mc.mcRegGetValue(hreg)
   
   hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/DustBootY")
    DustBootY , rc = mc.mcRegGetValue(hreg)
   
   hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/DustBootZ")
   DustBootZ, rc = mc.mcRegGetValue(hreg)


   hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/DustBootRateY")
   DustBootRateY, rc = mc.mcRegGetValue(hreg)

   hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/DustBootRateZ")
   DustBootRateZ, rc = mc.mcRegGetValue(hreg)

    hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/DustBootYSlide")
   DustBootYSlide, rc = mc.mcRegGetValue(hreg)

    hreg, rc = mc.mcRegGetHandle(inst, "iRegs0/DustBoot/DustBootStatus")
   DustBootStatus, rc = mc.mcRegGetValue(hreg)   
else
    ignoreDustBoot = 0
end

                                          ------ How far from dustshoe to start with Y Park Movement
   
-- =========================================================== drop dust boot =============================================================================
function DropDustBoot()

    if (ignoreDustBoot == 1 or DustBootStatus == 0) then
      do return end
    end

   GCode = "G00 G90 G53 Z-1\n"                                                             ------ Z Up   
   rc = mc.mcCntlGcodeExecuteWait(inst, GCode)

   if (rc ~= 0) then
      do return end
   end
   GCode =  string.format("G00 G90 G53 X%.4f Y%.4f \n", DustBootX, DustBootY-DustBootYSlide)       ------ TO DUSTSHOE ENTRY
   mc.mcCntlGcodeExecuteWait(inst, GCode)
            
   GCode =  string.format("G00 G90 G53 Z%.4f\n", DustBootZ)                                     ------ TO DUSTSHOE Z
   mc.mcCntlGcodeExecuteWait(inst, GCode)
            
   GCode = string.format("G01 G90 G53 Y%.4f F%.4f\n", DustBootY,DustBootRateY)                        ------ MOVE Y INTO DUSTSHOE HOLDER
   mc.mcCntlGcodeExecuteWait(inst, GCode)
            
   GCode = "G00 G90 G53 Z-1\n"                                                             ------ PICK UP Z --- DROP SHOE IN HOLDER --
   mc.mcCntlGcodeExecuteWait(inst, GCode)
            
   GCode =  string.format("G00 G90 G53 Y%.4f \n", DustBootY-DustBootYSlide)                      ------ MOVE TO SAFE Y
   mc.mcCntlGcodeExecuteWait(inst, GCode)
   hreg = mc.mcRegGetHandle(inst, "DustBoot/DustBootStatus")
   mc.mcRegSetValue(hreg, 0)
end


--  ============================================================ PICKUP DUST SHOE ==========================================================================   
   
function PickupDustBoot()   
   if (ignoreDustBoot == 1 or DustBootStatus == 1) then
      do return end
    end
   local toolnum, rc = mc.mcToolGetCurrent(inst)
    if (toolnum == 0) then
      do return end
   end
   
   mc.mcCntlGcodeExecuteWait(inst, "G00 G90 G53 Z-1.0\n")                                       ------ Z UP
   
   GCode =  string.format("G00 G90 G53 X%.4f\n", DustBootX)                                  ------ To DustShoe Entry X
   mc.mcCntlGcodeExecuteWait(inst, GCode)
            
   GCode =  string.format("G00 G90 G53 Y%.4f\n", DustBootY)                                  ------ To DustShoe Entry Y
   mc.mcCntlGcodeExecuteWait(inst, GCode)
   
   GCode = string.format("G00 G90 G53 Z%.4f\n", DustBootZ+0.75)                                 ------ G00 Quick down to 20mm above DustShoe Pick Up
   mc.mcCntlGcodeExecuteWait(inst, GCode)
   
   GCode = string.format("G01 G90 G53 Z%.4f F%.4f\n", DustBootZ,DustBootRateZ)                     ------ DustShoe Pick Up
   mc.mcCntlGcodeExecuteWait(inst, GCode)
            
   GCode = string.format("G01 G90 G53 Y%.4f F%.4f\n", DustBootY-DustBootYSlide,DustBootRateY)      ------ DustShoe SlideOutY
   mc.mcCntlGcodeExecuteWait(inst, GCode)
   hreg = mc.mcRegGetHandle(inst, "DustBoot/DustBootStatus")
   mc.mcRegSetValue(hreg, 1)
end   

if mc.mcEditor() == 1 then
   DropDustBoot()
   PickupDustBoot()
end

return DustBoot

23
M31 Motion Controller / Re: VFD
« Last post by edcross on February 17, 2026, 04:41:42 AM »

X Axis
DB25 Pin 2 → M31 MTR0 S+
DB25 Pin 3 → M31 MTR0 D+
Y Axis
DB25 Pin 4 → M31 MTR1 S+
DB25 Pin 5 → M31 MTR1 D+
Z Axis
DB25 Pin 6 → M31 MTR2 S+
DB25 Pin 7 → M31 MTR2 D+
A Axis
DB25 Pin 8 → M31 MTR3 S+
DB25 Pin 9 → M31 MTR3 D+
24
Mach4 General Discussion / Mach4 - C82 - PlasmaSensOut - Z axis
« Last post by grivalsky on February 16, 2026, 04:02:15 PM »
I have Mach 4 - hobby, C82 - dual-port multifunction board - torch height control - PlasmaSensOut
I had installed and purchased a hobby license.
Mach4Hobby_Installer-4.2.0.4612
ESS_Mach4_v278.1
The X axis, Y axis and Z axis worked correctly. When I connected and turned on the HC
the signals for the HC come to me and I see them on the screen as the indicator light lights up, but the Z axis does not respond to them. Even though I have the HC switched to manual control, the Z axis does not respond.
I tried everything I could think of but the HC did not work.
I uploaded a new plugin, I did not change anything, I just uploaded a new plugin there
ESS_Mach4_v320
The X axis, Y axis worked correctly but the Z axis does not move at all even when I turn off the HC. At least the Z axis worked with the 278 plugin.
When I put plugin 278 back in, my Z axis starts working again.
1. Can you tell me what changed that made my Z axis stop working after uploading the new plugin. And how do I fix it?
2. Why doesn't my HC work at all?
25
M31 Motion Controller / Re: VFD
« Last post by paul.stephens on February 16, 2026, 01:10:14 PM »
Your motion controller should be the M31 and the active motion controller should be the M31. In the M31 plugin, you will need stepper motors selected as well as your indexing to be correct. (For steppers, Motor0 is index zero Motor1 is index 1)

What is your current motor wiring for the M31 to your G540?
26
M31 Motion Controller / Re: VFD
« Last post by paul.stephens on February 16, 2026, 01:07:01 PM »
We currently have 200+ active tickets in support. We take them in order as we receive them.
27
M31 Motion Controller / Re: VFD
« Last post by edcross on February 16, 2026, 10:03:17 AM »
I am sure glad you are on this forum , i am not getting much response from support . On the drive problem i got a db25 board and  just connected my G540 , no movement i will go over the settings . What should it list as the control source in the config window.

       Thank you

         Ed
28
M31 Motion Controller / Re: VFD
« Last post by paul.stephens on February 16, 2026, 09:43:53 AM »
You will need a SOURCE wiring Configuration for your VFD.

In such wiring mode, remove the jumper between +24 V and OP. Connect +24 V to
the common port of external controller (J5 FE on the M31) and meanwhile connect OP to COM. If external
power supply is applied, remove the jumper between CME and COM.

This will be your forward signal:
VFD+24v → J5 FE M31
VFD DI1 → J5 FC M31

This will be your Speed adjustment:
VFD AI1 → J5 10v
VFD GND → J5 0v (Verify this is the correct ground by reading your VFD manual)

https://www.ivdc.com/cnc/SVD-P%20user%20manual-NEW.pdf
29
MachPro General Discussion / MachPro
« Last post by cd_edwards on February 15, 2026, 03:10:25 PM »
For anyone thinking about upgrading to MachPro there are still issues being worked on. I have problems with reading Registers from m-code scripts. For me, and the RC ATC this is a problem I need to solve as I need a removable dust boot. As far as the program, it's nice... There are definitely QOL improvements over Mach4 and way beyond Mach3. ESS support appears to be working extremely well. Definitely some niggling little bits that need work at this time though. It is unforunate that Mach4 is being EOL'd at this time though. Maybe a discount given to those that already own Mach4 might be an option. I've spoken to Carl Eldridge on the phone and he seems like a great guy. I wish them ALL the success the in world on this endevour.

As far as the hardware I can't speak to it, but with all the ESS and cnc4pc parts I have kicking around, there was no way I could justify moving to the M-31.. Ethercat would be really nice, but it's also out of my budget as a hobbyist. Right now I'm working on my fourth CNC build in 15 years. I will be moving it over to MachPro once a few features are working. RC ATC, maybe script debug, IPC would be nice so that remote control is possible (almost working).

I would like to see them finish Mach4 so it's more usable. IPC on my win10 and win11 computers fail. This affects wxprobe screen which does not work at all for me. They have this great probing screen that's useless as it won't detect probes at all. :shrug: 

anyways, if anyone has ideas on why mcGetRegister() fails in a m-code script, I'm all ears. return code can be -17 or -27(??) occasionally, and sometimes 0 for rc. always 0 for value.
30
M31 Motion Controller / VFD
« Last post by edcross on February 14, 2026, 10:32:12 AM »
 Vfd Soyan Power  Svd Ps2 2gb 220v single phase . Does any one have info or diagram to connect to Machpro M-31..

     Thanks

      Ed
Pages: « 1 2 3 4 5 6 7 8 9 10 »