You say Z but I say U

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:
  1. 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.
  2. 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).
Additionally, you need to know that the U limit switch does not stop the U (our Z) movement. That means you have to manually stop your downward table movement before you get to the bottom. My plan is to wire up an LED to the limit switch and use that as a visual indicator to alert me to stop movement. Not really any different that I am doing to set my focus - watching the position of the table in relationship to the focus gauge I made.

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.


  1. Thanks for the heads up on this one Tim. The Z axis implementation has always been a real PITA for me having to change the homing to positive or negative then do a reset to adjust the table height.

    If the U axis doesn't do this then this will be a godsend for me. I have asked Marco to have this feature user disabled but I think my series of board doesn't do this. I have the blue board with the extra chips missing.... which makes me think I might not even have the extra axis chips for the U axis.

    I will check it out on Wed when I have some time.
    thanks again.

  2. You will likely need to upgrade your board for the missing parts. Get your hands on the chips and the instructions that I wrote. If you can't find my instructions, let me know. I'll try to locate them for you.

  3. I have ordered a new 2012 board from Marco which should turn up in a week or 2. My old board just won't do vectors along the proper path any more. I played with all the settings I could think of to no avail. It's become useless. Funny thing is I can still engrave with it though but the DSP might use a different engine for that.
    I will send it back for the guys in China to test. I have never had the air assist working any way so that is one problem I hope they have fixed in the new version.

  4. I am still a version or two back, but ahead of where you are. I m thinking about the 2012, but honestly, I have most everything working well now, and I am really liking my alternate method of z control. I'll probably stay with what I have for a while.

  5. Thanx for the info Tim. I recently received a machine and contacted the supplier about the problem with not being able to lower the table. It would go up but not down. What you have explained makes perfect sense. I do have the autofocus on my machine which is nice, but I think I would prefer to have control over my Z axis. I will have to check and make sure the U channel is on my DSP board and then maybe I will give it a try. Thanx again.

  6. Hi Tim,

    Great blog! Thanks for sharing.

    Could you talk a bit about what the focus gauge is and what is does? I just got my laser and the cuts aren't particularly "straight down" the material. I understand that, to some extent, this is inherent in lasers, but I'm hoping to reduce it as much as possible. I'd also love to hear any other suggestions you have on combatting this problem.

  7. My focus gauge is nothing more than a simple piece of 3mm plywood with a slot cut in it at a specific distance from the bottom edge. It slips over the laser head carriage. I then raise the work table until the material to be lazed just touches the bottom of the gauge.

    If you are having issues regarding a perpendicular cut, there are two main factors.
    1. Lasers always cut a cone-shaped kerf. The longer the focus length of the lens, the narrower the cone-shape.
    2. The angle of the final mirror to the preceding mirror. If the final mirror housing is rotated slightly (not perpendicular to the incoming beam), then the beam coming out of the lens will be angled (most likely forward or backward) and will significantly increase the angle of your cut.

    Maybe I'll do post on the topic. Thanks for the idea.

    Good luck!

    1. I think of combining the two outputs (Z and U)
      With a switch which is normaly set to Z-control but during a job (where Z has no functionality, other than stay at the same level) i can switch to U-control..
      I think of an automated electronic solution, for instance with the blow-output..
      So i can use the auto-focus or better level my table manual and heve the focussing don with z-reset, start the job and it automatically will follow the U-controll.. After the job it will return to Z-controll.
      For instance with a 74HCT257 quad 2 input tri-state multiplexer.like this schematic:
      An idea?
      I haven't tested it yet in the wild, but i think it will work like this.
      (btw i don't have a lightobject controller but the other similar one.. decided that because of the import from USA is a tragedy, where China import is fast and flawless. It saved me hundreds of euro's)


  8. I have no idea how any DSP other than Light Object works. Let us know if this circuit works for you.

  9. Tested it: It works fine! With this difference: the output "Blow" is set to zero during the job, so i didn't need to invert it. Just skipped the transistor and resistors. (or i could have switched the U and Z plug on the controller)
    I think it's called "air-assist" on the older Lightobject-controllers (just check your manual)
    So i think it will work for you too!
    I haven't found such air-asist-output on the new AWC608, but maybe one of the outputs is programmable to get that function.

  10. Great! I may give it a try.

  11. think of the checkmark om the manufacturer-settings-page (the one you open with PH123).
    IO - "If blowing" needs to be checked for this.