Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  
jonnybischof

Limit switch repeatability

Recommended Posts

Hi community

I'm evaluating limit switches at the moment (trying to figure out whether to use switches, hall effect sensors, optical endstops...), and I'm confused about the usual mechanical limit switches.

People here in the forums claim the repeatability of a mechanical limit switch to be only a few microns. I suppose, UM measured this in an experiment and found it suitable.

Now, the thing is, if I search for these switches, I don't find any kind of confirmation for this super-high repeatability.

Instead, everything points to that this statement is just wrong:

1. Microswitches (for example the Honeywell V7 product range) are not described to be usable as end-stops or limit switches, instead they are described as detect switches.

The huge difference is that a detect switch does not require high repeatability at all. Instead it is nothing more than a simple switch which opens and closes when you actuate it.

2. The chinese switches (such as the one provided in the UM1 kits) do not provide any kind of datasheet with statements about repeatability. Not even actuator travel or anything like that.

However, the industrial grade parts (such as the Honeywell V7) do. BUT their numbers are VERY different from "a few microns":

Example: Honeywell V7-1S10D8

This is the premium-line of microswitches from Honeywell, a well acclaimed industrial grade manufacturer for different kinds of sensors.

pre-travel: 1.19 mm max

post-travel: 1.27 mm max

differential travel: 0.05 - 0.25 mm

operating position: 14.7 mm +- 0.38 mm

It is difficult to understand these values (nothing's ever easy...), but my interpretation of these values is:

Pre-travel is how far the actuator can be pushed down without actuating the switch.

Then, there's the operating position which designates the area where the actuation point will be. It's +-0.38mm which is ok, because that only designates differencies between multiple parts, and not repeatability.

Post-travel is how much further the actuator can be pushed down after the switch has actuated.

Differential travel is interesting. I have no clue what they mean by that. If it's repeatability, it would be BAD. But these are some of the best parts there are - I doubt it gets much better than the v7 models.

Fact: There is no statement that says "repeatability: +-0.001mm" here.

Please correct me if I'm wrong!!

Does anyone know any literature about this repeatability?

/edit:

I can not confirm repeatability when I take multiple measurements with a digital precision caliper (Sylvac, not some cheap stuff):

12.56

12.48

12.36

12.51

12.39

12.27

...

 

Share this post


Link to post
Share on other sites

Interesting topic... I made what I call a mag mount for the auto bed level function. It's a switch mounted to an arm that positions the switch arm just below the nozzle and there is a cradle to which the arm is "clicked" onto using magnets.

The switch I used was some piece of junk I pulled out of a grab bag of switches.

If I had to guess, the repeatability is in the +- .07mm range but it's hard to tell since the UM1 bed is not very stable.

However, it is repeatable enough that I get awesome first layers and brims.

Sadly, it was printed in PLA and deformed from the hotend heat. I have a new version in XT I'll try with repeated probes to see the repeatability when I get home.

 

Share this post


Link to post
Share on other sites

@Jonny: Absolut repeatability is only necessary for the Z-Axis. For X and Y it does not matter if my object is being printed one mm to the left or right, so switches are fine for these. But for Z they seem to work better than we would expect... It would be interesting to know how exact microswitces really are, but I don´t know if there is that much to win. What about "real" endstops, like they are being used for CNC machines etc. I think the housing will be bigger, but they should be precise, or not?

@anon: You´ve got a working auto level system for the UM? Wow... Any other thread or pictures where you describe this build more in detail?

 

Share this post


Link to post
Share on other sites

Re auto level, it's not that hard. The FW supports it, you just need some kind of probe. I didn't want to add too much weight to the hotend so I came up with the mag mount. It has a small saddle on the hotend that has 5 neo magnets for extremely strong attachment and positioning. The magnets are arranged so they locate the arm in all three dimensions.

The probe needs to be clipped on, home needs to be set and then the four point probe for the level function is done.

While the removable probe seems like a good idea, it is very inconvenient because any resetting causes the home position to be lost as well as the leveling info. Also, either disabling the steppers manually or having them disable due to timeout will also clear the height and leveling data. Furthermore, homing requires the probe to be clipped so all gcode needs to NOT home the printer.

And it case it isn't obvious, every time a USB connection is made, the arduino is reset. So using a host like Cura the sequence always needs to be:

Load model, make sure to dial in settings

Open print dialog, wait for connection

Clip probe on

Home printer

In Cura print window (in Pronterface mode) issue G29 to get the level probing

Remove probe

Now NEVER move the hotend manually AND never let the steppers idle long enough to be disabled as this clears the height and leveling data too.

Click print and enjoy beautiful skirts and brims.

You can move the hotend via gcode or the ulticontroller and set retain the parameters. However, if you hit an endstop, I believe things go wonky.

Oh, sorry, no pics because I think the solution isn't optimal. I'll try to take some and possibly a video to show it. If it is something someone else wants to try, I'll happily make the models available.

 

Share this post


Link to post
Share on other sites

You're right about the x and y endstops not needing to be accurate. But it's easier to have only one type of endstop (and the larger production volume makes the parts cheaper). But that also mean I don't want to use some 30 Euro part for the endstop...

The actual "limit switches" are indeed much bigger and more expensive, and they usually have a "roller actuator" which is not really convenient inside a tight-spaced Ultimaker frame...

I'm also not fond of the metal "blade" actuators. If they bend over time (for example when they're forced to over-bend because of a firmware error, or manual operation), they lose their operating point (important for the Z axis).

The beauty of optical endstops is that you can move right through them, they don't touch the moving part and don't need any actuation force (not that it would be a problem, but it's more elegant...)

So, I'm going to experiment with an optical solution. I found a photosensor which has a detection range of about 0.1mm over the full current range. Using a comparator will make it switch always at the same current, which should result in better than 0.01mm positioning accuracy.

PCBs will cost around 0.6 Euros per piece, and the photosensor costs 4.5 Euros. so the final price should only be around 15 Euros. That's not too expensive, and after all you only need 3 pieces per printer.

@Auto-levelling:

It's an interesting feature, and there are already several possible implementations. But imho it takes too much effort to put it into an Ultimaker style printer. When I'm finished with the UM black edition, I'll put a Delta-Bot together which can have an auto-levelling feature almost for free. If that printer performs well enough even against the Ultimaker, I'll just recommend the Delta-Bot for people who really want auto-levelling.

 

Share this post


Link to post
Share on other sites

I think we have a disconnect between what we mean when we say auto level.

The Marlin firmware has the ability to perform a matrix translation on coordinates. The matrix comes from the leveling data. Using that AND the Z axis in BOTH directions (so backlash can be a problem), Marlin can mathematically cope with an unlevel bed.

Believe me, it is very simple and effective. Just distance probing gets you a good first layer. The mathematical leveling gets you a near perfect level. Using inexpensive calibers, I've measured the brim on parts and it was within +-.03mm which is very difficult to get with mechanically leveling via the screws.

The other benefit is you get consistent initial layer thickness AND you can change the initial layer thickness for more/less squish via the ulticontroller. When the firmware is compiled for the auto leveling feature, there is a "probe to nozzle" distance setting which if you decrease, the first layer has less squish, increase it for more squish.

Below is an extreme example. Marlin outputs the distances when probing the level. I dial them in as much as possible so very little Z axis movement is required. Notice that at the end, the part is actually leaning to stay square to the bed.

 

 

Share this post


Link to post
Share on other sites

That is one possibility to do it. But this means a lot of stress on the Z-axis. The leadscrew (or mostly the leadscrew nut) will see a lot more wear & tear with this feature, especially when you have a heavy z-stage (My z-stage and build platform weigh about 5kg...).

So, the day is over (in central europe) and I've thrown together my own optical endstop :)

Will publish it and order everything tomorrow. Then it's going to take about 2 weeks until I can test it.

 

Share this post


Link to post
Share on other sites

People here in the forums claim the repeatability of a mechanical limit switch to be only a few microns. I suppose, UM measured this in an experiment and found it suitable.

 

I did those tests, with Siert.

We mounted a precision dial on the bed to test this. So that was very stable. And we repeatedly homed, as, after all, that's where we want the repeatability. I think these measurements where in the 5-10micron range. UNTIL! We pushed hard on the wooden bed of the UM Original. Then it gets skewed and your homing position can be off by as much as 500 micron. This, indirectly lead to the UM2 bed design.

Note that this was a one-time test, and thus does not account for bending of the switch lever or temperature fluctuations.

 

Share this post


Link to post
Share on other sites

That is one possibility to do it. But this means a lot of stress on the Z-axis. The leadscrew (or mostly the leadscrew nut) will see a lot more wear & tear with this feature, especially when you have a heavy z-stage (My z-stage and build platform weigh about 5kg...).

So, the day is over (in central europe) and I've thrown together my own optical endstop :)

Will publish it and order everything tomorrow. Then it's going to take about 2 weeks until I can test it.

 

You can limit the wear on the Z screw by dialing in the bed so it is as level as possible.

 

Share this post


Link to post
Share on other sites

Jonny,

I ran this sequence five times. Home the hotend which sets the initial Z value then issued a G29 which does a four point probe and then moved the hotend up 20mm through the Cura Pronterface UI (so the probe doesn't drag when homing at the start of the next set).

The raw output is below but I'll summarize in a table (see note that follows) ---

edit: The forum didn't like a table copied from excel even though it pasted OK.... here is a pic:

endstop test

NOTE: I wanted to see how repeatable my mag-mount was. As you can tell by the numbers above, I spend some time leveling the bed first. Then I ran the sequence to get the numbers above. This took much longer than I have ever left the probe in the cradle next to the hotend at temperature. When I went to unclip the probe, it was soft enough to deform.

So I couldn't test the repeatability of the the probe/ cradle mount and it's possible that his slightly affected the numbers above.

However, all things considered, the most variance was 0.06mm which is better than I think I can do with a feeler gauge so in my opinion it works (for me).

Off to reprint the arm in XT since the fixed part on the hotend did weill under the heat.

Then for Duesentrieb, I'll take some pics and upload the models to youmagine. However, it's nothing more then a way to manually magnetically clip a endstop to the hotend.

< echo:Unknown command: ""

> G29

< Bed x: 15.00 y: 20.00 z: 7.02

< Bed x: 170.00 y: 20.00 z: 7.05

< Bed x: 170.00 y: 180.00 z: 7.07

< Bed x: 15.00 y: 180.00 z: 7.00

< Eqn coefficients: a: 0.00 b: 0.00 d: 7.00

< planeNormal x: -0.00 y: -0.00 z: 1.00

< echo:endstops hit: Z PROBE:7.00

> G28

> G29

< Bed x: 15.00 y: 20.00 z: 7.04

< Bed x: 170.00 y: 20.00 z: 7.07

< Bed x: 170.00 y: 180.00 z: 7.07

< Bed x: 15.00 y: 180.00 z: 6.98

< Eqn coefficients: a: 0.00 b: -0.00 d: 7.02

< planeNormal x: -0.00 y: 0.00 z: 1.00

< echo:endstops hit: Z PROBE:6.99

> G28

> G29

< Bed x: 15.00 y: 20.00 z: 7.04

< Bed x: 170.00 y: 20.00 z: 7.03

< Bed x: 170.00 y: 180.00 z: 7.08

< Bed x: 15.00 y: 180.00 z: 7.00

< Eqn coefficients: a: 0.00 b: 0.00 d: 7.02

< planeNormal x: -0.00 y: -0.00 z: 1.00

< echo:endstops hit: Z PROBE:7.01

> G28

> G29

< Bed x: 15.00 y: 20.00 z: 7.04

< Bed x: 170.00 y: 20.00 z: 7.01

< Bed x: 170.00 y: 180.00 z: 7.07

< Bed x: 15.00 y: 180.00 z: 7.03

< Eqn coefficients: a: 0.00 b: 0.00 d: 7.02

< planeNormal x: -0.00 y: -0.00 z: 1.00

< echo:endstops hit: Z PROBE:7.03

> G28

> G29

< Bed x: 15.00 y: 20.00 z: 7.04

< Bed x: 170.00 y: 20.00 z: 7.02

< Bed x: 170.00 y: 180.00 z: 7.05

< Bed x: 15.00 y: 180.00 z: 7.01

< Eqn coefficients: a: 0.00 b: -0.00 d: 7.02

< planeNormal x: -0.00 y: 0.00 z: 1.00

< echo:endstops hit: Z PROBE:7.01

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!