Wonky first layer ANY IDEAS?
-
Mesh bed leveling is supposed to fix this right? What is going on??? Yes my bed is warped but where there is nothing (.009) is exactly where it probed. I am using a .3 nozzle with a .2 layer height. My steppers are Sanyo 32 bit using 256 bit interpolation. I set the machine up with gage blocks and feeler gages. Can anyone point out the error of my ways? Before the Duet upgrade it was all el-cheepo Geeetech and I had no issues like this. Here is a picture of what happens and all my files below;
; Configuration file for Duet WiFi (firmware version 1.17)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Wed May 03 2017 10:36:50 GMT-0400 (Eastern Daylight Time); General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M83 ; ...but relative extruder moves
M555 P2 ; Set firmware compatibility to look like Marlin
M208 X-11 Y-6 Z0 S1 ; Set axis minima
M208 X201 Y214.5 Z180 S0 ; Set axis maxima
M307 H3 A-1 C-1 D-1; Endstops
M574 S0 ; Define active low and unused microswitches
M574 X1 Y1 Z1 S1 ; Define active high microswitches
M558 P5 X0 Y0 Z1 H10 F120 T2500 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
G31 P1 X23 Y0 Z1.35 ; Set Z probe trigger value, offset and trigger height
M557 m401 X40:201 Y25:200 S40 ; Define mesh grid; Drives
M569 P0 S0 ; Drive 0 goes backwards
M569 P1 S0 ; Drive 1 goes backwards
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S1 ; Drive 3 goes forwards
M350 X32 Y32 Z32 E32 I1 ; Configure microstepping with interpolation
M92 X322 Y322 Z6400 E1260 ; Set steps per mm
M566 X1000 Y1000 Z800 E2500 ; Set maximum instantaneous speed changes (mm/min)
M203 X5000 Y5000 Z800 E2000 ; Set maximum speeds (mm/min)
M201 X2000 Y2000 Z800 E2500 ; Set accelerations (mm/s^2)
M906 X1800 Y1400 Z1800 E1400 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Heaters
M143 S260 ; Set maximum heater temperature to 260C
M305 P1 X200
;M305 P0 T100000 B4725 C7.06e-8 R4700 ; Set thermistor + ADC parameters for heater 0
M305 P1 T100000 B4317 C0 R4700 ; Set thermistor + ADC parameters for heater 1
;M305 P2 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 2
;M301 H1 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 0
;M301 H2 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 1
;M570 S120 ; Increase to allow extra heating time if needed; Tools
M563 P0 D0 H1 ; 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; Network
M550 P******* ; Set machine name
M551 ; Set password
M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP; Fans
M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H0:1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Custom settings are not configured
M501; This is a system-generated file - do not edit
; Heater model parameters
M307 H0 A90.0 C700.0 D10.0 S1.00 B1
M307 H1 A340.0 C140.0 D5.5 S1.00 B0
M307 H2 A340.0 C140.0 D5.5 S1.00 B0
M307 H4 A340.0 C140.0 D5.5 S1.00 B0
M307 H5 A340.0 C140.0 D5.5 S1.00 B0
M307 H6 A340.0 C140.0 D5.5 S1.00 B0
M307 H7 A340.0 C140.0 D5.5 S1.00 B0
; Z probe parameters
G31 T1 P1 X23.0 Y0.0 Z1.35
G31 T3 P500 X0.0 Y0.0 Z0.70
G31 T4 P500 X0.0 Y0.0 Z0.00RepRapFirmware height map file v1 generated at 2017-04-23 16:44 mean error -0.22 deviation 0.14
xmin xmax ymin ymax radius spacing xnum ynum
40 201 25 200 -1 40 5 5
-0.278 -0.416 -0.213 -0.51 -0.451
-0.301 -0.18 -0.255 -0.309 -0.127
-0.059 -0.169 -0.086 0.024 -0.003
-0.32 -0.058 -0.209 -0.055 -0.119
-0.155 -0.174 -0.313 -0.425 -0.305; generated by Slic3r 1.34.1-prusa3d-win64 on 2017-05-23 at 20:32:13
; external perimeters extrusion width = 0.30mm
; perimeters extrusion width = 0.31mm
; infill extrusion width = 0.31mm
; solid infill extrusion width = 0.31mm
; top infill extrusion width = 0.31mmM190 S90 ; set bed temperature and wait for it to be reached
M104 S235 ; set temperature
G28 ; home all axes
M401
G29 S2 ;clear bed compensation
G29 ;run auto bed mesh level
M402
G1 Z8 F5000 ; lift nozzleM109 S235 ; set temperature and wait for it to be reached
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0
M106 S89.25
G1 Z0.200 F7800.000
G1 E-3.00000 F9000.00000
G92 E0
G1 Z2.200 F7800.000
G1 X50.256 Y53.689 F7800.000
G1 Z0.200 F7800.000
G1 E3.00000 F9000.00000
G1 F1800
G1 X54.079 Y50.259 E3.15787
G1 X57.759 Y47.329 E3.30245
G1 X61.775 Y44.503 E3.45338.........................deleted middle.........
................
G1 X156.688 Y57.798 E60.78228
G1 X159.900 Y60.869 E60.91920
G1 X162.923 Y64.127 E61.05611
G1 X165.745 Y67.560 E61.19303
G1 X168.331 Y71.119 E61.32856
G1 E58.32856 F9000.00000
G92 E0
G1 Z2.200 F7800.000
M107
M104 S0 ; turn off temperature
G28 X0 ; home X axis; filament used = 509.4mm (1.2cm3)
; total filament cost = 0.0; avoid_crossing_perimeters = 0
; bed_shape = 14x6,204x6,204x218,14x218
; bed_temperature = 90
; before_layer_gcode =
; bridge_acceleration = 0
; bridge_fan_speed = 55
; brim_width = 0
; complete_objects = 0
; cooling = 1
; default_acceleration = 0
; disable_fan_first_layers = 0
; duplicate_distance = 6
; end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\n\n
; extruder_clearance_height = 20
; extruder_clearance_radius = 20
; extruder_offset = 0x0
; extrusion_axis = E
; extrusion_multiplier = 1
; fan_always_on = 1
; fan_below_layer_time = 60
; filament_colour = #008000
; filament_cost = 0
; filament_density = 0
; filament_diameter = 1.72
; filament_max_volumetric_speed = 0
; filament_notes = ""
; first_layer_acceleration = 0
; first_layer_bed_temperature = 90
; first_layer_extrusion_width = 200%
; first_layer_speed = 30
; first_layer_temperature = 235
; gcode_arcs = 0
; gcode_comments = 0
; gcode_flavor = repetier
; infill_acceleration = 0
; infill_first = 0
; layer_gcode =
; max_fan_speed = 55
; max_layer_height = 0
; max_print_speed = 80
; max_volumetric_extrusion_rate_slope_negative = 0
; max_volumetric_extrusion_rate_slope_positive = 0
; max_volumetric_speed = 0
; min_fan_speed = 35
; min_layer_height = 0.07
; min_print_speed = 10
; min_skirt_length = 0
; notes =
; nozzle_diameter = 0.3
; only_retract_when_crossing_perimeters = 1
; ooze_prevention = 0
; output_filename_format = [input_filename_base].gcode
; perimeter_acceleration = 0
; post_process =
; pressure_advance = 0
; resolution = 0
; retract_before_travel = 2
; retract_layer_change = 0
; retract_length = 3
; retract_length_toolchange = 10
; retract_lift = 2
; retract_lift_above = 0
; retract_lift_below = 0
; retract_restart_extra = 0
; retract_restart_extra_toolchange = 0
; retract_speed = 150
; skirt_distance = 6
; skirt_height = 1
; skirts = 3
; slowdown_below_layer_time = 5
; spiral_vase = 0
; standby_temperature_delta = -5
; start_gcode = G28 ; home all axes\nM401\nG29 S2 ;clear bed compensation\nG29 ;run auto bed mesh level\nM402\nG1 Z8 F5000 ; lift nozzle\n
; temperature = 230
; threads = 12
; toolchange_gcode =
; travel_speed = 130
; use_firmware_retraction = 0
; use_relative_e_distances = 0
; use_volumetric_e = 0
; variable_layer_height = 1
; wipe = 0
; z_offset = 0
; clip_multipart_objects = 0
; dont_support_bridges = 1
; extrusion_width = 0
; first_layer_height = 0.2
; infill_only_where_needed = 1
; interface_shells = 0
; layer_height = 0.3
; raft_layers = 0
; seam_position = aligned
; support_material = 0
; support_material_angle = 0
; support_material_buildplate_only = 0
; support_material_contact_distance = 0.2
; support_material_enforce_layers = 0
; support_material_extruder = 1
; support_material_extrusion_width = 0
; support_material_interface_contact_loops = 0
; support_material_interface_extruder = 1
; support_material_interface_layers = 3
; support_material_interface_spacing = 0
; support_material_interface_speed = 80%
; support_material_pattern = rectilinear
; support_material_spacing = 2
; support_material_speed = 50
; support_material_synchronize_layers = 0
; support_material_threshold = 0
; support_material_with_sheath = 0
; support_material_xy_spacing = 50%
; xy_size_compensation = 0
; bottom_solid_layers = 4
; bridge_flow_ratio = 1
; bridge_speed = 60
; ensure_vertical_shell_thickness = 1
; external_fill_pattern = concentric
; external_perimeter_extrusion_width = 0
; external_perimeter_speed = 50%
; external_perimeters_first = 0
; extra_perimeters = 1
; fill_angle = 45
; fill_density = 30%
; fill_pattern = cubic
; gap_fill_speed = 20
; infill_every_layers = 1
; infill_extruder = 1
; infill_extrusion_width = 0
; infill_overlap = 55%
; infill_speed = 80
; overhangs = 1
; perimeter_extruder = 1
; perimeter_extrusion_width = 0
; perimeter_speed = 60
; perimeters = 2
; small_perimeter_speed = 15
; solid_infill_below_area = 70
; solid_infill_every_layers = 0
; solid_infill_extruder = 1
; solid_infill_extrusion_width = 0
; solid_infill_speed = 20
; thin_walls = 1
; top_infill_extrusion_width = 0
; top_solid_infill_speed = 15
; top_solid_layers = 4 -
It appears to me that the nozzle is too close to the bed over almost the entire print area. My guess is that you have configured the Z probe trigger height too high in your G31 command.
-
Hear is what I have in config.g G31 P1 X23 Y0 Z1.35 . When I home Z the web app says Z 1.35. When I measure it with a gage block and feeler gage it measures exactly 1.35mm. Is that not how it should be set? Yet you see how it turns out. That print I actually hit baby stepping up 4 times! I can see the Z axis moving as it prints like it is trying to follow a warped bed but it does not do what it should be. you can see areas that are too thick and at times actually dragging the bed. If you look close at the picture you can see where it carved up new PEI surface (top to the right of Z)
-
Duet Web Control will display as the Z position whatever you have in the G31 Z parameter.
Would recommend changing that parameter. A smaller number = less squished into the bed. So maybe try G31 P1 X23 Y0 Z1, see how that suits.
-
Am I wrong to put in what it actually is? What about the discrepancies as seen in the picture? If it were leveling the bed shouldn't it be even everywhere? Or am not understanding what mesh bed leveling is supposed to do?
-
In my experience, the G31 Z parameter is best set through trial and error. It is possible when you're using your feeler gage you're moving the hotend up or the bed down.
Bed leveling works to the extent that you don't have backlash in your system.
https://en.wikipedia.org/wiki/Backlash_(engineering)
A flat bed is the best solution. MBL is just a workaround.
-
As far as feeler gages are concerned I am quite familiar with their correct use, I have been a master mechanic for more than 40 years and I also have a full machine shop in house. So measuring is not the issue. So your saying MBL is just a quirky gimmick and not to be trusted? Yes having a perfectly flat bed is ideal and going to implemented in my next build from scratch. But none of that explains look of the print above. As far as backlash is concerned x and y are GT2 belts and the z is T8x2mm leadscrews, x and y will be T8x8 leadscrews this weekend along with a new 250mmx320mm 600W mains heated bed with 3mm boro glass on top of a precision ground aluminum heat spreader ,if I can get this sorted. I don't want to risk breaking the glass until this works.
-
As for measuring - if there's truly a 1.3mm offset, then you wouldn't see what was shown in the first photo. That photo is demonstrating that the offset is less than 1.3mm. The G-code you posted has the print start at 0.2mm, which would be enough room for a first layer. Perhaps your steps/mm are off, if you're confident in your measurement technique?
Another potential source of error in measuring is that the hotend and bed both expand at temperature. For example the hotend alone:
2010^-6200*25 = 0.1mm of expansion from room temperature to 220C.
Why not try changing the parameter as was suggested?
MBL isn't a gimmick. But if you think about it, it is impacted by backlash in the Z-axis. If there is backlash it will impact the ability of MBL to compensate for lack of flatness. The leadscrew/stepper coupling matters too. The proper solution is to get the bed as flat as possible first.
-
That is exactly what has me stumped. There should be plenty of room but there is not. If you look at the 2 outer rings between the z and x it is so thin that it disappears, that is not camera issue. also surrounding the x it is also thin yet around the y it is thick. there is a bow in the x axis across the middle and where it is the most pronounced (around the y) it is the thickest part of the print! It makes no sense. If I just raise the hotend it will still not be right, only instead of being ultra thin in spots the issue will then be that it is too high where it is now thick. As for Z backlash there is zero that I can detect. the entire weight of the x axis keeps the screws loaded, and I am using 3 piece press fit couplers on the steppers so none there either. IF the MBL was working shouldn't the 1st layer thickness be equal? I picked a few spots on the bed and using the MBL display moved to those coordinates and check what displayed for z values and measured and they were dead on. So why is the first layer crap?
-
Can you confirm a few things:
- you are using the feeler gauges to measure the nozzle height above the bed at the point where it triggers, not the height of the sensor board above the bed?
- that the feeler gauges are not rusty, which would make them thicker than they should be?
- you have not configured a Z offset in either your G10 P0 command or in your slicer?
I suggest you use a text editor to look at the start of the gcode file you are trying to print. Where printing starts, you should see a G1 command with the Z parameter the same as your first layer height, for example G1 Z0.2. Try homing the printer, then send that G1 command, then use the feeler gauges to check whether the nozzle is indeed at the correct height for the first layer.
-
1. yes I am measuring the nozzle
2. feeler gauges and blocks are rung together so they have zero rust
3. z offset in slicer is also set to 0.0Here is what I used to make the print;
; generated by Slic3r 1.34.1-prusa3d-win64 on 2017-05-23 at 20:32:13
; external perimeters extrusion width = 0.30mm
; perimeters extrusion width = 0.31mm
; infill extrusion width = 0.31mm
; solid infill extrusion width = 0.31mm
; top infill extrusion width = 0.31mmM190 S90 ; set bed temperature and wait for it to be reached
M104 S235 ; set temperature
G28 ; home all axes
M401
G29 S2 ;clear bed compensation
G29 ;run auto bed mesh level
M402
G1 Z8 F5000 ; lift nozzleM109 S235 ; set temperature and wait for it to be reached
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0
M106 S89.25
G1 Z0.200 F7800.000
G1 E-3.00000 F9000.00000
G92 E0
G1 Z2.200 F7800.000
G1 X50.256 Y53.689 F7800.000
G1 Z0.200 F7800.000
G1 E3.00000 F9000.00000
G1 F1800
G1 X54.079 Y50.259 E3.15787
G1 X57.759 Y47.329 E3.30245
G1 X61.775 Y44.503 E3.45338…......................deleted middle.........
................
G1 X156.688 Y57.798 E60.78228
G1 X159.900 Y60.869 E60.91920
G1 X162.923 Y64.127 E61.05611
G1 X165.745 Y67.560 E61.19303
G1 X168.331 Y71.119 E61.32856
G1 E58.32856 F9000.00000
G92 E0
G1 Z2.200 F7800.000
M107
M104 S0 ; turn off temperature
G28 X0 ; home X axis; filament used = 509.4mm (1.2cm3)
; total filament cost = 0.0; avoid_crossing_perimeters = 0
; bed_shape = 14x6,204x6,204x218,14x218
; bed_temperature = 90
; before_layer_gcode =
; bridge_acceleration = 0
; bridge_fan_speed = 55
; brim_width = 0
; complete_objects = 0
; cooling = 1
; default_acceleration = 0
; disable_fan_first_layers = 0
; duplicate_distance = 6
; end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\n\n
; extruder_clearance_height = 20
; extruder_clearance_radius = 20
; extruder_offset = 0x0
; extrusion_axis = E
; extrusion_multiplier = 1
; fan_always_on = 1
; fan_below_layer_time = 60
; filament_colour = #008000
; filament_cost = 0
; filament_density = 0
; filament_diameter = 1.72
; filament_max_volumetric_speed = 0
; filament_notes = ""
; first_layer_acceleration = 0
; first_layer_bed_temperature = 90
; first_layer_extrusion_width = 200%
; first_layer_speed = 30
; first_layer_temperature = 235
; gcode_arcs = 0
; gcode_comments = 0
; gcode_flavor = repetier
; infill_acceleration = 0
; infill_first = 0
; layer_gcode =
; max_fan_speed = 55
; max_layer_height = 0
; max_print_speed = 80
; max_volumetric_extrusion_rate_slope_negative = 0
; max_volumetric_extrusion_rate_slope_positive = 0
; max_volumetric_speed = 0
; min_fan_speed = 35
; min_layer_height = 0.07
; min_print_speed = 10
; min_skirt_length = 0
; notes =
; nozzle_diameter = 0.3
; only_retract_when_crossing_perimeters = 1
; ooze_prevention = 0
; output_filename_format = [input_filename_base].gcode
; perimeter_acceleration = 0
; post_process =
; pressure_advance = 0
; resolution = 0
; retract_before_travel = 2
; retract_layer_change = 0
; retract_length = 3
; retract_length_toolchange = 10
; retract_lift = 2
; retract_lift_above = 0
; retract_lift_below = 0
; retract_restart_extra = 0
; retract_restart_extra_toolchange = 0
; retract_speed = 150
; skirt_distance = 6
; skirt_height = 1
; skirts = 3
; slowdown_below_layer_time = 5
; spiral_vase = 0
; standby_temperature_delta = -5
; start_gcode = G28 ; home all axes\nM401\nG29 S2 ;clear bed compensation\nG29 ;run auto bed mesh level\nM402\nG1 Z8 F5000 ; lift nozzle\n
; temperature = 230
; threads = 12
; toolchange_gcode =
; travel_speed = 130
; use_firmware_retraction = 0
; use_relative_e_distances = 0
; use_volumetric_e = 0
; variable_layer_height = 1
; wipe = 0
; z_offset = 0
; clip_multipart_objects = 0
; dont_support_bridges = 1
; extrusion_width = 0
; first_layer_height = 0.2
; infill_only_where_needed = 1
; interface_shells = 0
; layer_height = 0.3
; raft_layers = 0
; seam_position = aligned
; support_material = 0
; support_material_angle = 0
; support_material_buildplate_only = 0
; support_material_contact_distance = 0.2
; support_material_enforce_layers = 0
; support_material_extruder = 1
; support_material_extrusion_width = 0
; support_material_interface_contact_loops = 0
; support_material_interface_extruder = 1
; support_material_interface_layers = 3
; support_material_interface_spacing = 0
; support_material_interface_speed = 80%
; support_material_pattern = rectilinear
; support_material_spacing = 2
; support_material_speed = 50
; support_material_synchronize_layers = 0
; support_material_threshold = 0
; support_material_with_sheath = 0
; support_material_xy_spacing = 50%
; xy_size_compensation = 0
; bottom_solid_layers = 4
; bridge_flow_ratio = 1
; bridge_speed = 60
; ensure_vertical_shell_thickness = 1
; external_fill_pattern = concentric
; external_perimeter_extrusion_width = 0
; external_perimeter_speed = 50%
; external_perimeters_first = 0
; extra_perimeters = 1
; fill_angle = 45
; fill_density = 30%
; fill_pattern = cubic
; gap_fill_speed = 20
; infill_every_layers = 1
; infill_extruder = 1
; infill_extrusion_width = 0
; infill_overlap = 55%
; infill_speed = 80
; overhangs = 1
; perimeter_extruder = 1
; perimeter_extrusion_width = 0
; perimeter_speed = 60
; perimeters = 2
; small_perimeter_speed = 15
; solid_infill_below_area = 70
; solid_infill_every_layers = 0
; solid_infill_extruder = 1
; solid_infill_extrusion_width = 0
; solid_infill_speed = 20
; thin_walls = 1
; top_infill_extrusion_width = 0
; top_solid_infill_speed = 15
; top_solid_layers = 4 -
I am still a newbie so don't read too much into this but have you tried to print with manual bed leveling? might clarify hardware vs software issue?
-
The bed is as level as it can get using gage blocks and feeler gages.
-
if you dont find a solution, might try a piece of glass to negate the bowed bed plate. cheap dirty hardware solutions are my specialty
-
The solution was supposed to be MBL!
-
I suggest you start by printing small cubes or single layer patterns at the centre of the bed, using a G30 command above bed centre to use the Z probe to set the Z=0 reference. When you have got that working well so that the first layer prints well, try using mesh bed compensation again.
-
PS - did you run the G29 command with the bed hot or cold?
-
I just spent the better part of the afternoon changing out the entire bed assembly from a 200 x 200 to a 320 x 250 Borosilicate glass plate with just the heating unit underneath getting ready to test in a few minutes