Welcome! Log In Create A New Profile

Advanced

Setup and bed levelling

Posted by G 
G
Setup and bed levelling
June 20, 2017 05:59PM
TL;DR I want to know how to tell Marlin the thickness of the feeler gauge I used for manual bilinear bed levelling.

It looks like I've stumbled into a minefield of half documentation, rapid development and personal ineptitude.

I'm a bit of a geek, so I've been following Marlin on github for a while. I have a second hand folgertech 2020. But I don't think that matters. I have a bugfix-1.1.x pull from a day or two ago. That's probably more interesting. I also have a display with a rotary encoder. That might be interesting too.

I'm over here because, unlike the lead developers, I think github issues are for bugs, not support, and I can't find an official Marlin forum/mailing list.

I'm having a nightmare setting my bed height. I think there are a number of factors confusing me:

The Z end stop is not really an end stop. I think it is actually a known position very close to the minimum Z travel.
It is not considered cool to have too many words in the source. Therefore the documentation in configuration.h is slim.
Some of the relevant defines are not available to query or set at runtime.
I suspect software end stops prevents me from positioning below where the Z end stop triggers

I think the trick I'm missing is the z-probe trigger height. But I've been at this for so long, I have brain-fry.

Any tips greatly appreciated.
Re: Setup and bed levelling
June 21, 2017 11:09PM
Quote

I have a second hand folgertech 2020. But I don't think that matters. .

That is a great machine. That is what I used to develop the UBL Bed Leveling system. If you turn that on, I can answer any question you have.

And if you insist on doing a Manual Bed Leveling within the UBL system... The first probe sets the shim thickness. and the subsequent probes measure the points you are probing. But there are better paths for you to follow.

I'm kind of down on manual probing. It is too slow. You are better off just doing a few points that way in different areas of the bed so you know how badly warped your bed is. And then manually fill in the near by points.

And then jump to the G26 Mesh Validation tool to see what needs to be corrected and by how much.

If you switch systems... I'll help you get your system configured so it has 100% adhesion across the entire bed every time you print. That FT-i3-2020 will be a pleasure to use! (And I also have a bunch of add on parts designed that make it even a better printer if you want them. Z-Probe (and servo holder), Ball Bearing rollers for the filament spool, Better end stops... Etc. Etc.

Quote

I'm over here because, unlike the lead developers, I think github issues are for bugs, not support, and I can't find an official Marlin forum/mailing list.

Yes, GitHub issues are for bugs. But they are also for people having a hard time using the software hosted on GitHub. As a 'Lead Developer' I don't want stupid questions being asked because a person is too lazy to spend 30 seconds looking for an answer. But the firmware needs to be easy to use. So, answering questions is part of the development process. It forms a Checks & Balance. If a new feature generates too many questions... It needs to be made more intuitive. Or more automatic... Or something else that makes the questions go away. If you decide to take me up on my offer to help you bring up the UBL system on the FT-i3-2020, we will walk through the various Phase commands to generate the mesh. You will see there was an attempt to simplify things as much as possible.

Quote

I suspect software end stops prevents me from positioning below where the Z end stop triggers

Probably you want these values configured this way. If you have any dips (or warps) to your bed, you need to be able to position the nozzle below 0.000 mm

// If enabled, axes won't move below MIN_POS in response to movement commands.
//#define MIN_SOFTWARE_ENDSTOPS
// If enabled, axes won't move above MAX_POS in response to movement commands.
#define MAX_SOFTWARE_ENDSTOPS

Edited 5 time(s). Last edit at 06/21/2017 11:31PM by Roxy.
G
Re: Setup and bed levelling
June 22, 2017 05:16AM
Quote
Roxy
Quote

I have a second hand folgertech 2020. But I don't think that matters.
That is a great machine. That is what I used to develop the UBL Bed Leveling system.
I have read that. I blew away the version of Marlin it was running as soon as I got it home, and started setting it up using the default config from the Marlin repo. I think that was your own config.

Quote
Roxy
If you turn that on, I can answer any question you have.
That would be awesome!

Quote
Roxy
And if you insist on doing a Manual Bed Leveling within the UBL system... The first probe sets the shim thickness. and the subsequent probes measure the points you are probing. But there are better paths for you to follow.
I don't have options other than manual probing at this stage. When I can print something, I will address that as a matter of urgency. More on this later in the post.

Quote
Roxy
I'm kind of down on manual probing. It is too slow. You are better off just doing a few points that way in different areas of the bed so you know how badly warped your bed is. And then manually fill in the near by points.
That was sort of my plan. Bear with me. I'll try to express my thoughts coherently at the end.

Quote
Roxy
(And I also have a bunch of add on parts designed that make it even a better printer if you want them. Z-Probe (and servo holder), Ball Bearing rollers for the filament spool, Better end stops... Etc. Etc.
It would be most excellent of you to share your mods! I would VERY much like to save some time designing enhancements. I've had this printer for some months already, but between work and other time consuming things it hasn't had the attention it deserves. Not to mention the many, many hours reading about slic3r, marlin, pronterface, and re-learning FreeCAD. I haven't looked at scad for ages, but that has its place in the big picture too. Sadly, my life will be too short to ever become proficient with Blender, even though it is fun to play with. smiling smiley

Something I've been keeping half an eye out for is source for the printer's printed components. I have the .stl files, but it'd be great to have the source too. I need to print a couple of replacement bits, but some of the standard parts could really do with some mods and enhancement.

Quote
Roxy
If you decide to take me up on my offer to help you bring up the UBL system on the FT-i3-2020, we will walk through the various Phase commands to generate the mesh.
This is me. Taking you up smiling smiley

Quote
Roxy
You will see there was an attempt to simplify things as much as possible.
Yes. I have been following your progress.
The docco over at marlinfw.org - ubl and marlinfw.org - G29-UBL looks nearly complete.

Quote
Roxy
Quote

I suspect software end stops prevents me from positioning below where the Z end stop triggers

Probably you want these values configured this way. If you have any dips (or warps) to your bed, you need to be able to position the nozzle below 0.000 mm

// If enabled, axes won't move below MIN_POS in response to movement commands.
//#define MIN_SOFTWARE_ENDSTOPS
// If enabled, axes won't move above MAX_POS in response to movement commands.
#define MAX_SOFTWARE_ENDSTOPS
I've had a bit of time between originally starting this thread and you replying. I just discovered this:
M211 S0
Which should make it quicker to experiment with at least.

OK. Here's some more info about where I am, and how I got here:
  • I bought this printer second hand.
  • It did not come with an LCD.
  • I googled a boat load.
  • I thought a bit.
  • I settled on Marlin, Slic3r & Printrun
  • I also fiddled with Octoprint & Octopi, but quickly decided, though kind of neat, that was something to setup much later.
  • I cloned Marlin from github.
  • I read a bunch about Marlin.
  • Browsed the source a bit and found your config for my printer, compiled, flashed and had a whole swag of crashy oddness and excitement smiling smiley
  • Your printer is setup somewhat differently than mine.
  • I read some more. Including following the progress with UBL. It became apparent that by the time I wanted to use UBL an lcd/encoder would still be a requirement.
  • Ordered something that looked plausible from our friends in the Orient.
  • I set things up to find an endstop on each axis and home nicely near the bed on the front left of the printer.
  • LCD arrived, it turned out to be a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
  • Check things seem to be calibrated. Needed to adjust the extrusion steps quite a bit. Everything else looks sane.
  • Compile in support for the controller and start to experiment with bed levelling.
Now that I got this far I turned on UBL and had a crack at it. Nope. Can not compile in UBL without a Z probe.
#error "Unified Bed Leveling requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
(aside: I just noticed the typo in the word levelling in the error above)
That sounded pedantic to me, so I had a browse through the source, expecting to see a swag of probing code with a common interface and therefore just comment out the sanity check. Ha! How quaint of me. I didn't see anything obvious, and I really would like to print something. I thought about setting up an end-stop probe by wiring the nozzle and a feeler gauge to some spare end-stop pins, but it was getting late by then, and I was taking 1 step back for each 2 forward.

This is when I thought I'd try bilinear levelling using the rotary encoder and a feeler gauge. It seemed likely to get me going with the least resistance.

And so I ended up here.

If you're happy to spare me the time, I'm plenty happy to work through UBL with you. I know you're very busy, and I don't need my hand held. A couple of prods in the right direction would be nice though.
Re: Setup and bed levelling
June 22, 2017 06:54PM
Quote
G
Your printer is setup somewhat differently than mine.

You might have your X-Axis endstop on the MAX side... But that is easy to change in the Configuration.h file But really... you are better off moving the endstop to the MIN side (left).
I have a 20x4 LCD display. But UBL and the FT-i3-2020 will work just fine with a graphics display. Just change the Configuration.h file so the display lights up and works... And don't worry about that.


Quote
G
I read some more. Including following the progress with UBL. It became apparent that by the time I wanted to use UBL an lcd/encoder would still be a requirement.

Some people are using UBL without a Z-Probe. But that is not officially supported. It will be soon enough. But if you don't have a Z-Probe, just say you do... And we can avoid the UBL commands that use the Z-Probe. If that is what you decide to to, just enable the BL-Touch in Configuration.h and the rest will take care of itself.

Quote
G
Ordered something that looked plausible from our friends in the Orient.
I set things up to find an endstop on each axis and home nicely near the bed on the front left of the printer.
LCD arrived, it turned out to be a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

That will work fine. And in fact, the Graphical LCD stuff is ahead of 20x4 LCD code.

Quote
G
Check things seem to be calibrated. Needed to adjust the extrusion steps quite a bit. Everything else looks sane.

I think you would be better off adjusting your Configuration.h E-Steps instead of trying to use M211. But unless something has changed... The E-Steps should be correct for the FT-i3-2020 in the Examples folder.

Quote
G
Compile in support for the controller and start to experiment with bed levelling.
Now that I got this far I turned on UBL and had a crack at it. Nope. Can not compile in UBL without a Z probe.
#error "Unified Bed Leveling requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
(aside: I just noticed the typo in the word levelling in the error above)

Yeah... I'm a bad speller. Just turn on the BLTOUCH option in Configuration.h and we can set things up without a Z-Probe. It will take an extra iteration of G26 and G29 P4's but that won't be a big deal.

Quote
G
That sounded pedantic to me, so I had a browse through the source,

The reason for that is UBL was developed on a machine with a Z-Probe. And while people have been using it without a Z-Probe, it hasn't had the work done to make that an official option yet. But if you just lie to the firmware and say you have a BLTOUCH probe AND a Z-MIN Endstop... We can avoid the UBL commands that use the Z-Probe.

Quote
G
I'm plenty happy to work through UBL with you. I know you're very busy, and I don't need my hand held. A couple of prods in the right direction would be nice though.

Not a problem... Work on getting your machine to use the Z-Min endstop to home even though you have the BLTOUCH defined. And make sure you can print some small item at the center of the bed with no Auto Bed Leveling active. At that point, we will be ready to bring up UBL.


Attached are some .STL files for you to print. If you go on eBay and get a MAX_ES08A servo (for $5 including shipping) and some 608-ZZ bearings (http://www.ebay.com/itm/2Pcs-608ZZ-Deep-Groove-Ball-Bearing-For-3D-Printer-Prusa-Mendel-RepRap-S4-/182272490722?epid=0&hash=item2a70497ce2:g:dMwAAOSwFdtX0OnR) and a these micro-switches (http://www.ebay.com/itm/5Pcs-Micro-Roller-Lever-Arm-Open-Close-Limit-Switch-KW12-3-PCB-Microswitch-WF-/122497042115?hash=item1c856486c3:g:1hAAAOSwfpVZGQsi) everything should just assemble correctly. You probably need to order 4x M3 45mm long bolts too. That is because the plate to hold the servo and Z-Probe is 5 mm thick and the current screws are M3 40mm long. You can get those on eBay too.
Attachments:
open | download - MAX_ES08A_Servo_Cage_and_Probe.stl (496.7 KB)
open | download - Roxy's_FT-i3-2020_Servo_Cage_and_Probe.scad (13.1 KB)
open | download - Roxy's_FT-i3-2020_Filament_Rollers.stl (201.6 KB)
G
Re: Setup and bed levelling
June 23, 2017 02:28AM
Quote
Roxy
But really... you are better off moving the endstop to the MIN side (left).
Why do you say that?

I could move it, obviously, and I'm happy to if you recommend it, but everything is configured now. I do plan on making a bunch of mods to the printer as soon as it's printing. One of those mods is sticking optical endstops in locations that are hard to accidentally bump/change.

Quote
Roxy
Some people are using UBL without a Z-Probe. But that is not officially supported. It will be soon enough. But if you don't have a Z-Probe, just say you do... And we can avoid the UBL commands that use the Z-Probe. If that is what you decide to to, just enable the BL-Touch in Configuration.h and the rest will take care of itself.
That was pretty much what I'd expected. I'm sure I've read some notes about it in a github issue, but can't remember anything specific now.

Quote
Roxy
Quote
G
Check things seem to be calibrated. Needed to adjust the extrusion steps quite a bit. Everything else looks sane.

I think you would be better off adjusting your Configuration.h E-Steps instead of trying to use M211. But unless something has changed... The E-Steps should be correct for the FT-i3-2020 in the Examples folder.
I measured 95.825. But I haven't managed to print anything yet. My Configuration.h contains
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 95.825 }
The Folger beta firmware on google drive contains
#define E_STEPS 93
While the Marlin example says
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 52.2 }

I expect my measurement is wrong, to be honest, I only looked at the Folger provided configs the other day, and it can't be a coincidence that I got so close to their number. I just wanted something in the ballpark to get me going.

( Just quickly... There were some end stop inversion things i changed too, I've run out of time today, but I'll give you my whole config another time.)
Quote
Roxy
Just turn on the BLTOUCH option in Configuration.h and we can set things up without a Z-Probe. It will take an extra iteration of G26 and G29 P4's but that won't be a big deal.
Done. But wow! Took all day! (I'm working through your message as I go) I have raised an issue on github.

Quote
Roxy
Work on getting your machine to use the Z-Min endstop to home even though you have the BLTOUCH defined. And make sure you can print some small item at the center of the bed with no Auto Bed Leveling active. At that point, we will be ready to bring up UBL.
I'll do this next, but I'm not sure I have time left today.

(Yes. Out of time. But I'll have a crack at printing in the morning.)

Quote
Roxy
Attached are some .STL files for you to print. If you go on eBay and get a MAX_ES08A servo (for $5 including shipping) and some 608-ZZ bearings (http://www.ebay.com/itm/2Pcs-608ZZ-Deep-Groove-Ball-Bearing-For-3D-Printer-Prusa-Mendel-RepRap-S4-/182272490722?epid=0&hash=item2a70497ce2:g:dMwAAOSwFdtX0OnR) and a these micro-switches (http://www.ebay.com/itm/5Pcs-Micro-Roller-Lever-Arm-Open-Close-Limit-Switch-KW12-3-PCB-Microswitch-WF-/122497042115?hash=item1c856486c3:g:1hAAAOSwfpVZGQsi) everything should just assemble correctly. You probably need to order 4x M3 45mm long bolts too. That is because the plate to hold the servo and Z-Probe is 5 mm thick and the current screws are M3 40mm long. You can get those on eBay too.
Those are awesome! Thank you very much. And I appreciate you taking the time to add links too smiling smiley
Re: Setup and bed levelling
June 23, 2017 12:16PM
If you have your X-Axis homing correctly... There is no reason to change it. But the FolgerTech instructions had people putting the X-Endstop on the X-Min and putting it on the right side. That was causing a lot of confusion.

On the E-Steps... Go with what you have. Yours very possibly is 'correct'.

On the non-existent Z-Probe... It is a little bit tricky but it is possible to have a Z-Probe and still use the Z-Min endstop for homing. That is what you need to get to work. Later when you get your servo and micro switch and get that bracket printed up, you can install a real Z-Probe. (Oh! You also need the longer M3 screws --- It might be good to take one screw out just so you can measure it. You need 5mm more than what is in there now.)

Edited 1 time(s). Last edit at 06/23/2017 12:17PM by Roxy.
G
Re: Setup and bed levelling
June 23, 2017 06:54PM
For the benefit of anyone else setting up with a pretend bl-touch who might be reading this thread at any stage:

Configuration.h
#define USE_ZMAX_PLUG
#define Z_MIN_PROBE_ENDSTOP
#define Z_MIN_PROBE_PIN Z_MAX_PIN
#define BLTOUCH
//#define MIN_SOFTWARE_ENDSTOPS

Now, Conditionals_LCD.h forces
// Always disable probe pin inverting for BLTouch
#undef Z_MIN_PROBE_ENDSTOP_INVERTING
#define Z_MIN_PROBE_ENDSTOP_INVERTING false

And without anything connected to the z-max endstop TEST_BLTOUCH() fails and the printer halts.

I worked around this by temporarily attaching an optical endstop to that spot.

Edited 1 time(s). Last edit at 06/23/2017 07:15PM by G.
Re: Setup and bed levelling
June 23, 2017 08:28PM
Oh! Good catch! I thought turning on the BLTOUCH option was going to be easy and it would just work.

When you can print some small objects at the center of the bed, we will do these commands to setup the mesh:
- G29 I 999
- G29 P2 with the nozzle positioned at each corner and at the middle of the bed
- G29 T so we can see what type of numbers we are dealing with
- G29 P3 C ?.?? with the nozzle positioned in different areas of the bed to fill in the unpopulated mesh values
- G29 A
- G29 F 10.0
- G29 S 1
- G26 (with appropriate parameters to get a Mesh Validation Pattern)
- G29 P4 R with the nozzle positioned over less than perfect areas of the Validation Pattern
- G29 S 1
- repeat last three commands until you have 100% adheasion over 100% of the bed.

Edited 1 time(s). Last edit at 06/23/2017 08:31PM by Roxy.
G
Re: Setup and bed levelling
June 23, 2017 09:16PM
Sort of making notes for myself here as I go so I can do this again later if I need to...

G28 uses the z-min endstop, and not the z-probe, which I don't have, but I'm pretending to.

So, I home the printer with G28, nudge z down to just touch the bed, use G92 Z0 to set the actual bed height, slice a small thing, edit the g-code to take the G28 out of the beginning, print it using Printrun.

First print done.
Attachments:
open | download - 50%_60_print.jpg (93.4 KB)
G
Re: Setup and bed levelling
June 23, 2017 10:11PM
Quote
Roxy
Oh! Good catch! I thought turning on the BLTOUCH option was going to be easy and it would just work.
Meh. Open source. I have the code; I can see what's happening. Keeps me on my toes smiling smiley

I haven't got time to play with this any more today, but I read through your plan and added some notes from the marlinfw website. I'm sure I see what you're doing here, but I have a couple of questions.

Notes added from G29 for UBL and G26

- G29 I 999
I Invalidate this number of mesh points. (No value = 1)

- G29 P2 with the nozzle positioned at each corner and at the middle of the bed
P2: Probe Areas of the Mesh that can’t be automatically handled.

Will this move to the nearest grid point and probe?

- G29 T so we can see what type of numbers we are dealing with
Topology: Include a Topology Map in the output. Can be used alone or with several other commands. A map type can also be specified:
T0: Human-readable


The docco for T does not indicate a default value, or boolean.

- G29 P3 C ?.?? with the nozzle positioned in different areas of the bed to fill in the unpopulated mesh values
P3: Fill Unpopulated regions of the Mesh with a fixed value (C or ).

I guess we're taking a guess based on the output of G29 T0. Seems reasonable.
I just re-read this. This populates a single grid point based on the location of the nozzle?
Could I enhance the output of G29 S-1, say M421 I 0 J 0 Z 0.000000 ; X 1.00, Y 1.00 to populate a mesh point?

- G29 A
Activate Unified Bed Leveling

- G29 F 10.0
Fade height.

- G29 S 1
Store mesh to EEPROM in the given slot. If no slot given, use last-activated. Use S-1 for GCode output.

- G26 (with appropriate parameters to get a Mesh Validation Pattern)
G26 B60 D0 F1.75 H185 K0 L0.2 O0.5 P1 S0.4

I'm not actually sure how this works. What are the functions of R and U? And what do I expect to see?

- G29 P4 R with the nozzle positioned over less than perfect areas of the Validation Pattern
P4: Fine Tune the Mesh. Generally used in the form G29 P4 Rnn Xxxx Yyyy.

Again, will this move to the nearest grid point and probe?

- G29 S 1

- repeat last three commands until you have 100% adheasion over 100% of the bed.

G29 S-1 outputs the g-code to set the mesh. Very nice!

Thanks very much for your help so far. I'll let you know how I get on when I get back to this tomorrow.
Re: Setup and bed levelling
June 24, 2017 12:56AM
Quote
G
- G29 I 999
I Invalidate this number of mesh points. (No value = 1)

Yes... We want to start with a totally invalidated mesh so we can fill in locations with 'appropriate' values.

Quote
G
- G29 P2 with the nozzle positioned at each corner and at the middle of the bed
P2: Probe Areas of the Mesh that can’t be automatically handled.

No... Not in this case. We want to see how high up or down each corner (and the middle) is. If it is too dramatic, we can still continue and UBL will work. But it is best to physically level the bed as well as possible.

But independent of all that... We need those values so we know what to fill the rest of the mesh points with. It is too painful to manually probe a 10 x 10 mesh. (What size are you going with? 10 x 10 works very well on the FT-i3-2020)

So we need those values to to guide us when we start populating values for the first iteration.

Quote
G
The docco for T does not indicate a default value, or boolean.

T defaults to a human readable format. We just want to know how badly tilted your bed is so we can see if we should physically level it first... or if we proceed, how we tilt the numbers we fill the mesh with.
We just need numbers good enough you don't damage your printer trying to do the G26 Mesh Validation Print. Once we get the pattern to print... It will be obvious (and quick and easy) to edit any mesh point that is not correct.

Quote
G
- G29 P3 C ?.?? with the nozzle positioned in different areas of the bed to fill in the unpopulated mesh values
P3: Fill Unpopulated regions of the Mesh with a fixed value (C or ).

I guess we're taking a guess based on the output of G29 T0. Seems reasonable.
I just re-read this. This populates a single grid point based on the location of the nozzle?
Could I enhance the output of G29 S-1, say M421 I 0 J 0 Z 0.000000 ; X 1.00, Y 1.00 to populate a mesh point?

Yes... It doesn't really matter what you start with for values so long as you don't damage your printer trying to do the G26 Mesh Validation Print. If you had a Z Probe, the numbers would be very close to correct. But we are going to fill the mesh with best guesses and that is why we want the corners and center of the bed measured. We want to make sure the bed is somewhat level and that the values we put in for the mesh are 'reasonable'.

Quote
G
- G26 (with appropriate parameters to get a Mesh Validation Pattern)
G26 B60 D0 F1.75 H185 K0 L0.2 O0.5 P1 S0.4

Yes... and if you want, you can edit the defaults in the G26.cpp file so you don't have to specify them each and every time. But your values are pretty close to the defaults.

#define EXTRUSION_MULTIPLIER 1.0
#define RETRACTION_MULTIPLIER 1.0
#define NOZZLE 0.4
#define FILAMENT 1.75
#define LAYER_HEIGHT 0.2
#define PRIME_LENGTH 10.0
#define BED_TEMP 60.0
#define HOTEND_TEMP 205.0
#define OOZE_AMOUNT 0.3

BUT... You don't want the 'D' parameter. The whole purpose of the G26 Mesh Validation Pattern is to see how well the bed leveling is working to correct the nozzle height. Typically... I just have the defaults compile the way the machine needs them and I use a G26 P C O2 if I need to generate a pattern.

Quote
G
I'm not actually sure how this works. What are the functions of R and U? And what do I expect to see?
- G29 P4 R with the nozzle positioned over less than perfect areas of the Validation Pattern
P4: Fine Tune the Mesh. Generally used in the form G29 P4 Rnn Xxxx Yyyy.
Again, will this move to the nearest grid point and probe?

The R with no parameter says to "Repeat until either done or told to stop". U is only valid on a G29 P1 and you can not do that because you don't have a Z-Probe. U tells the G29 P1 to probe as far away from any other point that has been probed as possible. It is a way to quickly get an assortment of points spread out across the bed to help you physically level the bed. We are trying to brute force something similar by manually probing the corners and the center of the bed.

Quote
G
Thanks very much for your help so far. I'll let you know how I get on when I get back to this tomorrow.

Post a few G29 T's so we can see your progress. And a few pictures of the G26 Test Pattern will be interesting too.
Between those two things... We will get you get you perfectly tuned quickly.

Edited 2 time(s). Last edit at 06/24/2017 01:01AM by Roxy.
G
Re: Setup and bed levelling
June 25, 2017 10:16PM
Finally back to this after a couple of days.

Quote
Roxy
you can edit the defaults in the G26.cpp
This was a good tip! The docco in the comments is much more complete than on marlinfw.org
G
Re: Setup and bed levelling
June 26, 2017 03:04AM
There is good information about G29 in ubl_G29.cpp

M502; load defaults/reset
M500; write eeprom
M501; read eeprom
G28; home

heat nozzle & bed

G29 I 999; invalidate existing mesh
G0 X10 Y10
G29 P2 C B0.04 H1; manually probe, starting with the point nearest the nozzle, using a business card (feeler gauge) .04mm thick, but do not raise the nozzle above 1mm from the z-end stop

Use the encoder to lower the nozzle to the feeler gauge
Click the encoder to enter the data point
Press and hold encoder to stop current command

Repeat for
  • g0 x10 y180
  • g0 x160 y180
    I note here that G29 T shows the state of the mesh and highlights the current nearest point. Nice.
  • g0 x160 y0
  • g0 x90 y90
G29 T
Bed Topography Report:
(0,4)                           (4,4)
(1,187)                        (179,187)
 -0.320       .          .          .      -1.020

     .          .          .          .          .

     .          .      -0.190       .          .

     .          .     [    .   ]      .          .

 -0.290       .          .          .      -1.020
(1,1)                            (179,1)
(0,0)                             (4,0)

G29 S1; save in slot 1
Experiment with
G29 P3
Fail smiling smiley
G29 L1; load from slot 1
Probe a few more points
SENDING:G29 T
Bed Topography Report:
(0,4)                           (4,4)
(1,187)                        (179,187)
 -0.320  [    .   ]  -0.490       .      -1.020

     .          .          .          .          .

 -0.210       .      -0.190       .      -0.730

     .          .          .          .          .

 -0.290       .      -0.490       .      -1.020
(1,1)                            (179,1)
(0,0)                             (4,0)

G0 X45 Y45
G29 P3
(0,4)                           (4,4)
(1,187)                        (179,187)
 -0.320   -0.320   -0.490       .      -1.020

     .          .          .          .          .

 -0.210   -0.210   -0.190       .      -0.730

 -0.290  [-0.290]      .          .          .

 -0.290   -0.290   -0.490       .      -1.020
(1,1)                            (179,1)
(0,0)                             (4,0)
g0 x130 y45
G29 P3
SENDING:G29 P3
SENDING:G29 T
Bed Topography Report:
(0,4)                           (4,4)
(1,187)                        (179,187)
 -0.320   -0.320   -0.490   -0.490   -1.020

 -0.130   -0.130   -0.130       .          .

 -0.210   -0.210   -0.190   -0.170   -0.730

 -0.290   -0.290   -0.490  [-0.490]      .

 -0.290   -0.290   -0.490   -0.490   -1.020
(1,1)                            (179,1)
(0,0)                             (4,0)
At this stage it looks to me like G29 P3 with no options is behaving differently to the comment in the code. I haven't actually read the code, but it seems unlikely it intended to populate the points around 45,180 and 130,180

No matter.

g0 x180 y130
SENDING:G29 P3
SENDING:G29 T
Bed Topography Report:
(0,4)                           (4,4)
(1,187)                        (179,187)
 -0.320   -0.320   -0.490   -0.490   -1.020

 -0.130   -0.130   -0.130    0.150  [ 0.430]

 -0.210   -0.210   -0.190   -0.170   -0.730

 -0.290   -0.290   -0.490   -0.490   -1.020

 -0.290   -0.290   -0.490   -0.490   -1.020
(1,1)                            (179,1)
(0,0)                             (4,0)


G29 A; activate ubl
G29 F10; fade height

G29 S2
G26 B60 F1.75 H185 K1 L0.2 O1 P3 S0.3 Q1.2; i think i actually have a .3mm nozzle

Birds nest! smiling smiley Total failure!

I have to leave this for an hour or two now, but I'm wondering if I need to set M851 even though I specified B0.04 during G29 P2.

Edited 1 time(s). Last edit at 06/26/2017 03:06AM by G.
G
Re: Setup and bed levelling
June 26, 2017 05:19AM

G
Re: Setup and bed levelling
June 26, 2017 09:03AM
Starting to look a bit better. It's cold at the moment, so i increased the bed temp. That seems to help. Also bumped the retract factor by a load.

G26 B80 F1.75 H185 K1 L0.2 P6 S0.3 Q6


G
Re: Setup and bed levelling
June 26, 2017 11:41AM
Well, it's been another few hours, but things are looking sane. The validation mesh adheres to the bed all over... more or less. I'm going to call it a day at this stage.

SENDING:G29 S3
Mesh saved in slot 3
Done.
SENDING:G29 T
Bed Topography Report:
(0,4)                           (4,4)
(1,187)                        (179,187)
 -0.350   -0.385   -0.460   -0.670   -0.940

 -0.300   -0.245   -0.225   -0.455   -0.715

[-0.421]  -0.300   -0.260   -0.400   -0.630

 -0.480   -0.465   -0.485   -0.610   -0.890

 -1.000   -0.850   -0.855   -1.095   -1.180
(1,1)                            (179,1)
(0,0)                             (4,0)

Tomorrow I'll try and print something.

A couple of notes though:
Marlinfw.org says that G26 K takes a boolean operator. The comments in G26_Mesh_Validation_Tool.cpp do not
O and P read differently, but sound like they try to achieve the same thing.

I tried to use G29 B but it didn't appear to offset my measurements by the feeler gauge thickness. But that was hours ago, and I might have just missed it.
The P3 smart fill option did not behave quite as expected. See notes in a previous post.
P4 has the following comment:
Quote

* You are editing the Mesh Points.
* If you have too little clearance and not much plastic was extruded in an area, you want to
* LOWER the Mesh Point at the location. If you did not get good adheasion, you want to
* RAISE the Mesh Point at that location.
This is obtuse. As I understand it, the mesh describes the offset of a point on the bed from the z-stop. (At least in my case, with no probe)
My z-stop is just above the bed, therefore all of my mesh points are negative. More negative = larger downward offset = lower bed. Therefore, to RAISE the mesh point, you must DECREASE it's value.
Re: Setup and bed levelling
June 26, 2017 12:25PM
G29 P3 isn't intended to populate an empty, unprobed mesh.

The reason for manually probing the corners of the bed were to see how it is tilted. I think you should try to physically level it a little bit better. You have .75 mm of difference across the bed. Which is 3 layers.

But when you do try to fill the mesh... You can use G29 P3 C #.### R # to populate values where the nozzle is.

And YES... That comment is backwards... That need to be fixed....

Edited 1 time(s). Last edit at 06/26/2017 12:27PM by Roxy.
G
Re: Setup and bed levelling
June 26, 2017 05:18PM
Quote
Roxy
G29 P3 isn't intended to populate an empty, unprobed mesh.

The reason for manually probing the corners of the bed were to see how it is tilted. ... You have .75 mm of difference across the bed. Which is 3 layers.

But when you do try to fill the mesh... You can use G29 P3 C #.### R # to populate values where the nozzle is.
Fair enough. I mentioned it for completeness. I haven't found a clear walk-through of how UBL is done. Especially without a probe. I am a total n00b so you can expect me to do unexpected things. And it may have been an actual issue that slipped past your notice.

Quote
Roxy
I think you should try to physically level it a little bit better.
I will. But I will try to print a probe first. Doing this manually took many hours. Being fair, a lot of that time was spent learning to recognise what .3mm looks like. I should have thought more and played less in the beginning.

Edited 1 time(s). Last edit at 06/26/2017 05:20PM by G.
Re: Setup and bed levelling
June 26, 2017 11:13PM
Quote
Q
I will. But I will try to print a probe first. Doing this manually took many hours. Being fair, a lot of that time was spent learning to recognise what .3mm looks like. I should have thought more and played less in the beginning.

You'll like having a Z-Probe. And bringing up UBL with a Z-Probe will be easy...

- G28
- G29 P1
- G29 P3
- G29 P3
- G29 A
- G29 F10.0
- G29 S1

Done....

Edited 2 time(s). Last edit at 06/27/2017 10:48AM by Roxy.
G
Re: Setup and bed levelling
June 27, 2017 10:59AM
I wish I could change the topic to "The helpful UBL community - one dude without a probe"

Roxy, you have been very kind, patient, and helpful, while I (metaphorically) stumble around in an embarrassing, satin, uncle-dressing-gown.

I do not want to derail this thread with print issues. But...

Would you please take a moment to describe post/link a pic of a perfect mesh point?

It's very late for me, again, but I printed earlier today, and it was fine. But I see many ways to make it lovelier. But not via this thread... smiling smiley
Re: Setup and bed levelling
June 28, 2017 10:45AM
G: I tried to print a Mesh Validation Pattern for you yesterday, but I stumbled onto a couple of bugs that have crept into the code base. I'm wondering if they were causing you problems too.

[github.com] [github.com]

But if you search the Marlin issues... There are a lot of pictures of different people's Mesh Validation Patterns. And the corresponding advice given based on what the pattern looks like. It probably is worth while to hunt down a couple of those threads.

Edited 1 time(s). Last edit at 06/28/2017 10:45AM by Roxy.
G
Re: Setup and bed levelling
July 02, 2017 06:41PM
I haven't forgotten about this thread. I've been caught up with other stuff for a while.

Quote
Roxy
G: I tried to print a Mesh Validation Pattern for you yesterday, but I stumbled onto a couple of bugs that have crept into the code base. I'm wondering if they were causing you problems too.
I don't think they have. But logic for boolean options seems wrong to me. I think Idid bump into that somewhere, but I can't remember exactly where now. There are many places where the docco on marlinfw.org is no longer accurate though.

Quote
Roxy
But if you search the Marlin issues... [on github]
There's a good issue here
Re: Setup and bed levelling
July 02, 2017 11:11PM
Yeah... That thread has some... not many G26 print pictures... There are better threads...

The boolean options have been corrected. Other developers were messing with the parsing and goofed some stuff up. That is fixed now.
Sorry, only registered users may post in this forum.

Click here to login