first layer height
-
@mlaustin6 said in first layer height:
G92 Z.1
Are you sure that you are 0.1mm away from the bed when homed?
What is your first layer height?
Is the bed leveled?
Have you considered getting a Z probe?
-
I am sure. I have a Prusa i3 steel, and I leveled the bed with one of those .1mm flat steel tools. My first layer height is .2mm. It makes no sense for a z probe for me as the machine is older, and it never really needs leveling once set.
-
Just as a wild test, try changing G92 Z.1 to G92 Z0.1.
-
You set the Z coordinate before the second homing move. Put your
G92 Z.1
code at the end of the file. Also, you may want to remove the lastG1 X0 Y0
code or at least put aG1 Z3
before it. -
@chrishamm said in first layer height:
You set the Z coordinate before the second homing move. Put your G92 Z.1 code at the end of the file.
That last long z move doesn't have a H1 so it's not homing anything.
-
@Phaedrux said in first layer height:
@chrishamm said in first layer height:
You set the Z coordinate before the second homing move. Put your G92 Z.1 code at the end of the file.
That last long z move doesn't have a H1 so it's not homing anything.
Ah yes, I only read the "second pass" comment. But it explains why the nozzle goes to Z=0 provided it is the minimum as defined in config.g.
-
@chrishamm said in first layer height:
You set the Z coordinate before the second homing move. Put your
G92 Z.1
code at the end of the file. Also, you may want to remove the lastG1 X0 Y0
code or at least put aG1 Z3
before it.I put G92 Z0.1 at the end. I added the zero. Why remove G1 X0 Y0? I want homing to go there. What does G1 Z3 do? Would that be so it doesn't crash into the board?
-
@Phaedrux said in first layer height:
@chrishamm said in first layer height:
You set the Z coordinate before the second homing move. Put your G92 Z.1 code at the end of the file.
That last long z move doesn't have a H1 so it's not homing anything.
I added that. Strange the RRF 3.0 generator did not include that while the older generator did.
-
I just tried to generate the homeall.g with three switches and it appears to generate the H1 parameter for my setup. How does this homeall.g work for you?
G91 ; relative positioning G1 H2 Z5 F12000 ; lift Z relative to current position G1 H1 X-205 Y-205 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X5 Y5 F12000 ; go back a few mm G1 H1 X-205 Y-205 F600 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X0 Y0 F6000 ; go to first bed probe point G91 ; relative positioning G1 H1 Z-305 F600 ; move Z down stopping at the endstop G1 Z3 F600 ; go back a few mm G1 H1 Z-305 F120 ; move slowly to Z axis endstop once more (second pass) G90 ; absolute positioning G92 Z0.1 ; set Z position to axis minimum G1 Z3 F12000 ; lift the head again
This will home X+Y first, then go to X=0 Y=0, and then home Z.
-
I think Z0.1 did the trick rather than Z.1. Thank you.
-
HI All,
I feel like I am still having an issue with this. My first layer is clearly being smashed down. I have a G92 Z0.1 set, and Slic3r has a .2mm layer height on all layers. it's as if the first layer is dishing out filament for .2mm layer but in reality it seems the first layer is at .1mm. It's flatter than all the other layers. What could I be doing wrong?
-
Can you repost your current homing files and config file?
How is your Z axis setup?
What do you have configured in your slicer for the first layer?
Is the bed level?
Is the extruder calibrated?
Are you using mesh compensation? -
Sure. See below for those details. It's a Prusa P3 Steel, so the Z axis has 2 motors. It is level to the Y axis. The bed is leveled using a .1mm metal feeler gauge. It's a 3mm aluminum bed with Printbite on top. I have a 3 point leveling setup, and it is fairly level, not perfect like cast aluminum plate. The first layer as all layers are .2mm. I don't have any extra extrusion parameters. The extruder is calibrated, so I get 100mm when extruding 100mm. I am not using mesh compensation setup.
Home all
G91 ; relative positioning
G1 H2 Z5 F12000 ; lift Z relative to current position
G1 H1 X-205 Y-205 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
G1 H2 X5 Y5 F12000 ; go back a few mm
G1 H1 X-205 Y-205 F600 ; move slowly to X and Y axis endstops once more (second pass)
G90 ; absolute positioning
G1 X0 Y0 F6000 ; go to first bed probe point
G91 ; relative positioning
G1 H1 Z-305 F600 ; move Z down stopping at the endstop
G1 H2 Z3 F600 ; go back a few mm
G1 H1 Z-305 F120 ; move slowly to Z axis endstop once more (second pass)
G90 ; absolute positioning
G92 Z0.1 ; set Z position to axis minimumHome X
G91 ; relative positioning
;G1 H2 Z5 F12000 ; lift Z relative to current position
G1 H1 X-205 F1800 ; move quickly to X axis endstop and stop there (first pass)
G1 H2 X5 F2400 ; go back a few mm
G1 H1 X-205 F600 ; move slowly to X axis endstop once more (second pass)
G90 ; absolute positioningHome Y
G91 ; relative positioning
G1 H2 Z5 F12000 ; lift Z relative to current position
G1 H1 Y-205 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 H2 Y5 F12000 ; go back a few mm
G1 H1 Y-205 F600 ; move slowly to Y axis endstop once more (second pass)
G1 H2 Z-5 F12000 ; lower Z again
G90 ; absolute positioningHome Z
G91 ; relative positioning
G1 H1 Z-305 F600 ; move Z down stopping at the endstop
G1 H2 Z3 F600 ; go back a few mm
G1 H1 Z-305 F120 ; move slowly to Z axis endstop once more (second pass)
G90 ; absolute positioning
G92 Z0.1 ; set Z position to axis minimumConfig.g
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"P3 Steel" ; set printer name; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S1 ; enable Telnet; Drives
M569 P0 S1 ; physical drive 0 goes forwards
M569 P1 S1 ; physical drive 1 goes forwards
M569 P2 S0 ; physical drive 2 goes backwards
M569 P3 S1 ; physical drive 3 goes forwards
M584 X0 Y1 Z2 E3 ; set drive mapping
M350 X128 Y128 Z128 E128 I0 ; configure microstepping without interpolation
M92 X640.00 Y640.00 Z3200.00 E2335.5 ; set steps per mm
M566 X900.00 Y900.00 Z12.00 E1500.00 ; set maximum instantaneous speed changes (mm/min)
M203 X12000.00 Y12000.00 Z180.00 E12000.00 ; set maximum speeds (mm/min)
M201 X1400.00 Y1400.00 Z50.00 E9000.00 ; set accelerations (mm/s^2)
M906 X1200 Y1200 Z1000 E1400 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y-13 Z0 S1 ; set axis minima
M208 X200 Y195 Z300 S0 ; set axis maxima; Endstops
M574 X1 S1 P"!xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y1 S1 P"!ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 Z1 S1 P"!zstop" ; configure active-high endstop for low end on Z via pin zstop; Z-Probe
M558 P0 H2 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X0:200 Y0:200 S1 ; define mesh grid; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4066 C9.264103e-8 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M307 H0 A62.4 C118.9 D3.0 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M143 H1 S300 ; set temperature limit for heater 1 to 300C
M307 H1 A387.2 C120.9 D3.1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off
M950 F2 C"fan2" Q500
M106 P2 S1 H1 T100; Tools
M563 P0 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
M207 S3 R-0.1 F6000 T6000 Z0.1 ; Firmware retraction F is retract mm/m and T is detract mm/m
M572 D0 S0.8 ; pressure advance; Miscellaneous
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss -
Have you tried baby stepping the first layer until it looks right and then adding that babystep value to the G92 Z in your homeall?
No probe? I'd be curious to see a heightmap of the bed surface.
Unrelated, but using higher than x16 microstepping isn't recommended.
-
I do not have a probe. I should probably comment out the probe section. It was put there using the reprap configurator. I have not done baby stepping. How and why would I do that? I have the z end stop setup to where it is on at .1mm, and stepping it .05mm in DWC until it reaches .2mm turns off the red light. I thought that may have been an issue where .2mm was still triggering the end stop.
So should I change it to x16 micro stepping? Why is it not recommended?
-
Nice, a few more P3Steels around! I'm building up quite a list of mods for these!
With no z-probe how are you keeping your two z-axis screws aligned? Are they seperately driven? Do you drive to the end of the axis and stall?
-
@DocTrucker said in first layer height:
Nice, a few more P3Steels around! I'm building up quite a list of mods for these!
With no z-probe how are you keeping your two z-axis screws aligned? Are they seperately driven? Do you drive to the end of the axis and stall?
My error. I sent that without thinking. The only probe I have is the z end stop. I was thinking bed leveling probe when I responded. .
Yeah it’s a great machine. I was thinking of building a core xy, but this has worked out well for me for what I do at the moment. Yeah I’ve done my own mods over time.
-
@mlaustin6 said in first layer height:
I do not have a probe. I should probably comment out the probe section. It was put there using the reprap configurator.
You can leave the probe section. It's currently set as manual probing, so if you ever did send a probe command like G30 or G29 it would prompt you to manually job the nozzle to touch the bed. Not really practical for doing a heightmap, but can sometimes be handy.
I have not done baby stepping. How and why would I do that?
During the first layer you can use the baby stepping buttons in the DWC interface to adjust the Z height of the first layer to get it dialed in. By adding that amount to the G92 in your homeall you make the adjustment permanent.
I also suspect that your bed may not be flat, so even if it's level, there may be a raised section.
If you print a test object like this, does it cover the bed uniformly? bedlevel_nozzle_0.4_200x200-0.3-0.8.stl
So should I change it to x16 micro stepping? Why is it not recommended?
I would suggest x16 with interpolation to x256 enabled. You'd have to recalculate the steps per mm to match. Reason being that the Duet has drivers that will take a x16 microstep and internally translate it to x256 for the motors without putting that step generation load on the CPU. So you get the benefit of quieter and smoother motors without hitting the CPU with x256 stepping. You'll probably just notice that it's quieter. But in some cases if you try and move too many axis too fast at once you can saturate the step generation and hiccups will ensue causing micro pauses, or in worst cases long stalls. You can check to see if you're being affected by this by running M122 after a print and seeing if you have a large hiccup count. The only cases where using a higher microstepping could be beneficial is with an XY axis with a steps per mm below 80, or an extruder below 400 (usually ungeared direct drive).
-
@mlaustin6 no problem, I assumed you had got a limit switch but badly explained myself!
As steppers move under the control of the Duet it is likely that a stationary position will be part a few microsteps past a full step. When powered down the stepper naturally settles to the next physical step that can be in advance or retard of the steppers current position. The potential end result for systems with an x gantry like ours is the motors can move in opposing directions loosing aligment - or becoming less parrallel to - the bed surface.
With a z probe the duet can align the gantry to the bed by checking two points on either side of the bed and correcting. Other options with independent drives are two accurate z limit switches. If the motors are hard wired together then your only real options are; to force them into the top of the machine to stall the steppers and hope they settle at a consistant point, or check against the bed manually before each build.
Edit: if your board has stall detection then you can try using that without z-probe but it may not be very accurate due to the reduction drive of the screw.
-
The bed is flat to my eyes. It’s a new bed, and that is why I went 3 point leveling because the last one got warped. I have a flat tile it was put on, and no edges were lifted. No air gaps either as it didn’t move easily on the tile. Also, the .1mm feeler gauge moves around on all corners and in the middle, granted some spots are a little tighter but not enough to make it difficult to move with one finger. So doubling that at .2mm should not cause a smashed first layer.
So if I use the baby steps, would I add the value to the g92 line?
I’m going to try testing it tomorrow using a file without filament at a slow speed and insert a .1mm and .2mm feeler gauge as it moves. That will give me an idea if the is actually moving to .2. Another option is to use a .01mm feeler gauge and just say the bed is at zero at see what happens.