Focus Probe Issues

As you may be aware, we’re still having some problems with the lasers getting damaged by running the head into the bed or the material. Based on reports from users it usually goes something like this:

  1. User accidentally moves the bed up when they mean to move it down, or they just go too far upwards using the manual keys on the controller or the software.
  2. The probe hits the material, but the controller only registers probe hits during the auto-focus routine, so the bed keeps going up.
  3. Horrible grinding noises ensue.
  4. Emergency stop is pressed.
  5. User takes a few deep breaths, then restarts the machine to try fix the issue.
  6. Machine commences automatic X/Y homing, dragging the head across the bed or the material and causing further damage.
  7. Emergency stop gets smashed again.
  8. User admits defeat and asks for help.

So it largely boils down to user error, but the machine could do a lot more to help prevent damage. Since we can’t make changes to the firmware on the controller we’ll have to look at making mechanical or electrical changes to make up for its shortcomings. Here’s what I think we could do to prevent most of our current issues:

  • Stop the X and Y axes from moving while the probe is triggered. This would:
    • Prevent the head from being dragged along the bed and torn apart.
  • Stop the bed from raising further when the probe is triggered. This would:
    • Prevent the head from getting smashed into the bed or material.
    • Prevent the bed from getting out of level as it smashes into the head.

The first should be pretty simple. The motor drivers have an enable input that is currently not in use, and could be wired up to the focus switch to disable the X and Y axes when the probe is tripped. This would not prevent the head from smashing into things, but would prevent it from getting dragged when the machine is restarted. All that would be required is running an extra wire to probe switches and adding a couple of connections to the motor drivers.

The second will be a little trickier, but still not too hard. If we completely disable the Z axis when the probe is tripped it would always get stuck during the auto-focus routine. We would need to add an additional logic circuit that would disable the stepper driver only if the probe is tripped and the direction input is upwards. This would stop the bed from raising further when the probe is tripped, but still allow it to lower.

Anyone have any thoughts on this? See any potential issues? Want to help implement the changes?


This could be something that could easily be done with discrete logic

Okay, so we take the spinning mirror module we got out of the old laser printer.


Mount it at the edge of the bed so that the laser beam sweeps the entire area just above the bed. Add a sensor to the head that triggers when the beam sweeps past it and disables any upward z-axis movement.


That trigger also activates an ESP32, which logs into the network, finds the info for the current user, then deactivates their laser access authorization as well as their building key, then posts their information and photo on the website with a large “LASER ABUSER” caption.

It will also send an email to Security to have the offender escorted from the building, and notify our attorneys that we’ll be commencing collection action for the cost of a new laser head and bed. The ESP32 can then contact the color laser in the Print Shop to print a “Wanted” poster with the offender’s information on it.

I hope everyone realizes that this isn’t realistic. An ESP8266 could do the job, and would cost less.


Who cares about realistic … I wanna see all of this happen!! except maybe not printing the poster out … save trees and all of that.


Your still doing great work Christian but no wanted poster for ok.

Don’t worry, I have no plans to print posters or implement laser defense systems. David can handle that portion of the project. I’ll stick to the practical stuff :stuck_out_tongue:

Here’s what the “Probe Safety System” circuit will probably look like. The only downside that I can think of is that if this gets triggered and prevents a head drag the software will not have an accurate x/y position anymore. This could cause a crash on the left or bottom of the machine, but this is better than smashing the head. Implementing minimum limit switches should fix this issue.

1 Like


My entire post was tongue-in-cheek. Christian is far more qualified to come up with a solution than I am, and more likely to get it completed. There are no plans on “outing”, sanctioning, or suspending anyone who accidentally crashes the laser head.



wouldnt it be better to have the S1 and S2 in a OR configuration instead of AND? I could see a situation where one gets triggered but the other doesnt for some reason and causes a head crash

They are wired in series using the normally closed (N.C.) terminal, so that is an OR configuration. If either switch is hit (or a wire breaks) the ground connection will be lost and the limit input will be pulled to +5V.

1 Like

I see that now. Just looked like it was setup where both had to be pushed

Okay, after a bit of testing I’ve tweaked the circuit layout a bit. I also enabled the firmware setting so that it will actually stop the head when it hits the X or Y limit switches (I thought that was already enabled). Unfortunately we can’t set this for the Z axis because it breaks the autofocus routine. I also added a switch to the layout for changing between cartesian and rotary mode.

I’m going to solder up a circuit to test on Mario. I would also like to replace the Y- limit switch that broke a while back. @ssaner did you say you ordered extra limit switches when you replaced the Y+ switch? We should also looking at adding minimum limit switches for Luigi. It uses inductive switches; we have one extra from the original autofocus, so we’ll either have to order another one or use mechanical switches.


Yes, I have 5 new switches. I plan to head over there between 5-5:30 and I will leave them in the parts box.

1 Like

Me: uhhhhh it’s broke.

Christian: hold my beer.


Your the best Christian!!