Hi dirktheeng,
I hadn't announced that feature yet , but it looks like you noticed the functionality. It should work. You might need the latest plugin:
http://warp9td.com/files/SmoothStepper_v17ed.m3p
It sounds like you are very familiar with the M11 and M10 commands. I will respond to your posting with much more detail than you need, but others will be able to better understand what this is all about.
The only reason I hadn't announced it yet is because it is hard-coded to Output #1. I can't find any way to know what output number is specified on the gcode line (i.e. "M11P1" means Output number 1, and "M11P2" would mean Output #2). However, this probably isn't much of a limitation for someone who wants to get their laser going. I am waiting for Brian to tell me whether or not it is possible for a plugin to know. I started to add a way for the user to specify which Output number to use. In that plugin listed above, there is an option for telling it which Output Number to use, but unfortunately I haven't completed the code that goes behind it, so it does nothing at this time. If Brian says there is no way to know, then I will complete that code, otherwise it will be transparent to you and it will work just as it does with the PP.
You will see an option for "M11Px/M10Px Gates Spindle Output". This is probably an unnecessary feature, but somebody might be able to use it. I believe that normally the PWM signal is turned on all of the time for control of intensity, and another discrete I/O turns the laser on and off. The gating feature combines the PWM and On/Off discrete in one signal. M11 turns on the PWM and M10 turns it off. If the PWM _base_ frequency is set high enough, then this works well. Something in the range of 20 to 50 kHz would work well. But if your laser power supply requires a low frequency such as 1 kHz or less I don't think it would work as well. But it would only affect the beginning when the laser is turned on. So it might not be a problem...
The PWM output is the Spindle Output. Set up the spindle as PWM and select your _base_ frequency in the config dialog of the SmoothStepper. Set your pulleys so that S0 is 0%, and S1000 is 100% (it will end up being nearly 100%).
Water Jet systems are similar to lasers. The difference is that the water jets need to pierce through the material before the jet or material is moved. I added a feature to delay before moving after an M11 command. For lasers, you will want to check the box that says "Select Delay" and enter "0" for the delay. If you want the laser to be stationary for a while before moving (that doesn't make any sense, but maybe there is a use for it), you can enter a value in the Delay box. If you find you need to change this value a lot, you can check the box that says "Selected Via User DRO", and enter a User DRO number to use. Then modify your screen set to include a DRO with that number.
If you are unfamiliar with M11 and M10, the syntax is as follows:
M11Px
M10Px
where "x" is a number that represents the Output number you want to use. The Port and Pin for the Output is set in the Outputs tab of Ports & Pins. Right now it is hard-coded for Output #1. Until I get more info from Brian, you will need to change your setup to use Output #1.
M11 and M10 by themselves don't create any action. I consider them "arming" commands. When you issue an M11 command, the next movement command (such as G0 through G3) will turn the Output pin on. The reason for this is because of the indeterminate amount of time it takes to get from the M11 command to the movement command. For example, M11 could turn the laser on, but then something could happen in Windows and the G1 command that follows might not get executed for a while. In the meantime you've burned a little more material than your would have liked. So instead, the M11 command "arms" the Output and it is triggered when the next motion command is executed. The Output will stay on until an M10 command is used to turn it off. Just like the M11 command, the M10 command requires a motion command following it to make it work. So in order to turn the laser off after a series of cutting moves, be sure to move somewhere such as the start of the next part, or a home position. Otherwise it will sit there burning a hole waiting for a motion command. I'm not sure I see the value in the M10 command being an arming type of command, but that is the way it is. But I see a great deal of value in the way M11 works.
Here is an example of how you would cut a square:
Code: :
S1000 (Set the laser PWM at 100% duty cycle)
M3 (Turn on the spindle)
G1 X0 Y0 (get into position at the start of the part)
M11P1 (arm the laser on/off to be turned on)
G1 X1 Y0 (coincident with the beginning of this move, the laser on/off is turned on)
G1 X1 Y1 (cut a square)
G1 X0 Y1
G1 X0 Y0
M10P1 (arm the laser on/off to be turned off)
G1 X2 Y0 (coincident with the beginning of this move, the laser on/off is turned off)
You will still be able to turn the laser on/off using other Output commands. For example, you could have a button on the screen that simply turns the Output on, and it will stay on no matter if an M11 or M10 is executed. So in order for M11/M10 to work, make sure the Output is deactivated before trying to use them.
You are correct about the way the Activate/Deactivate commands work. There is a large delay and so they don't work. The M11/M10 commands are processed quickly at the same speed the other gcode commands are processed.
I don't know why it wasn't working for you. Probably because you are using an Output other than number 1. After reviewing my reply, please let me know if you have any questions. I am positive it works, so it might be a setting that is not being made correctly, such as the PWM spindle output or something like that.
Thanks,
Greg
It might not light up there due to the path that the command is taking. The data is running through the buffer that holds the trajectory data and gets logically OR'd with the data from the standard Output commands. I will look to see if that is the case and if it would be possible to update the status data with that version of the data instead of what it has now.
You're right, I don't think the spindle output has anything to do with it unless you're gating the spindle output with Output #1.
Good luck. Let me know how it goes.
Thanks,
Greg
dirktheeng wrote:If the axes are not moving, the power is off.
Users browsing this forum: No registered users and 1 guest