Why are my Heightmaps always too high?
-
I set my Z offset. Comes out to 2.86 test it extensively and it's correct.
Manually level my bed using paper method or a Z screw macro.
At this point I can print pretty well.
But I want to apply a hightmap it's a big bed there is some variation.Run a G29 and it is ALWAYS high. it like its adding ~.050+ to every reading.
if I use the hightmap prints fail.Here is a dumbed down 3x3 map.
Why isn't the center point -the same point I use to home Z- 0 or closer to it?
If I run a 2 point G32 and the immediately run a G29 it is right down like I'd expect it to be. But if I home first its a mess. What am I setting wrong?
bed.g
homeall.g
homez.g
config.g
config-override.gSame Map after running a G32 without homing after it made very little adjustment.
-
I've re-posted your files using the </> tag. It makes it easier as it is not necessary to download the files to view them.
; Configuration file for Duet 3 Mini 5+ (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed May 26 2021 22:02:28 GMT-0600 (Mountain Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Dabus-E5Pd" ; set printer name M80 ;set AXT power state ON ; Drives M569 P0.0 S0 V40 ; X physical drive 0.0 goes backwards SteathChop to ~250mm/s M569 P0.1 S0 V40 ; Y physical drive 0.1 goes backwards SteathChop to ~250mm/s M569 P0.2 S0 V20 ; Z1 (left) physical drive 0.2 goes backwards SteathChop to ~50mm/s M569 P0.3 S1 D2 ; E0 physical drive 0.3 goes forwards pinned in SpreadCycle M569 P0.4 S0 V20 ; Z2 (right) physical drive 0.4 goes backwards Slave to Z as Z2 M584 X0.0 Y0.1 Z0.2:0.4 E0.3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z800.00 E830.00 ; set steps per mm M566 X1200.00 Y1200.00 Z50.00 E2000.00 ; set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z300.00 E6000.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z200.00 E2000.00 ; set accelerations (mm/s^2) M906 X580 Y600 Z650 E700 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X360 Y360 Z400 S0 ; set axis maxima ; Endstops M574 X2 S1 P"io6.in" ; configure active-high endstop for high end on X via pin io6.in M574 Y2 S1 P"io5.in" ; configure active-high endstop for high end on Y via pin io5.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z M671 X-23:386 Y180:180 S3 ; Define lead scew locations ; Filliment sensor M591 D0 P7 C"io4.in" L7 R50:200 E15 S1 ; BTT Smart Filiment sensor ; Z-Probe M950 S0 C"io3.out" ; create servo pin 0 for BLTouch M558 P9 C"^io3.in" H5 F1000:120 T7000 A6 ; set Z probe type to bltouch and the dive height + speeds ; Z OFFSET HERE G31 P500 X-37 Y-3 Z0 ; set Z probe trigger value, offset and trigger height ;M557 X40:320 Y20:340 S20 ; define mesh grid M557 X40:320 Y20:340 P3:3 ; define mesh grid -- quck for leveling ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 SLice Engineering M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S150 ; set temperature limit for heater 0 to 150C M308 S1 P"temp1" Y"thermistor" T98801 B4185 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S275 ; set temperature limit for heater 1 to 275C M308 S2 P"mcutemp" Y"mcutemp" A"Duet Board" ; Configure MCU sensor ; Fans M950 F0 C"out5" ; create fan 0 on pin out5 and set its frequency -Removed Q500 M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out6" Q2500 ; create fan 1 on pin out6 and set its frequency - Removved Q500 M106 P1 S255 H1 T45 L255 ; set fan 1 value. Thermostatic control is turned on ;M950 F2 C"out3" Q500 ; create fan 2 on pin out3 and set its frequency ;M106 P2 S1 H1:0 T45 ; set fan 2 value. Thermostatic control is turned on M950 F3 C"out4" ; create fan 3 on pin out4 and set its frequency -Reomoved 500 M106 P3 S255 H2 T25 C"Case Fan" ; Set fan 2. Manages Duet board fan. ; Filiment envronment sensors M308 S10 P"io2.out+io2.in" Y"dht22" A"Fil Temp[C]" M308 S11 P"S10.1" Y"dhthumidity" A"Fil Hum[%]" ; Tools M563 P0 S"Mosquito" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M575 P1 S1 B57600 ; enable support for PanelDue M501 ; load saved parameters from non-volatile memory M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss T0 ; select first tool
; config-override.g file generated in response to M500 at 2021-09-24 07:51 ; Heater model parameters M307 H0 R0.187 C835.900:835.900 D8.40 S1.00 V24.3 B0 M307 H1 R3.001 C173.200:171.500 D5.30 S1.00 V24.2 B0 ; Z probe parameters G31 P500 X-37.0 Y-3.0 Z2.86 ; Workplace coordinates G10 L2 P1 X0.00 Y0.00 Z0.00 G10 L2 P2 X0.00 Y0.00 Z0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 G10 L2 P9 X0.00 Y0.00 Z0.00
; homeall.g ; called to home all axes G91 ; relative positioning G1 H2 Z5 F8000 ; lift Z relative to current position G1 H1 X365 Y365 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X-5 Y-5 F6000 ; go back a few mm G1 H1 X365 Y365 F360 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X217 Y183 F8000 ; move probe to ceter of bed and home Z G30 ; home Z by probing the bed G1 X180 Y180 F6000 ; Move nozel to center cuz I'm anal ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
; homez.g ; called to home the Z axis ; G91 ; relative positioning G1 H2 Z5 F8000 ; lift Z relative to current position G90 ; absolute positioning G1 X217 Y183 F8000 ; go to first probe point G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
; bed.g ; called to perform automatic bed compensation via G32 ; ; Bed file for Ender 5 Plus with probe offset of -45 -7 (creality default) M561 ; clear any bed transform G29 S2; Clear bed height map ; Probe 2-point ;M401 ; Deploy probe - deployprobe.g M671 X-23:386 Y180:180 S3 ; Define lead scew locations ; loop unless probe points are within 0.009 or 5 loops is reached while true ; run leveling pass G30 P0 X40 Y183 Z-9999 ; Front Left G30 P1 X323 Y183 Z-9999 S2; Front Right if move.calibration.initial.deviation < 0.009 break "Completed" ; check pass limit - abort if pass limit reached if iterations = 5 M291 P"Bed Leveling Aborted" R"Pass Limit Reached" abort "Bed Leveling Aborted - Pass Limit Reached" ;M402 ; Retract Probe - retractprobe.g
-
In your G31 command you have the Z Trigger Height setting as Z0
That is a unusual value. It says that when the probe triggers the Z position is Z=0.
Is it correct?
Frederick
-
@fcwilt look at overrides I have Z auto level write there
-
@nurgelrot said in Why are my Heightmaps always too high?:
@fcwilt look at overrides I have Z auto level write there
Got it. The M501 wasn't the last command in config.g and I just missed it.
There are times when you need to set the Z=0 datum using a single G30.
- after leveling the bed with G32
- before creating the height map with G29 or G29 S0
- before loading the height map with G29 S1
And the XY position used must always be the same, such as the center of the bed as you did in your homing files.
Frederick
-
@fcwilt Okay trying that workflow as it was also suggested in the Teamgloomy discord channel.
-
@nurgelrot same thing:
Homeall->G32->G29
Homeall->G32->HomeZ->G29
no other changes
so must be something in homeZ but what
(and yeah i know the bed level needs work I'll deal with that once i figure out why +~.050 is getting added to the Z height -
@nurgelrot what on earth is going on. just do a single G30 and it get even higher
-
Have you verified that after homing Z the Z position is correct?
If you move to Z=0 does the nozzle just touch the bed?
Also in your bed.g file I think the second IF statement and code needs to be at the same indent as the first IF.
Frederick
-
@fcwilt Yes all that is fine. I can even print without the map just fine. its what ive been doing. Like to have a working map tthough
-
OK.
When you do HomeAll>G32>G29 you are setting the Z=0 datum near the edge of the bed (the second G30 in bed.g).
When you do HomeAll>G32>HomeZ>G29 you are setting the Z=0 datum at the center of the bed.
Given the overall shape of bed as shown in the height maps the Z=0 datum in each case is going to be different.
So the three height maps make sense to me.
Notice in the first the one the deviations are from -0.095 to 0.094 for a range of 189
Notice in the second one the deviations are from 0.009 to 0.191 for a range of 182
Notice in the third one the deviations are from 0.015 to 0.204 for a range of 189
The range is consistent given the the nature of the probe to not provide perfect readings.
And the second and third height maps appear to have the middle near 0 which is to be expected since the Z=0 datum is set at the center of the bed.
So I would say things are working as expected and the first height map is incorrect because the Z=0 datum was not set at the center of the bed.
Frederick
-
@fcwilt So with that logic (and it makes sense) the second example should be a correct height map since the homeZ probes back at the center of the bed. Only it isn't. I just replace my probe and redid my zoffset and now if I probe the center of the bed 180,180 using a G30 and watching the output in DWC I see it trigger a 2.72 as expected... but if I run a G29 the same point 180,180 triggers at 2.78. I run through it over and over and my G29's are ~.05 higher than probing in any other method. and subsequent home/g29 cycles with drive the height map higher and is driving me crazy
-
Curious.
When creating the height map are you insuring that baby-stepping is cleared and that no height map is loaded?
I don't know if G29 does that "behind the scenes" so I have always done it as part of the process of creating the height map, just to be safe.
What version of firmware are you using?
I will have to perform the same check on one of my printers to see if I see the same sort of difference between G30 and G29.
Frederick
-
@fcwilt yeah i give up i just wont use a mesh. all i did was up the number of points. from 5x5 tp 9x9 and the whole thing jumped up nearly .1 mm
make no sense -
@nurgelrot So if I home all. Then do a G28 Z it probes the center of the bed and I watch it trigger at the correct z height. 2.69 run a G30 by hand it triggers at 2.69. I run a G30 P0 X180 Y180 Z-9999 it triggers at 2.69. I run a G29 and the point at X180 Y180 triggers at 2.76.... with all the other point high as well. I just don't get it.
Firmware 3.3 earlier
and now Firmware: RepRapFirmware for Duet 3 Mini 5+ 3.4.0beta3 (2021-08-24) -
@nurgelrot said in Why are my Heightmaps always too high?:
@nurgelrot So if I home all. Then do a G28 Z it probes the center of the bed and I watch it trigger at the correct z height. 2.69 run a G30 by hand it triggers at 2.69. I run a G30 P0 X180 Y180 Z-9999 it triggers at 2.69. I run a G29 and the point at X180 Y180 triggers at 2.76.... with all the other point high as well. I just don't get it.
Firmware 3.3 earlier
and now Firmware: RepRapFirmware for Duet 3 Mini 5+ 3.4.0beta3 (2021-08-24)One difference I see between you probe setup and mine is the P parameter for G31.
Yours is 500, mine is 25.
Create a macro with this code. When executed it will generate a result showing each probe trigger height.
One run on a printer of mine produced a mean reading of 0.006 and a deviation of 0.003.
Be sure and edit the second M558 to restore your normal probe settings.
M558 A1 S0.01 ; set probe to take a single reading ; take 10 readings and report results G30 P0 X0 Y0 Z-99999 G30 P1 X0 Y0 Z-99999 G30 P2 X0 Y0 Z-99999 G30 P3 X0 Y0 Z-99999 G30 P4 X0 Y0 Z-99999 G30 P5 X0 Y0 Z-99999 G30 P6 X0 Y0 Z-99999 G30 P6 X0 Y0 Z-99999 G30 P8 X0 Y0 Z-99999 G30 P9 X0 Y0 Z-99999 S-1 M558 A? S? ; restore probe settings for A and S G90 ; absolute moves G1 Z5 F600 ; move Z to known height
-
@fcwilt Is there any chance that your Z axis is losing steps/binding/slipping? That would explain both the "step" you have been seeing in the heightmap and also the change in reading at your homing point.
-
@gloomyandy Anything is possible at this point. I'll look into it. seems to only be a problem with G29. I had to print some parts last night so i just manually leveled and printed everything turned out fine.
I feel like something changed with how the mesh is made in 3.3+ This printer always had a mediocre bed but I was always able to get a pretty decent mesh made to make up for a few bumps/twists.
-
@fcwilt So running test probe in the middle of the bed (where Zoffset s calculated and Z=0 is set) gives me constant results.
9/25/2021, 9:38:35 AM G32 bed probe heights: -0.002 -0.001 -0.003 -0.001 -0.001 -0.002 -0.001, mean -0.001, deviation from mean 0.001 9/25/2021, 9:37:41 AM G32 bed probe heights: -0.002 -0.002 -0.003 -0.003 -0.002 -0.002 -0.001, mean -0.002, deviation from mean 0.001 9/25/2021, 9:36:48 AM G32 bed probe heights: -0.003 -0.002 -0.002 -0.003 -0.001 -0.003 -0.001, mean -0.002, deviation from mean 0.001 9/25/2021, 9:35:37 AM G32 bed probe heights: -0.001 -0.001 -0.002 -0.003 -0.001 -0.003 0.001, mean -0.001, deviation from mean 0.001 9/25/2021, 9:34:39 AM G32 bed probe heights: -0.001 -0.002 -0.001 -0.002 -0.003 -0.002 0.001, mean -0.001, deviation from mean 0.001
not as good if Imove it to run over the front left bed screw (with z=0 still calculated from center):
9/25/2021, 9:23:28 AM G32 bed probe heights: 0.067 0.072 0.069 0.071 0.071 0.071 0.072, mean 0.070, deviation from mean 0.002 9/25/2021, 9:19:38 AM G32 bed probe heights: 0.071 0.068 0.064 0.069 0.072 0.061 0.077, mean 0.069, deviation from mean 0.005 9/25/2021, 9:17:31 AM G32 bed probe heights: 0.069 0.071 0.071 0.068 0.068 0.071 0.069, mean 0.069, deviation from mean 0.001 9/25/2021, 9:16:27 AM G32 bed probe heights: 0.071 0.069 0.078 0.071 0.069 0.068 0.071, mean 0.071, deviation from mean 0.003 9/25/2021, 9:15:09 AM G32 bed probe heights: 0.068 0.067 0.067 0.059 0.074 0.068 0.062, mean 0.066, deviation from mean 0.004
As you can see this thin bed has a sag from the leveling screws to the center. which is why I like to use a mesh.
But was going on here this is at the left front leveling screw again and it just drifted down as i ran them
9/25/2021, 9:04:38 AM G32 bed probe heights: 0.043 0.047 0.072 0.069 0.069 0.072 0.072, mean 0.063, deviation from mean 0.012 9/25/2021, 8:57:31 AM G32 bed probe heights: 0.007 0.014 0.014 0.012 0.013 0.012 0.012, mean 0.012, deviation from mean 0.002 9/25/2021, 8:56:00 AM G32 bed probe heights: 0.004 -0.001 0.003 0.002 -0.002 -0.001 -0.003, mean 0.000, deviation from mean 0.003 9/25/2021, 8:55:01 AM G32 bed probe heights: 0.012 0.011 0.014 0.011 0.006 0.007 0.006, mean 0.009, deviation from mean 0.003 9/25/2021, 8:51:14 AM G32 bed probe heights: 0.018 0.017 0.016 0.019 0.017 0.023 0.016, mean 0.018, deviation from mean 0.002 9/25/2021, 8:50:21 AM G32 bed probe heights: 0.017 0.019 0.016 0.019 0.018 0.021 0.022, mean 0.019, deviation from mean 0.002 9/25/2021, 8:49:09 AM G32 bed probe heights: 0.022 0.021 0.023 0.017 0.018 0.017 0.026, mean 0.020, deviation from mean 0.003 9/25/2021, 8:47:44 AM G32 bed probe heights: 0.076 0.077 0.077 0.077 0.079 0.076 0.076, mean 0.077, deviation from mean 0.001 9/25/2021, 8:46:02 AM G32 bed probe heights: 0.076 0.066 0.083 0.083 0.072 0.074 0.081, mean 0.076, deviation from mean 0.006
As you can see from the times I actually ran the prob over the bed adjustment screw first. was really confused until the coffee kicked in and I probed over Home. to see the Touch was actually accurate. (except for that odd bit with the decreasing height that I havent been able to reproduce)
-
I was just about to respond to your post with the test results and they are gone.
I ran that test on one of my printers six times and the results were consistent.
The mean values ranged from -0.002 to 0.004 and the deviation was always 0.003.
Frederick