From another thread here:
The technique here is to edit the existing GCode so that the +Z moves are just one step (in my case +0.002) and the –Z moves are also just one step (-0.002) then set the Z axis direction pin to the laser trigger pin allocation. The time delay between the Z axis completing the two virtual steps and the laser switching is so small that it can almost be considered instantaneous and when I return to engraving the fine line in a soft wood there is no longer a dot at each end of the line.
An alternative option, which is also worth investigating, is the B axis direction pin. This is probably much easier to implement where the B axis ‘steps per’ are set to 1 and the B axis direction pin is mapped to the laser trigger (pin 16 in my case) then any GCode is edited to replace the Z axis moves with B1 to turn the laser on and B0 to turn it off. Again this command can almost be considered as instantaneous and tests have shown it to have equal results to when the Z axis direction pin was used.
I have the USB XHC MachIV controller (Rev 5) and at this point can't get the M11/M10 working. Understood per this current thread. My controller is 4-axis and I'm using the JTechPhotonics driver and their Pic-Convert (DAC) board which takes signals from the A-axis. Since M11/M10 aren't working and of course I'm getting delays and burning at endpoints, I'm intrigued with the above comments about using the B-axis (or C) but I'm confused as to how to set up the triggering with the dummy axis and how it comes into play regarding GCode.
An example of GCode might help me understand the difference between:
1. Switching an output utilizing a macro that contains the "ActivateSignal(Output 5)" for output 5
2. An M3 call.
3. Or using a dummy drive, i.e., how does that make things faster than options 1 or 2?
Also, I don't understand the part about using/mapping the B-Axis direction pin to trigger something?