MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.16k stars 19.21k forks source link

[Question] Manual probe #5356

Closed boelle closed 7 years ago

boelle commented 7 years ago

To get semi automatic bed level going, i wondered if i could make a clip-on-nozzle probe thing?

ie before bed level i clip on the endstop to the nozzle and after i remove it..

should i just configure it as a FIX_MOUNTED_PROBE ?

Nocturnal42 commented 7 years ago

I'm not an expert, but there seems to be no reason it shouldn't work. It's not that different to a sled mounted probe, or a servo mounted probe. You're just deploying it manually. The only issue I see, is that it really needs to clip onto the exact same spot every time, and it needs to be tightly fit so there is no wiggle. Otherwise your probe offset settings (and probe readings) will be off.

boelle commented 7 years ago

hehe

i will not use it that often. Since it will be saved to eeprom i dont see the logic in doing it at every print.

http://imgur.com/a/NK0rH

heater block goes in to the bigger part and a tact switch slides in the smaller part

still need to fiddle with it

epatel commented 7 years ago

This is what I have been using for a long time now. http://www.thingiverse.com/thing:1120142

boelle commented 7 years ago

same princple, will print 1st version now and see how it fits

Roxy-3D commented 7 years ago

Wookie brought up UBL without using a Z-Probe. He followed these steps: https://github.com/MarlinFirmware/Marlin/issues/4948#issuecomment-256203643

Rather than using the Z-Probe to initially populate the mesh with reasonable values, you assume 0.0000 is a reasonable value. And then you start the cycle of doing a Mesh Validation Pattern and edit the locations that are off. After 2 or 3 iterations... You will have an accurate mesh that is alive and functioning every time the printer powers up.

boelle commented 7 years ago

i'm initially more worried about the setup in configuration.h

first print of tact switch holder was almost spot on. doing the next one now and will start to make the wiring to ramps after dinner

boelle commented 7 years ago

@Roxy-3D read the comment and it seems like a lot of work. Can't it be automated?

boelle commented 7 years ago

my probe... http://imgur.com/a/UWrwy

Roxy-3D commented 7 years ago

Well... I guess it depends on what you call a lot of work. Given how much time it takes to put a servo controlled switch onto a print nozzle, it is less work than that. And the benefit is your machine knows all about the print surface for future use.

boelle commented 7 years ago

I guess i just have to configure mine as a fixed probe and run automatic correction like it was an inductive probe then? of course need to mount it on the nozzle first

with automatic mesh level on will it only execute on a G29? i still have my Z max endstop that i intend to use before each print

Roxy-3D commented 7 years ago

with automatic mesh level on will it only execute on a G29? i still have my Z max endstop that i intend to use before each print

Which branch are you thinking of using? G29 behaves differently in UBL. In fact... I don't even have it in my startup GCode produced by the Slicer because the printer powers up and knows the shape of the bed surface.

FHeilmann commented 7 years ago

You'd still need some means of homing Z right? (Just curious)

Roxy-3D commented 7 years ago

Yes. You need to be able to home the machine. But in the case I'm suggesting, the printer will know the bed is not perfectly flat and will be able to compensate for that. And the UBL branch has QUICK_ACCESS_TO_Z_BABYSTEPPING available several different ways. So lately, I've been setting my printer to home with the nozzle up a little bit higher than you would normally want it. Maybe .25mm too high.

Because what I do is I just press the Quick Access button (or you can double click the encoder wheel) and I just lower the nozzle to the point it needs to be while printing the skirt. But of course... You can have it just home to that location too.

boelle commented 7 years ago

"You'd still need some means of homing Z right? (Just curious)"

max endstop :-D

boelle commented 7 years ago

"Which branch are you thinking of using?"

RCBugfix

boelle commented 7 years ago

done probe minus wires: http://imgur.com/a/yT2mY

boelle commented 7 years ago

my config so far: http://pastebin.com/1YTfbxUq

still need to find the cords where it can go without hitting clips etc

boelle commented 7 years ago

http://pastebin.com/sE6uuZEv

that is my config as far i can get it. Any obvious errors?

NOTE: my probe offset is really 0.48. I figured it by homing and then lowered Z until i get a triggered state and then up again until it just changes state.

Did a M48:

SENDING:M48 P4 M48 Z-Probe Repeatability Test Finished! Mean: 0.481688 Min: 0.478 Max: 0.484 Range: 0.005 Standard Deviation: 0.002034

going crazy and doing 50 probes:

>>> M48 P50 SENDING:M48 P50 M48 Z-Probe Repeatability Test Finished! Mean: 0.482605 Min: 0.477 Max: 0.486 Range: 0.009 Standard Deviation: 0.001970

how good would this be considered?

setup looks like this: http://imgur.com/a/J5ikk

idea is that i disconnect the probe near the stepper and have it stored away most of the time. Only if i suspect that either the 2 Z lead screws are out of sync or the bed itself has changed will i bring it out.

also my idea was that during daily work a normal home to the max endstop would be plenty enough for me

boelle commented 7 years ago

@thinkyhead @Roxy-3D

http://pastebin.com/3yQDw6iK

my config above... G29 is almost "normal", i have a suspission that i have made a config error

and the reason is that the first probe is done 20mm from the endstop where i would like it to be done.

I have tried a few things but came up empty

a pic of how endstop etc are: http://imgur.com/a/EKU0G

switch is 20mm away from the nozzle and also away from the endstop

note that 0,0 is at the back/right corner

PS: could it be #define MIN_PROBE_EDGE 10 that plays me a trick here?

Roxy-3D commented 7 years ago

.002 mm standard deviation is good. But I'm not sure that number is really what you are going to see. Because you clip the probe on and off... You are going to get extra error from that operation that is not being measured by the M48. The M48 is only measuring the error once the probe is in place.

But... You will know soon enough if you are getting extra error. And in fact, any additional error will be because the Z-Offset is a little too high or low. That can be corrected with the Z-BabyStepping while the skirt is being printed.

boelle commented 7 years ago

And can you shine light on why it starts by moving 20mm away from the X endstop?

boelle commented 7 years ago

but yes... my plan is to use this only once in a while and the Z-offset will be adjusted to give a perfect first layer

thinkyhead commented 7 years ago

And can you shine light on why it starts by moving 20mm away from the X endstop?

If your 0,0 is in the back-right corner, then when looking at your nozzle from the front, this setting means your probe should be on the right side of the nozzle:

#define X_PROBE_OFFSET_FROM_EXTRUDER -20

Is that correct?

boelle commented 7 years ago

nope, its on the left

but when i change that to +20 i get:

"The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."

since the nozzle is at -2 when homed and the switch is at 18 its over the bed

somethings is escaping my mind here and i just dont see it

boelle commented 7 years ago

on ascii drawing it looks like this: http://imgur.com/a/EKU0G and on a picture: http://imgur.com/a/J5ikk

x endstop is in top right corner. Z max is at top of the Z spindle most far away.

probe switch is just to the left of the nozzle

thinkyhead commented 7 years ago

nope, its on the left

Therefore:

#define X_PROBE_OFFSET_FROM_EXTRUDER 20

The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe

So, the minimum position your probe can reach is X=18. Therefore:

#define LEFT_PROBE_BED_POSITION 18
boelle commented 7 years ago

ahh i just read this as regarding the nozzle

// Set the boundaries for probing (where the probe can reach).

ie numbers where the nozzle are that the probe can reach. Not sure if it can be rephrased so dummies get it :-D

boelle commented 7 years ago

Q: is M48 P4 a "reasonble" way to measure Z height on a single spot?

I want to use it as a tool to get my 2 Z spindles in sync and X axis parallel to the bed at the 2 fixed screws at the back of the bed

boelle commented 7 years ago

never mind... i ended up adjusting with feeler blade

and came up with this:

Bed Level Correction Matrix:
+1.000000 +0.000000 +0.000540
-0.000003 +0.999989 +0.004732
-0.000540 -0.004732 +0.999989

the first line with 3 numbers are that also the first spots on the plate ? or is it in reverse?

on the other hand i could view this as its almost same height at the 4 corners.. -0.000540 and +0.000540 is 0 half way between them. +1.000000 and +0.999989 is as close to the same number as a human can adjust.

but am i right or totally wrong?

also i noted that even if i save with M500 right after the G29 ends it will not move the Z motors like i would expect

Roxy-3D commented 7 years ago

Q: is M48 P4 a "reasonable" way to measure Z height on a single spot?

No. M48 doesn't care about where the Zero is. It pretty much is just looking to see if the same numbers are returned with each probe.

the first line with 3 numbers are that also the first spots on the plate ? or is it in reverse?

on the other hand i could view this as its almost same height at the 4 corners.. -0.000540 and +0.000540 is 0 half way between them. +1.000000 and +0.999989 is as close to the same number as a human can adjust.

but am i right or totally wrong?

No. That matrix has almost nothing to do with the height of individual points on the bed. It is a 'Translation Matrix' that gets multiplied by a 'Coordinate Matrix' to produce a rotation into a new coordinate system. That diagonal line of numbers that is almost equal to 1.000 is saying take mostly the original component (x, y or z) but add in a little bit of some of the other components to form the new coordinate.

thinkyhead commented 7 years ago

It is a 'Translation Matrix'

A 'Transformation Matrix' actually. In this case a 3-dimensional rotation matrix. See https://en.wikipedia.org/wiki/Transformation_matrix

boelle commented 7 years ago

and why is it that the Z spindles does not move after a G29 and M500 ?

thinkyhead commented 7 years ago

Due to spindle malfunction.

boelle commented 7 years ago

no they work fine... G0 Z10 does move it down if its above 10mm

what i mean is that if i move X or Y Z does not move

boelle commented 7 years ago

dooh

http://marlinfw.org/docs/features/auto_bed_leveling.html

last section gives the reason :-(

when will the save feature be thrown in to the mix?

Roxy-3D commented 7 years ago

I believe the mesh is now saved for Bi-Linear in RCBugFix. And UBL allows multiple Mesh to be saved because some people use several different pieces of glass to print on.

thinkyhead commented 7 years ago

I believe the mesh is now saved for Bi-Linear in RCBugFix.

No, it is not. I will have to implement that later.

boelle commented 7 years ago

any time frame for that?

thinkyhead commented 7 years ago

No there is not.

boelle commented 7 years ago

oki, closing this one as i got it as close to "fixed" as i could get.

github-actions[bot] commented 2 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.