Marlin: From AUTO_BED_LEVELING_BILINEAR to AUTO_BED_LEVELING_UBL.

Created on 20 Mar 2017  路  106Comments  路  Source: MarlinFirmware/Marlin

So, I want to try AUTO_BED_LEVELING_UBL. I know it got merged in to RCBugFix just the other day. I understand that it is a work in progress.

Using BLTouch, G29 P1 probes several points on my bed but it always end up probing outside the glass bed area (to the left near X0, I don't know if it will try to do the same to the right because I kill the probing before that). What do I need to change to stop that behavior?

Attaching my latest config. Using the standard config for UBL.
Configuration.zip

U.B.L.

Most helpful comment

Yes... Let's be clean about it and do it epatel's way!!!

All 106 comments

During the merge into RC-8's RCBugFix, the G29 P1 logic got slightly confused. That could explain what you are seeing. But if you pull down the current version, that logic is now correct (again). Please give that a try.

If you still see the problem, I'll give you my full attention and we will get it resolved ASAP.

Thanks! Now it works a lot better. :)

I have moved my probe, updated my config and had biliniar abl working fine. Wanted to test UBL again and now its trying to probe outside of the glass again. It does not seem to matter what I do, it always tries to probe the same location. What's up?
Configuration.zip

img_20170329_215210
Using latest @Tannoo's ledstrip branch.

You didn't say if that was during homing or G29 P1. If it is homing, we need to change configuration.h settings. G29 P1 should be smart enough not to go off the bed if your X&Y PROBE_OFFSET_FROM_EXTRUDER are correct.

You have a fairly large X & Y probe offset from extruder:

#define X_PROBE_OFFSET_FROM_EXTRUDER -20     // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -44   // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -0.90 // Z offset: -below +above  [the nozzle]

If you set:

 #define UBL_MESH_INSET 45

That should keep you on the bed. I would suggest you bump these up. There is no penalty other than a few extra minutes of setup time to go to:

  #define UBL_MESH_NUM_X_POINTS 10 // Don't use more than 15 points per axis, implementation limited.
  #define UBL_MESH_NUM_Y_POINTS 10

Thanks. I'll try.
And yes, the cooling duct makes the offsets bigger. The original mount without cooling:

#define X_PROBE_OFFSET_FROM_EXTRUDER 6 <- this is wrong if I measure correctly, should be more like 4.
#define Y_PROBE_OFFSET_FROM_EXTRUDER -43
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.4

I just set the points to 5 while trying to solve the out of bed probing. It starts in the middle and 10 just made it take "ages" to reach the "trouble" point. ;)

Is your #define X_MIN_POS -13 really -13 ???? That kind of looks like where the probe is trying to touch. Maybe you should bump that up to +5 for now... Because if you use the UBL_MESH_INSET at 45 you will give up some of your print bed. And if +5 puts in on the bed... You can shrink it a little bit if you aren't nervous.

Well. I can't say I have full understanding of all the offset/max/min settings.
Without -13, X0 is off the glass.

Well. I can't say I have full understanding of all the offset settings. Without -13, Y0 is off the glass.

No... The X & Y should be independent of each other. Please do a G28, and then use PronterFace to move the nozzle a little at a time until you get it to within 3mm or 4mm of the edge of the glass. Use that number in the #define. And do this on both the min and max side for both X and Y. Those numbers will make things act sane within UBL. And... With good numbers, you can lower the UBL_MESH_INSET to 1 so you don't lose area on your print bed.

Before that I used X_MIN_POS -10 and LEFT_PROBE_BED_POSITION 10. That made G28 home in the middle of the bed (measured by "visual estimate") and big prints did not end up outside of the glass area (it did with the standard config).

Someone here told med that my LEFT_PROBE_BED_POSITION should be at 0.

I feel so confused now and I thought I hade some knowledge of what I was doing. Apparently not. ;-)
To find my offsets I used part 5 from guides like this one:
http://www.soliforum.com/topic/4714/automatic-bed-leveling-and-z-offset-howto-level-23/

I found my current min position by moving to X0 with G28 X0 and then moving manually (in Repetier-Host) to get the nozzle on top of the front left corner of the glass bed. Now, when running G28 X0 the lcd will show -13 for X. Moving to 0 moves the nozzle to the edge of the glass.

LEFT_PROBE_BED_POSITION is used by the Grid and 3-Point bed leveling code. UBL doesn't use that. UBL tries to cover the entire bed with its mesh. So, it is the X_MIN_POS, X_MAX_POS, Y_MIN_POS and Y_MAX_POS that are most important to UBL. Try to get those set accurately (with a few mm of margin just to be safe!!!) And I think UBL will behave predictably....

Moving to 0 moves the nozzle to the edge of the glass.

So... Even 0 is a little bit aggressive. You probably want the pin of the BL-Touch to have 2 or 3 mm of glass to hit. I would set X_MIN_POS at 3. Later, if you really need the full print envelope, you can get a little more aggressive on the numbers.

When you get a G29 P1 to complete the automatic mesh generation... Please do a G29 S1 and then post the output from a G29 O command. You will have some unprobed areas because the probe can't reach all bed locations that the nozzle can reach. Depending upon the numbers we see... I'll coach you on how to fill in the unprobed areas.

True. The biggest area not reach by the probe is in the back.

With the current config, this is what I get:
G28 Y0 X0
img_20170329_224046
Outside of bed. LCD at X-13 Y0.

If doing G1 X0 Y0 after that, I get this:
img_20170329_224123
On bed. LCD at X0 Y0.

Thanks for your help! Will try to the changes suggested and post my output.

Don't let this stuff over whelm you. It really isn't very hard if you have somebody to guide you. And I'm pretty sure you will really like the way you get good 1st layer adhesion across the entire print bed every time.

So, just to be clear..

First, change points to 10, 10.
X min to like 3
Also change inset to 45
And then try? Got a bit confused. ;)

I have safe homing enabled. When you say "Please do a G28, and then use PronterFace to move the nozzle a little at a time until you get it to within 3mm or 4mm of the edge of the glass.", should I use "G28 X0 Y0"? (I use Repetier-Host with Repetier-Server but I have the ability to move "manually" there too).

Edit: Reverted to standard config for the ubl-part in Configuration.h. The sanity check got angry with me about UBL_PROBE_PT_1_Y and UBL_PROBE_PT_3_X so I trimmed those numbers down a bit.

No... Change your X_MIN_POS to 5 and Y_MIN_POS to 5 also. And then change X_MAX_POS and Y_MAX_POS to about 180. Set UBL_MESH_INSET to 1

Compile and flash it. Then do a M502 and M500 to get the numbers into EEPROM.

Reboot the printer... And do a G28. See if it is reasonable. Hopefully it is... But your print envelope will probably be a little bit smaller than it needs to be.... Move the nozzle to (X,Y) = (5,5) and see how much further you dare reduce your X & Y Min position numbers. Then move the nozzle to (X,Y) = 180,180) and see how much you dare increase the X & Y Max position numbers.

Make the edits... And assuming things were done accurately... We probably will be ready to do a G29 P1.

The reason for saying use PronterFace is it has that target screen where you can click how much to move in a direction. You could also just type commands like G1 X20 And depending on where the nozzle is... Follow up with G1 X18 then G1 X15 until you get to the edge of where you are comfortable.

So.... yeah. ;)
All set to your suggestions but now SanityCheck.h:608: error: #error "The given UBL_PROBE_PT_3_X can't be reached by the Z probe.", same with UBL_PROBE_PT_1_Y. Guess I should lower them?

So... Move those probe points inside the X&Y MIN AND MAX box....

It does look about right with G28. The nozzle homes in the center, the probe a little bit to the left. Again, by eye.

Omg, I feel so stupid.
If doing G1 X5 Y5 after G28 it will move to the end stop switch and LCD show X and Y at 5 (nozzle and probe off bed). G1 X10 move 5 and the head still off bed, LCD show 10. G28 X Y also put the head off bed and LCD reports X and Y at 5. Is this the correct behavior or is it me not understanding the most fundamentally stuff about the coordinate system or what? ;-)

It might be good to bring up PronterFace.... That lets you move the nozzle around easily. But the bottom line is you want the numbers

// Travel limits after homing (units are in mm)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 203 
#define Y_MAX_POS 180
#define Z_MAX_POS 175

to reflect reality. With Pronterface... It is easy to click left and right or forward and back and figure out exactly what your machine's limits are.

But the good news is.... We are making progress!

Bringing up PronterFace...

Looks like it has about the same controls as the "Manual control" tab in Repetier-Host. Just a couple of years between releases. But, now, it's up.

With

define X_MIN_POS 5

define Y_MIN_POS 5

define Z_MIN_POS 0

define X_MAX_POS 180

define Y_MAX_POS 180

define Z_MAX_POS 150

G29 P1 O will try to probe off bed again. Also, since posting my config I have enabled MIN_SOFTWARE_ENDSTOPS. I should probably start with the min settings at 0?

Is the nozzle on the bed when you move to X=5 and Y=5 ?

No, it moves to the mechanical end stop. That's off bed.

OK... When you move the nozzle to the left edge of the glass... What is that value?

About X = 18 (Y still at 5)

OK... So let's set X_MIN_POS at 20. You still want a little bit of glass for the BL-Touch to press on.
Now when you move the nozzle's X to 100 or so... What is the minimum Y value before the nozzle goes off the glass? We probably want to set Y_MIN_POS to that number (but plus 2 or 3mm so the BL-Touch has a little bit of glass to press on).

G28 Y0 X0

/**
 * G28: Home all axes according to settings
 *
 * Parameters
 *
 *  None  Home to all axes with no parameters.
 *        With QUICK_HOME enabled XY will home together, then Z.
 *
 * Cartesian parameters
 *
 *  X   Home to the X endstop
 *  Y   Home to the Y endstop
 *  Z   Home to the Z endstop
 *
 */

G29 homes the axis - it is not a goto.
Numbers behind the axis-names are ignored.

Yes, thanks. My later answers here does not include the numbers (noticed that they where not needed while answering in this thread). I had them because Repetier-Host adds 0 when doing the manual controlling. ;)

Min Y will never go off bed. Hits end stop switch before that happens. The nozzle is very near the edge of glass, on bed.

Btw, with min x at 20, G28 does not look centered.

Edit: Nope, the missing numbers from the G28 commands was only in my head. Was reading the gcode description over at RepRapWiki and noticed that.

Still.... You want to know and set the max and min numbers for X and Y. You want to be really able to move the nozzle to those numbers. Any number within the Max and Min X & Y positions is suitable for positioning the nozzle. (And actually... The same applies to the Z numbers... ) The nozzle HAS TO BE ABLE to position any where within the MIN and MAX numbers.

Min Y will never go off bed. Hits end stop switch before that happens. It's near the edge of glass, on bed.

What minimum number can you move the nozzle to before it either goes off the glass... Or it presses the Y end stop? This will be the MIN_Y_POS number.

Please move your nozzle around on the bed and get those numbers set right. Then we will be ready to do a G29 P1 and continue on with getting your system set up....

Yes, I think I understand that much(?). I was under the impression that X0 Y0 should move the nozzle to the left edge of the glass. With min at about -13, G1 X0 Y0 would put the nozzle about there. Now with min x at 20 and y at 5, G1 X0 Y0 moves the nozzle to the end stops and that's not on the bed for X. LCD show X20 Y5. But that does not feel right?

LCD show X20 Y5. But that does not feel right?

If the LCD is showing X=20 and Y=5 as the nozzle being on the glass... Let's use those for MIN_X_POS and MIN_Y_POS. Lets do the same thing for MAX_X_POS and MAX_Y_POS. I think the G29 P1 will stay on the glass when we have those set right.

Why not use the inset instead?

No, X is not on glass if doing G1 X0 Y0. Not with min at 20. It's at the min mechanical end stop. About 13-15 mm off the glass. LCD say 20. G1 X30 would move the nozzle 10, still not on bed and LCD reports 30. G1 X10 would not move at all because the printer seem to think that it's already at 20.

OK... Well... Please move the nozzle to determine the minimum and maximum positions that the nozzle is still on the glass. That is what we want to set those #define's to.

Min X to be on glass is 30 to 35 now when 20 is set as min, it won't move to values below 20, it moves to what it considers as X20. G1 X10 will move to end stop and lcd will say 20. Min Y could be set to 0.

Edit:
Setting min x to positive values will never move the nozzle on glass when sending G1 X0. If that makes any sense?

OK... I think that means you need to set X_MIN_POS at 35 Home is the zero point. And you can't get there and still be on the glass. Can you easily move your X end stop so that it get pressed just as the nozzle leaves the glass? Then you could set X_MIN_POS at 0 which is easier to understand.

The glass is not as wide as the print bed ;)

If I set min at 35, i would have to move to at least 45 to get on glass.

Oh! Well... We can use the UBL_MESH_INSET also to keep the nozzle on the bed. It is your choice how we do it. But some how... By adjusting the numbers.... We need to limit where the nozzle is told to go.

With -13, I get X0 Y0 on glass, in the left corner. LCD will show 0,0. If G28 X, LCD will show X -13. To get on glass, I need to move +13.

UBL_MESH_INSET will affect Y too, right?

Yes... UBL_MESH_INSET affects both X & Y.

My brain hurts (if having one). Soon 2 am here in Sweden. Time to get some sleep. Thanks for all the help so far! I really appreciate it.

@NiklasOlofsson Same here :) about the INSET. You could look at manually set MIN and MAX here https://github.com/MarlinFirmware/Marlin/blob/RCBugFix/Marlin/Configuration_adv.h#L634-L639

Would it be feasable to split up the inset of x and y separately?
It could help in this situation.

Only if his x_max is also the same distance over the glass.

Wait鈥ait... Isn't there an x home offset somewhere?

With inset at 40 it probes on bed for all points.
But, when I try to print something, it prints like 30% of the skirt and then Z starts to move up. It moves like 5mm, small pause, 5mm, small pause and continues that way until Z max. Why?

With inset at 40 it probes on bed for all points.

Good...

But, when I try to print something, it prints like 30% of the skirt and then Z starts to move up.
It moves like 5mm, small pause, 5mm, small pause and continues that way until Z max. Why?

That kind of sounds like an endstop being errantly triggered. When a BL-Touch goes into the error state it returns triggered and the nozzle keeps rising. That might be what is happening. Let's get the whole mesh defined. Can you post your mesh topology so we can decide how to continue? (G29 O and G29 @W)

Probably the first thing we want to do is expand your bed coverage to address the whole bed. I think we can do that by modifying your Configuration_adv.h settings for these values. Instead of having them auto calculated... We should put in 'reasonable' numbers. One at a time and get it correct before moving to the next one.

#if ENABLED(AUTO_BED_LEVELING_UBL)
  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
#endif

With this config
Configuration.zip

17:40:55.030 : ubl_eeprom_start=544
17:40:55.030 : Bed Topography Report:
17:40:55.030 : (0, 9)                                                                                                                (9,9)
17:40:55.031 : (27,160)                                                                                                            (150,160)
17:40:56.053 : .            .            .            .            .            .            .            .            .            .
17:40:56.053 : 
17:40:56.054 : 0.298     0.270     0.283     0.275     0.230     0.202   [ 0.180]   0.168     0.140     0.140
17:40:56.054 : 
17:40:56.055 : 0.260     0.255     0.232     0.217     0.163     0.138     0.117     0.090     0.102     0.095
17:40:56.055 : 
17:40:56.055 : 0.215     0.182     0.163     0.165     0.098     0.048     0.053     0.053     0.067     0.040
17:40:56.055 : 
17:40:56.056 : 0.140     0.087     0.072     0.085     0.060     0.005    -0.017    -0.027    -0.010    -0.048
17:40:56.056 : 
17:40:56.057 : 0.033     0.043     0.015     0.005    -0.032    -0.035    -0.070    -0.077    -0.092    -0.103
17:40:56.057 : 
17:40:57.159 : -0.053    -0.040    -0.060    -0.075    -0.087    -0.103    -0.157    -0.145    -0.170    -0.170
17:40:57.159 : 
17:40:57.160 : -0.125    -0.123    -0.145    -0.140    -0.177    -0.195    -0.240    -0.212    -0.230    -0.220
17:40:57.160 : 
17:40:57.161 : -0.220    -0.235    -0.240    -0.243    -0.272    -0.287    -0.322    -0.325    -0.337    -0.332
17:40:57.161 : 
17:40:57.161 : -0.305    -0.317    -0.327    -0.342    -0.352    -0.387    -0.402echo:busy: processing
17:40:57.161 : -0.427    -0.425    -0.432
17:40:57.162 : (27,40)                                                                                                                (150,40)
17:40:57.163 : (0,0)                                                                                                                   (9,0)
17:41:02.689 : ubl_eeprom_start=544
17:41:02.689 : Unified Bed Leveling System Version 1.00 Inctive.
17:41:02.690 : No Mesh Loaded.
17:41:02.690 : g29_correction_fade_height : 10.00
17:41:02.690 : z_offset: 0.000000
17:41:02.691 : X-Axis Mesh Points at: 27.0  40.7  54.3  68.0  81.7  95.3  109.0  122.7  136.3  150.0
17:41:03.696 : Y-Axis Mesh Points at: 40.0  53.3  66.7  80.0  93.3  106.7  120.0  133.3  146.7  160.0
17:41:03.697 : ubl_state_at_invocation :0
17:41:03.697 : ubl_state_recursion_chk :0
17:41:03.697 : Free EEPROM space starts at: 0x0220
17:41:03.698 : end of EEPROM              : 0FFF
17:41:03.698 : sizeof(ubl) :  134
17:41:03.698 : z_value[][] size: 400
17:41:03.698 : EEPROM free for UBL: 0x0DDF
17:41:03.699 : EEPROM can hold 0x0008 meshes.
17:41:03.699 : sizeof(ubl.state) :0043
17:41:03.699 : UBL_MESH_NUM_X_POINTS  10
17:41:03.699 : UBL_MESH_NUM_Y_POINTS  10
17:41:03.700 : UBL_MESH_MIN_X         27
17:41:03.700 : UBL_MESH_MIN_Y         40
17:41:03.700 : UBL_MESH_MAX_X         150
17:41:03.700 : UBL_MESH_MAX_Y         160
17:41:03.700 : MESH_X_DIST        13.666667
17:41:03.701 : MESH_Y_DIST        13.333333
17:41:03.701 : Unified Bed Leveling sanity checks passed.
17:41:05.974 : echo:Steps per unit:
17:41:05.974 : echo:  M92 X80.00 Y80.00 Z400.00 E100.00
17:41:05.974 : echo:Maximum feedrates (mm/s):
17:41:05.974 : echo:  M203 X400.00 Y400.00 Z4.00 E50.00
17:41:05.974 : echo:Maximum Acceleration (mm/s2):
17:41:05.975 : echo:  M201 X4000 Y4000 Z40 E4000
17:41:05.975 : echo:Accelerations: P=printing, R=retract and T=travel
17:41:05.975 : echo:  M204 P1000.00 R2000.00 T2000.00
17:41:05.975 : echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
17:41:05.975 : echo:  M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.40 E5.00
17:41:05.975 : echo:Home offset (mm)
17:41:05.975 : echo:  M206 X0.00 Y0.00 Z0.00
17:41:05.975 : Unified Bed Leveling:
17:41:05.975 : echo:  M420 S0
17:41:05.976 : UBL is Inactive
17:41:05.976 : Active Mesh Slot: -1
17:41:05.976 : z_offset: 0.000000
17:41:05.976 : EEPROM can hold 8 meshes.
17:41:05.976 : UBL_MESH_NUM_X_POINTS  10
17:41:05.976 : UBL_MESH_NUM_Y_POINTS  10
17:41:05.976 : UBL_MESH_MIN_X         27
17:41:05.976 : UBL_MESH_MIN_Y         40
17:41:05.976 : UBL_MESH_MAX_X         150
17:41:05.976 : UBL_MESH_MAX_Y         160
17:41:05.976 : MESH_X_DIST        13.666667
17:41:05.976 : MESH_Y_DIST        13.333333
17:41:05.976 : echo:Material heatup parameters:
17:41:05.976 : echo:  M145 S0 H200 B60 F170
17:41:05.976 : M145 S1 H240 B110 F170
17:41:05.977 : echo:PID settings:
17:41:05.977 : echo:  M301 P12.33 I0.51 D74.50
17:41:05.977 : echo:  M304 P234.88 I42.79 D322.28
17:41:05.977 : echo:Filament settings: Disabled
17:41:05.977 : echo:  M200 D3.00
17:41:05.977 : echo:  M200 D0
17:41:05.977 : echo:Z-Probe Offset (mm):
17:41:05.977 : echo:  M851 Z-0.90

Is this stored in EEPROM now or do I need to do something?
In start gcode, do I need G29 A?

It is only saved in EEPROM if you do a G29 S1 (or some other number) You need to do a G29 A to activate the system.

We need to get 'valid' numbers into that top row. You can do that by G29 P3 R C.3 That will put .3 in all the unprobed locations.

Go ahead and try that and see. But I think we should concentrate on getting the mesh to cover the whole bed so your print area is full size. And then continue on with getting the mesh accurate.

It prints now without the Z lifting problem. I think it stopped when I disabled MIN_SOFTWARE_ENDSTOPS. Could that be true? ;) Is it trying to move Z to negative numbers or something?

Is it trying to move Z to negative numbers or something?

Yes... If there is a dip in the bed, the Z-Height correction will try to bring the nozzle below 0.000

Ah, yes. I see. It prints fine now I think. Just using a simple coin shape for now. Directly on glass, no glue or tape. Adjusting the Z offset is still done with M851 or does UBL use something else?

M851 will adjust... But be sure to save the number in EEPROM with M500. But I use Z-BabyStepping to fine tune things. If you look at the end of the Configuration_adv.h file, there will be a Double Click option to jump to Z-BabyStepping. You should consider turning on BabyStepping and the Double click option. That is very helpful when starting a print.

Ok, thanks. I have BabyStepping enabled.

I spoke too soon about the strange Z behavior. It still does that with higher models. hmm
SBD_GW_LID_PA.zip
The last busy messages is from me trying to stop the movement.

Is your BL-Touch blinking when that happens? If so... The BL-Touch is in an error state.

No, BLTouch is ok. Lower models prints fine. I think the coin is about 5mm thick.

That video was very helpful! That almost looks like a numeric over flow is happening.

Can we do a G26 C P O3.0 and leave the mesh validation pattern on the bed and then restart the print? With the extra information (knowing where the nozzle is positioned relative to mesh points) we might be able to figure out what is happening.

Also... Another valuable clue might be obtained by doing a G29 P0 prior to doing the print. That would set the mesh to all 0.000's If that makes the problem not happen, we probably are fighting a numerical over flow. Another question is this: Is the nozzle crossing over into a mesh cell that has a NAN number in one of its corners? That might help explain where the bad Z Height correction is coming from. But I guess we will know that from the G26 pattern.

So.. umm, this is not looking great, no? ;)
img_20170330_195620

I think it moved a bit too fast for my printer. Missing steps on E.

The printer might be trying to print outside the mesh?

That looks OK! Especially for the very first iteration! I have several comments... First... The mesh points in the lower right should be lowered (to bring the nozzle closer to the glass). The mesh points in the upper left need to be raised (so the nozzle does not press against the glass).

But the important question is... Where was the nozzle when it did that funny straight up movement? Can you restart the print and video it so I can watch the nozzle relative to the mesh validation pattern?

If you know the answer to that question... If the print was going off the mesh... Then we know why the funny movement was happening. If that is the case... Lets just work to expand your mesh to cover the whole bed.

I see. 馃

I have the skirt at 9 mm from object. I guess that if I lower it, it will work? (EDIT or extend the grid, that sounds like a better solution)
img_20170330_200807

Yes... How about we start over and get your mesh so it covers the whole bed... And then we go through the whole setup process to get everything perfect?

Sure! Let's do it. 馃憤

OK... We want to tweak

  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))

Right now UBL_MESH_INSET is at 45, right? So.... can we change

 #define UBL_MESH_MIN_X  20
 #define UBL_MESH_MAX_X 160

Lets just make those two changes and do another G26 to see where everything ended up. Hopefully the whole mesh validation pattern is still on the bed. But from what we see, we will know how much more to expand the numbers. Is the origin in the upper right or lower left in those pictures?

I have inset at 40.
Configuration.zip

I suspect

 #define UBL_MESH_MIN_X  20
 #define UBL_MESH_MAX_X 160

will be OK... But do what ever you feel makes sense! Let's start expanding the numbers and get the whole bed covered. Then we will reprobe....

You can manually set the inset for each axis like this

  #define UBL_MESH_MIN_X (X_MIN_POS + 40)
  #define UBL_MESH_MAX_X (X_MAX_POS - (10))
  #define UBL_MESH_MIN_Y (Y_MIN_POS + 10)
  #define UBL_MESH_MAX_Y (Y_MAX_POS - (10))

If you need 40 on only one side

Yes... Let's be clean about it and do it epatel's way!!!

Ok, copy paste on epatels suggestion.
I think I should re-probe soon. G26 C P O3.0:
img_20170330_204234

Did a bad job with the gluestick..

Did a bad job with the gluestick..

Maybe not. Remember... The mesh is corrupting things and not fixing things right now...

If the origin is the lower right... It looks like we can make UBL_MESH_MIN_X 5mm smaller and UBL_MESH_MAX_X 10 mm larger.

And I guess Y min can be 10 mm smaller also....

If you make those changes... Let's re-probe so the mesh pattern prints better.

What do you mean by origin? (the mesh started to print in the middle and the head stopped there too, I just moved the head out of the way to be able to take the pic, but I may confuse "origin" with something else).

You suggestions translated to code does feel better, so that we stay on the same page. ;-)

Origin is the (X,Y)=(0,0) location. I made those suggestions based on the belief (0,0) is in the lower left of the picture.

0.0 is front left (I moved the head out of the way by hand)

OK... Let's heat the bed and nozzle... Do a G28... And reprobe with a G29 P1

With epatel's changes.

21:11:15.296 : ubl_eeprom_start=544
21:11:15.296 : Bed Topography Report:
21:11:15.297 : (0, 9)                                                                                                                (9,9)
21:11:15.298 : (27,190)                                                                                                            (180,190)
21:11:15.299 : .            .            .            .            .            .            .            .            .            .
21:11:15.299 : 
21:11:15.300 : .            .            .            .            .            .            .            .            .            .
21:11:15.300 : 
21:11:16.314 : 0.465     0.390     0.317     0.248     0.180   [ 0.125]   0.070     0.015    -0.015        .
21:11:16.315 : 
21:11:16.315 : 0.400     0.322     0.248     0.187     0.113     0.062     0.012    -0.033    -0.090        .
21:11:16.315 : 
21:11:16.316 : 0.270     0.228     0.157     0.110     0.030    -0.020    -0.085    -0.123    -0.177        .
21:11:16.316 : 
21:11:16.317 : 0.187     0.130     0.067     0.017    -0.060    -0.130    -0.187    -0.240    -0.260        .
21:11:16.317 : 
21:11:16.317 : 0.065     0.022    -0.053    -0.088    -0.145    -0.228    -0.283    -0.305    -0.375        .
21:11:16.317 : 
21:11:16.393 : -0.048    -0.110    -0.142    -0.223    -0.275    -0.360    -0.408    -0.452    -0.485        .
21:11:16.393 : 
21:11:17.397 : -0.170    -0.233    -0.307    -0.348    -0.392    -0.482    -0.530    -0.575    -0.605        .
21:11:17.397 : 
21:11:17.398 : -0.310    -0.350    -0.410    -0.460    -0.540    -0.615    -0.675    -0.710    -0.745echo:busy: processing
21:11:17.398 : .
21:11:17.398 : (27,10)                                                                                                                (180,10)
21:11:17.399 : (0,0)                                                                                                                   (9,0)
21:11:33.890 : ubl_eeprom_start=544
21:11:33.890 : Unified Bed Leveling System Version 1.00 Inctive.
21:11:33.890 : Mesh: 0001 Loaded.
21:11:33.890 : g29_correction_fade_height : 10.00
21:11:33.891 : z_offset: 0.000000
21:11:34.930 : X-Axis Mesh Points at: 27.0  44.0  61.0  78.0  95.0  112.0  129.0  146.0  163.0  180.0
21:11:34.931 : Y-Axis Mesh Points at: 10.0  30.0  50.0  70.0  90.0  110.0  130.0  150.0  170.0  190.0
21:11:34.931 : ubl_state_at_invocation :0
21:11:34.932 : ubl_state_recursion_chk :0
21:11:34.932 : Free EEPROM space starts at: 0x0220
21:11:34.932 : end of EEPROM              : 0FFF
21:11:34.932 : sizeof(ubl) :  134
21:11:34.933 : z_value[][] size: 400
21:11:34.933 : EEPROM free for UBL: 0x0DDF
21:11:34.987 : EEPROM can hold 0x0008 meshes.
21:11:35.533 : sizeof(ubl.state) :0043
21:11:35.533 : UBL_MESH_NUM_X_POINTS  10
21:11:35.533 : UBL_MESH_NUM_Y_POINTS  10
21:11:35.533 : UBL_MESH_MIN_X         27
21:11:35.534 : UBL_MESH_MIN_Y         10
21:11:35.534 : UBL_MESH_MAX_X         180
21:11:35.534 : UBL_MESH_MAX_Y         190
21:11:35.534 : MESH_X_DIST        17.000000
21:11:35.535 : MESH_Y_DIST        20.000000
21:11:35.535 : Unified Bed Leveling sanity checks passed.

OK... We need to fill in the NAN areas of the mesh. Do a G1 X170 Y20
And then a G29 P3 R5 C-.5 And then repost the currernt G29 O

And we should probably do a G29 S1 to save the mesh so we don't lose the current values.

21:19:02.466 : Bed Topography Report:
21:19:02.467 : (0, 9)                                                                                                                (9,9)
21:19:03.470 : (27,190)                                                                                                            (180,190)
21:19:03.470 : .            .            .            .            .            .            .            .            .            .
21:19:03.471 : 
21:19:03.471 : .            .            .            .            .            .            .            .            .            .
21:19:03.471 : 
21:19:03.472 : 0.465     0.390     0.317     0.248     0.180     0.125     0.070     0.015    -0.015        .
21:19:03.472 : 
21:19:03.473 : 0.400     0.322     0.248     0.187     0.113     0.062     0.012    -0.033    -0.090        .
21:19:03.473 : 
21:19:03.473 : 0.270     0.228     0.157     0.110     0.030    -0.020    -0.085    -0.123    -0.177        .
21:19:03.473 : 
21:19:03.556 : 0.187     0.130     0.067     0.017    -0.060    -0.130    -0.187    -0.240    -0.260    -0.500
21:19:03.557 : 
21:19:04.112 : 0.065     0.022    -0.053    -0.088    -0.145    -0.228    -0.283    -0.305    -0.375    -0.500
21:19:04.112 : 
21:19:04.113 : -0.048    -0.110    -0.142    -0.223    -0.275    -0.360    -0.408    -0.452    -0.485    -0.500
21:19:04.113 : 
21:19:04.113 : -0.170    -0.233    -0.307    -0.348    -0.392    -0.482    -0.530    -0.575   [-0.605]  -0.500
21:19:04.113 : 
21:19:04.661 : -0.310    -0.350    -0.410    -0.460    -0.540    -0.615    -0.675    -0.710    -0.745    -0.500
21:19:04.662 : (27,10)                                                                                                                (180,10)
21:19:04.664 : (0,0)                                                                                                                   (9,0)

We will have to move the nozzle soon... But we can do

  • G29 P3 R1 C-.15
  • G29 P3 R1 C-.1
  • G29 P3 R1 C .0
  • G29 O

Please post that map so we can verify the right thing is happening...

21:23:43.269 : G29 P3 R1 C-.15
21:23:43.714 : ubl_eeprom_start=544
21:24:04.083 : G29 P3 R1 C-.1
21:24:04.503 : ubl_eeprom_start=544
21:24:11.693 : G29 P3 R1 C .0
21:24:12.154 : ubl_eeprom_start=544
21:24:16.984 : G29 O
21:24:17.619 : ubl_eeprom_start=544
21:24:17.619 : Bed Topography Report:
21:24:17.620 : (0, 9)                                                                                                                (9,9)
21:24:17.620 : (27,190)                                                                                                            (180,190)
21:24:17.620 : .            .            .            .            .            .            .            .            .            .
21:24:17.620 : 
21:24:18.622 : .            .            .            .            .            .            .            .            .            .
21:24:18.622 : 
21:24:18.623 : 0.465     0.390     0.317     0.248     0.180     0.125     0.070     0.015    -0.015     0.000
21:24:18.623 : 
21:24:18.623 : 0.400     0.322     0.248     0.187     0.113     0.062     0.012    -0.033    -0.090    -0.100
21:24:18.623 : 
21:24:18.623 : 0.270     0.228     0.157     0.110     0.030    -0.020    -0.085    -0.123    -0.177    -0.150
21:24:18.623 : 
21:24:18.624 : 0.187     0.130     0.067     0.017    -0.060    -0.130    -0.187    -0.240    -0.260    -0.500
21:24:18.624 : 
21:24:18.624 : 0.065     0.022    -0.053    -0.088    -0.145    -0.228    -0.283    -0.305    -0.375    -0.500
21:24:18.624 : 
21:24:19.714 : -0.048    -0.110    -0.142    -0.223    -0.275    -0.360    -0.408    -0.452    -0.485    -0.500
21:24:19.714 : 
21:24:19.714 : -0.170    -0.233    -0.307    -0.348    -0.392    -0.482    -0.530    -0.575   [-0.605]  -0.500
21:24:19.714 : 
21:24:19.715 : -0.310    -0.350    -0.410    -0.460    -0.540    -0.615    -0.675    -0.710    -0.745echo:busy: processing
21:24:19.715 : -0.500
21:24:19.715 : (27,10)                                                                                                                (180,10)
21:24:19.716 : (0,0)                                                                                                                   (9,0)

Good... Lets do

  • G29 S1
  • G1 X35 Y 180
  • G29 P3 R4 C.4
  • G29 P3 R4 C.3
  • G29 P3 R4 C.15
  • G29 O

If you can notice... Right now... We are just trying to fill in the unprobed areas with 'reasonable' numbers.
After we get them filled in, we will do a G26 and start editing them to be better.

21:28:31.777 : G29 S1
21:28:32.572 : ubl_eeprom_start=544
21:28:33.672 : Mesh saved in slot 1  at offset 0x0C9C
21:28:33.672 : Done.
21:28:39.908 : G1 X35 Y 180
21:28:52.369 : G29 P3 R4 C.4
21:28:53.355 : ubl_eeprom_start=544
21:28:59.387 : G29 P3 R4 C.3
21:28:59.920 : ubl_eeprom_start=544
21:29:09.406 : G29 P3 R4 C.15
21:29:09.763 : ubl_eeprom_start=544
21:29:12.496 : G29 O
21:29:13.047 : ubl_eeprom_start=544
21:29:13.047 : Bed Topography Report:
21:29:13.047 : (0, 9)                                                                                                                (9,9)
21:29:13.047 : (27,190)                                                                                                            (180,190)
21:29:14.044 : [ 0.400]   0.400     0.300     0.300     0.150     0.150        .            .            .            .
21:29:14.044 : 
21:29:14.045 : 0.400     0.400     0.300     0.300     0.150     0.150        .            .            .            .
21:29:14.045 : 
21:29:14.045 : 0.465     0.390     0.317     0.248     0.180     0.125     0.070     0.015    -0.015     0.000
21:29:14.045 : 
21:29:14.045 : 0.400     0.322     0.248     0.187     0.113     0.062     0.012    -0.033    -0.090    -0.100
21:29:14.045 : 
21:29:14.045 : 0.270     0.228     0.157     0.110     0.030    -0.020    -0.085    -0.123    -0.177    -0.150
21:29:14.045 : 
21:29:14.046 : 0.187     0.130     0.067     0.017    -0.060    -0.130    -0.187    -0.240    -0.260    -0.500
21:29:14.046 : 
21:29:14.139 : 0.065     0.022    -0.053    -0.088    -0.145    -0.228    -0.283    -0.305    -0.375    -0.500
21:29:14.139 : 
21:29:15.136 : -0.048    -0.110    -0.142    -0.223    -0.275    -0.360    -0.408    -0.452    -0.485    -0.500
21:29:15.136 : 
21:29:15.136 : -0.170    -0.233    -0.307    -0.348    -0.392    -0.482    -0.530    -0.575    -0.605    -0.500
21:29:15.136 : 
21:29:15.136 : -0.310    -0.350    -0.410    -0.460    -0.540    -0.615    -0.675    -0.710    -0.745echo:busy: processing
21:29:15.136 : -0.500
21:29:15.137 : (27,10)                                                                                                                (180,10)
21:29:15.137 : (0,0)                                                                                                                   (9,0)

That is hard to read... Can you post the map like you did before?

Fixed. :)

It looks like we can just fill in the rest with 0.0

Please do a G29 P3 R C0.0 And a G29 S1

And then... Lets do a G29 A and a G26 P C O3.0 and see what needs to be edited on the mesh...

Also... We are at the point where you can decide: Do you want the mesh active when the printer powers up from reset? We can set it either way.

Hm. It started to making that skipping sound at row(?) 4 from the back and to the end of G26 P C O3.0. The first 3 sound correct and prints nice too.
Video
https://www.youtube.com/watch?v=bzKCTXujZfY

img_20170330_214709_li

It started to print the grid where the head was located and ended there too. X35 Y180.

We can change the filament speed for the next one... The back isn't off by much. So lets just change the front for the next iteration. Let's move the nozzle to the 'T' in 'HOT ZONE' and then give it a G29 P4 R

Let's lower every mesh point in the first 3 rows by .10mm If the nozzle moves outside of the first 3 rows... Just click the encoder wheel so it continues to the next location. Then save the mesh with G29 S1 and we can do another G26 C P O 3.0 We should see the front of the bed show an improvement.

And in fact... If you want to proceed faster... I don't need to micro-manage each iteration! I think you see how to fine tune the mesh now! You just park the nozzle over a 'problem area' and give it a G29 P3 R command. You edit as many points as needed (by the appropriate amount) and then save the update mesh. You can edit multiple areas per iteration and you will converge on perfection quicker.

But it will be fun to see your mesh after each G26 command! I'll be happy to jump in and offer opinions!

Incidentally... It doesn't really matter... (Because we are going to edit the whole mesh and get it perfect) But the 3 Green Check Marks are for the part of the mesh that we manually filled in because we could not probe it. Those mesh points are not perfect. But even so... They came out better than the automatically probed areas.

And I just noticed something else I don't like. Look how the lines going from row to row in the Y direction are shifting back and forth. After the next G26 we will be able to see things better. But it looks like your printer is loosing position on the X-Axis periodically. All of the lines from circle to circle should be straight and in-line with the previous and next lines... Yours are not!!!

Hmm.
Well. I think I made a mistake, I removed the printed mesh before moving to the T. Starting to grasp how UBL works but not there yet. I don't fully understand all the information in your last reply @Roxy-3D.

Moving manually to the T, I understand. Also, reading about G29 P4 R in the devel-ubl-readme. What values should I change when running G29 P4 R? Lower by .15. Is that -.15 or +.15 for the current value?
I really appreciate your patience and support!

So... Here is the thought process that was in play during UBL development.... Mesh Bed leveling is a very powerful concept. But the mesh points need to be accurate in order to get the benefit. The G26 lets you see how well your mesh is defined in different areas of the bed. In the first three rows you are barely getting any adhesion. So that is why I said "Edit the first 3 rows and lower those mesh points by .15mm." That is a very brute force 'correction'. But it should make the first 3 rows have adhesion and we will be able to see if any particular mesh point is too high or too low at that point in time.

The whole point of the G26 Validation pattern is so you can see where the nozzle was positioned during the first layer of a print. If it is too high, you can see that and make an intelligent decision how much to lower the nozzle. Or vice versa. Having the mesh validation pattern in place during the edit lets you make good choices about how much to raise or lower any given mesh point. But for the first iteration... Just to keep things simple... I was thinking "Let's lower the first 3 rows by .1mm or .15mm" That will give us a very noticable improvement.

The G29 P4 will run the nozzle around from point to point. It tries to stay as close to the starting point as possible. That is why it will go into the 4th and 5th row some of the time as it expands the circle from the starting point. That is why I said "just skip those points... for the first iteration... Let's just lower the values in the first 3 rows." You actually will be editing those points in the 4th and 5th row. But because you click the encoder wheel without rotating it... You will be replacing those values with the same value.

If you look at the LCD Panel... You will see the current value when the system is ready to edit that point. You just turn the dial enough to lower it by .15mm and click the encoder wheel. It will jump to the next point so you can edit it.

Ah, I confused the rows I think. The three I marked with green was the ones looking good and printed without skipping.

OK... When I said 'first' I meant the ones at the bottom of the picture... Those need their mesh points lowered in order to get good adhesion. If you haven't done a G29 S1 since you made the mistake... You can get the old mesh back with G29 L1 And there is room in the EEPROM to store multiple mesh patterns. You might want to save at G29 S2 next time just to keep this one around.

Doh. That makes sense. ;)

I think I understand the basics now. Just need to have some time to play around with it. Thanks for all your help!

Please post a picture of your Mesh Validation Pattern when you are happy with how the mesh is configured. It will be interesting for people to see the before and after pictures. And confirmation of the claim you can get good adhesion across the entire bed.

So, first run today with newly checked out RCBugFix and M502, M500, G29 P1, G29 S1, G26 C.
img_20170331_202711

Looking good for the first run, no strange noises mid print and no strange alignment. I haven't filled in the nan values yet so the bad mesh on the 4 sides are easy explained. Starting point got bad because no priming. ;) The last three rows does print without any (or I just can't see Z moving) Z compensation because of nan values (the probe not reaching that far back and the probe can't reach all the way to the left when the mesh is covering more of the bed).

I have changed to this:

#define UBL_MESH_MIN_X (X_MIN_POS + 20)
#define UBL_MESH_MAX_X (X_MAX_POS - (5))
#define UBL_MESH_MIN_Y (Y_MIN_POS + 10)
#define UBL_MESH_MAX_Y (Y_MAX_POS - (10))

and DEFAULT_STEPPER_DEACTIVE_TIME in confadv to 0.

Something is wrong with G29 O, showed up somewhere in the latest commits. Can't post the output because it seems like it loops and the values all over the place at every echo.

Please tell me that it looks like I am making good progress?! ;)

Edit: Noticed the glass looks very scratched, that's just the glue getting battered when I remove the mesh.

Edit 2:
Nice looking 1st layer (test printing within the probed area):
img_20170331_211934

Almost good enough to put on the wall beside my bed....
New dreamcatcher style.

img_20170331_205546 2

Something is wrong with G29 O, showed up somewhere in the latest commits. Can't post the output because it seems like it loops and the values all over the place at every echo.

I will keep an eye out watching for this...

Please tell me that it looks like I am making good progress?! ;)

Yes! Both getting the mesh to cover the bed and getting part of the validation pattern to print. But I would get rid of the NAN's before bothering with a Mesh Validation Print just because those values are just guesses, It makes sense to see how bad they are off so you can edit them.

Almost good enough to put on the wall beside my bed.... New dreamcatcher style.

Yes... Soon... You will have a perfect one to hang up! If you want to get it off in one piece... It really helps to put the glass in the freezer and then use a single edge razor blade to lift it off the glass. Also... When you put the glass back on the heat pad, be sure you orientate the glass exactly the same as when it was when you printed the validation pattern and edited the mesh. If you put the glass on differently, the mesh changes!

Something is wrong with G29 O, showed up somewhere in the latest commits. Can't post the output because it seems like it loops and the values all over the place at every echo.

Yes... I'll try to find out what killed the topology map tomorrow. ThinkyHead has been cleaning up a million different data structures and I think the UBL Topology Map was 'collateral damage'. The good news is... If it really is isolated to the UBL Topology Map, it will be almost trivial to find and fix the problem. (those are the kind of arrogant statements that cause a firmware person to be punished with a curse!)

UPDATE: It looks like the problem might be only on the Full Graphic's LCD Panels. Checkout: https://github.com/MarlinFirmware/Marlin/issues/6186#issuecomment-290893939

@Roxy-3D, could you "port" this issue to 3dprintboard.com as a sticky? I am thinking as a guide for using UBL.

Thanks for fixing the output @Roxy-3D!

20:53:18.818: Bed Topography Report:
20:53:18.921: (0,9) (9,9)
20:53:19.026: (7,10) (185,190)
20:53:19.179: . . . . . . . . . .
20:53:19.179:
20:53:19.331: . . . . . . . . . .
20:53:19.332:
20:53:19.566: 0.307 0.270 0.273 0.235 0.192 [ 0.170] 0.175 0.150 0.177 .
20:53:19.566:
20:53:19.721: 0.225 0.215 0.185 0.177 0.125 0.112 0.090 0.098 0.100 .
20:53:19.721:
20:53:19.874: 0.122 0.105 0.102 0.085 0.072 0.002 -0.010 0.040 0.022 .
20:53:19.874:
20:53:20.029: 0.012 0.005 -0.015 -0.022 -0.010 -0.070 -0.077 -0.092 -0.065 .
20:53:20.030:
20:53:20.183: -0.097 -0.132 -0.108 -0.113 -0.135 -0.145 -0.187 -0.173 -0.152 .
20:53:20.184:
20:53:20.339: -0.255 -0.270 -0.265 -0.245 -0.277 -0.277 -0.298 -0.277 -0.267 .
20:53:20.339:
20:53:20.417: -0.415 -0.382 -0.373 -0.405 -0.400 -0.455 -0.430 -0.402 -0.395 .
20:53:20.495:
20:53:20.649: -0.565 -0.555 -0.560 -0.563 -0.530 -0.560 -0.553 -0.535 -0.543 .
20:53:20.751: (7,10) (185,10)
20:53:20.856: (0,0) (9,0)

Of course it can probe all the left points because the probe end up off glass (while printing) to the left so no problem reaching there. Just need to fill the 2 back rows and the ones to the right. 馃憤
Should I wait? Was reading about EEPROM problems with moved data? Don't want to loose my settings..

It looks so easy when you know what you are doing. ;)

23:49:19.333 : Bed Topography Report:
23:49:19.334 : (0,9)                                                                                    (9,9)
23:49:19.334 : (7,10)                                                                                (185,190)
23:49:19.428 : 0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000
23:49:19.428 : 
23:49:19.961 : 0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000
23:49:19.961 : 
23:49:19.962 : 0.307    0.270    0.273    0.235    0.192  [ 0.170]   0.175    0.150    0.177    0.175
23:49:19.962 : 
23:49:19.962 : 0.225    0.215    0.185    0.177    0.125    0.112    0.090    0.098    0.100    0.100
23:49:19.963 : 
23:49:20.515 : 0.122    0.105    0.102    0.085    0.072    0.002   -0.010    0.040    0.022    0.025
23:49:20.515 : 
23:49:20.515 : 0.012    0.005   -0.015   -0.022   -0.010   -0.070   -0.077   -0.092   -0.065   -0.070
23:49:20.515 : 
23:49:20.516 : -0.097   -0.132   -0.108   -0.113   -0.135   -0.145   -0.187   -0.173   -0.152   -0.150
23:49:20.516 : 
23:49:20.516 : -0.255   -0.270   -0.265   -0.245   -0.277   -0.277   -0.298   -0.277   -0.267   -0.270
23:49:20.517 : 
23:49:21.510 : -0.415   -0.382   -0.373   -0.405   -0.400   -0.455   -0.430   -0.402   -0.395   -0.400
23:49:21.510 : 
23:49:21.511 : -0.565   -0.555   -0.560   -0.563   -0.530   -0.560   -0.553   -0.535   -0.543   -0.540
23:49:21.512 : (7,10)                                                                                    (185,10)
23:49:21.512 : (0,0)                                                                                       (9,0)

It feels like I understand how this works now! Just replaced the right values with something near the value directly to the left (with the LCD).
Also filled the back values with 0.0 as of now. Going to measure and fill the back and trim the values where needed later. Maybe using shim. Going to make the mesh a little bigger before doing more..

Edit:
So, this would work, yes?

#define UBL_MESH_MIN_X (0 + UBL_MESH_INSET_X)
#define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET_X))
#define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET_Y)
#define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET_Y))

and in Configuration.h:

#define UBL_MESH_INSET_X 2
#define UBL_MESH_INSET_Y 5

It would be helpful to see a current picture of your G26 because that will show us exactly where your mesh is located on the bed. But... Other than the 15 minutes it takes to probe, you won't lose anything by switching to the new RCBugFix. We haven't done the G29 P4 R on your mesh. It is at that point you don't want to lose it. I think you should move to the current RCBugFix!

I have switched. The LCD is showing strange stuff on the bottom line when running G28 and G29. I have the full graphic controller. It's showing like comments from the code?

This is with my defines as in my last edit:
img_20170403_025542

12x12 points. Could be a couple of millimeters more to the right. ;-)

The glass is flexing to one corner (as you can see). Need to get something better to hold the glass in place. With the standard clips the air duct will hit them..

Was this page helpful?
0 / 5 - 0 ratings

Related issues

otisczech picture otisczech  路  3Comments

ceturan picture ceturan  路  4Comments

jerryerry picture jerryerry  路  4Comments

Ciev picture Ciev  路  3Comments

W8KDB picture W8KDB  路  4Comments