One of the projects on my recent weekend of laser upgrades and modifications was to get my z axis automation fully functional. I did it, but discovered some interesting things along the way, like why you may prefer to NOT use the DSP's built in Z axis functionality.
I have been using the DSP Commercial Laser Controller for about 2 years. For the first 18 months I did not have an adjustable laser table so I did't pay much attention to the DSP's Z axis automation. When I build my BuildLog.net Laser 2x, I installed the motor and pulleys that would allow me to move the cutting table under power. But for the past 6 months, I have not bothered to buy and install a drive for the Z axis; there were other priorities.
Still, it was nagging at me that the mechanics were there but idle while I continued to adjust the table manually. A week ago, I decided I needed to replace my laser tube and while I had the box opened up, I might as well do a lot of other tasks from my to-do list. One of those high on the list was to complete the Z axis automation.
Why was this high on the list? I just wanted one function from it; the ability to automatically adjust the table height by a specified amount between the multiple passes it sometimes takes to cut thicker material.
I knew that when downloading a job to the laser, the DSP Controller allows you to specifiy how many times to repeat a job. It also has an extra dialog that allows you to set the distance your material moves after each repetition. Sounds like a perfect setup for what I wanted.
Rather than buy the drive I was missing for the Z drive, I ordered and installed the 4-axis drive from BuildLog.net. I'll be covering the conversion and installation in a separate post, but for now, trust me that after a few self-imposed problems, I got it installed and was working just fine.
I have been, for the past week, using the control pad to run the Z up and down as needed for different thickness materials. One issue that bothered me is the fact that the controller assumes you have the Z axis at the lowest point when you power on the laser. Therefore, you cannot lower the table without doing a Z axis reset. That lowers it to the bottom and you can raise it up from that point. Once raised up, you can again lower it. So the rule of operation quickly became to remember to do a Z axis reset, either before shutdown or immediately after start-up.
The other annoying part of the Z reset requirement is that you cannot control the speed at which the Z axis reset operates; and it operates slooooowly. But, since I was only doing it once per session, I could live with it.
Today, it was time to test out the auto Z movement between repetitions. Easy enough to test - just measure where your current Z height is, tell it to repeat a few times, tell it how may millimeters to move each time, download the project, and hit run. I assumed it would be just like the other axis and need calibration for the amount of movement (pulse width), but that is easy to do as well. One problem though; the table didn't move between repetitions.
Maybe my pulse width was so far off that the 1 mm I was telling it to move was not enough to actually move the table a perceptible distance; I'll try something bigger, say 10 mm. Still no movement. How about 100? Nope - nothing. 1000? That didn't work either. Must be something else going on.
I started to do a screen shot of my download repetitions and movement setup to post at BuildLog.net and ask if anyone else had gotten it to work when I noticed something about the dialog. The dialog window's title was Document advancement options. Huh? Then I remembered something that BuildLog's creater Bart Dring told me once - (paraphrased) The U axis of the DSP controller does not have a function in the laser world the way we use the controller. It may be there to feed material for cutting cloth or other continuous materials.
So, maybe the Z axis will not move between repetitions of a job. Bummer! The feature I wanted isn't there! Or is it?
Maybe I can hook up the Z axis of the laser to the U axis of the controller and get it to work that way.
Making the connections was pretty easy - just move the Z motor connection to the U (labeled A on the drive board) drive on the 4 axis drive board and rerun the test. Ta-Da!!! The table moves!
After that, it was just a matter of setting the pulse width to a value that gives me fast movement and an easily calculable value to move the table a predictable amount between job repetitions.
I wanted really nice, rapid, smooth movement, but not so fast that manually pressing the U control pad buttons would be too fast to control, causing me to overshoot my desired focus level.
My pulse unit was already set to 1.24, which worked great, but meant that in the Document movement options dialog, I had to enter a value of 120 to get a 1 mm table movement. OK, but not very easy if I wanted, say .7 mm movement. I settled on a pulse width of 1.72. which gives me a 10:1 ratio. So that a .7 mm required movement only needs to see a value of 7. Easy, fast, and works great.
[2011-10-13 EDIT: The original post said I was using a 100:1 ratio. That was incorrect. At one point that is what I was doing, but found the travel speed was too slow. I changed it to 10:1, so an entry of 10 gives me 1 mm of travel. That is still a very manageable setup. It gives me a minimum adjustment of 1/10 mm. Anything finer than that would not be useful anyway. The 1.72 pulse width reported is correct for the 10:1 ratio.- tw]
Here is a short video of the U-controlled table in action.
I tried a lot of other combinations, as well. And discovered some things that may be of interest to anyone else using the DSP's U channel to control their Z axis. There are some unwritten rules you need to be aware of.
When entering the distance in the Document movement options dialog:
- You canNOT enter a negative number. It will revert to zero. If your table is moving the wrong way, you will have to change the wiring of the motor.
- Distances MUST be in whole millimeters. You can enter decimal values (as the display would imply), but it gets rounded off to a whole mm. That's part of why you want to have a fairly large ratio (created by having a small pulse width).
Keep in mind that the version of the controller I have is not the current version, so it does not have the auto-focus functionality. So switching to the use of the U axis to control my Z motor does not rob me of anything. Now, maybe I just don't know what I am missing because I have never had it, but since I automated the Z axis (regardless of the controller axis I use) focusing is a trivial matter. I have long used the focus gauge and now I just have to press a button to move the table up or down. I am not sure I would consistantly use auto-focus if I had it. I may design a new focus template that has a micro-switch (or a proximity switch) attached that lights an LED. That would simulate an auto-focus indicator.
There is an additional advantage of using the U channel of the controller - I never have to do the mandatory and slooow Z reset. To me, that is a big win.
Unless you think you MUST have the auto-focus functionality of the DSP controller, I strongly recommend you look at using the U output to control your laser's Z movement.