Welcome! Log In Create A New Profile

Advanced

Printer working great except for the last second

Posted by krwynn 
Printer working great except for the last second
March 27, 2015 11:23AM
Hi all. Printer is working better than expected right out of the box. I've mostly been running calibration prints to make sure everything is working properly. The only issue I'm having so far is that it never finishes the last layer as expected. It always leaves one small corner unfinished. It seems to extrude the filiment, but it leaves a thread from where it stops to home about an inch long. About the amount it would take to finish the corner.



Anyone have any ideas? I've searched around and can't find anything related to this.

Thanks!
-Kevin
Re: Printer working great except for the last second
March 27, 2015 11:29AM
Sounds to me like a combination of a firmware issue and your end gcode in whatever slicing program you are using. I suspect that your end gcode contains an unbuffered command, but the firmware is (incorrectly) not waiting for all moves to complete before executing it. What firmware are you using, and what do you have in your end gcode?



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Printer working great except for the last second
March 27, 2015 11:36AM
Strangely, I'm having this same problem. I have the FolgerTech Prusa i3 and mine also stops about a second too early. My printer is at home, but Folger has Marlin firmware, and I can post why end code when I get home this afternoon.
Re: Printer working great except for the last second
March 27, 2015 11:39AM
Quote
dc42
Sounds to me like a combination of a firmware issue and your end gcode in whatever slicing program you are using. I suspect that your end gcode contains an unbuffered command, but the firmware is (incorrectly) not waiting for all moves to complete before executing it. What firmware are you using, and what do you have in your end gcode?

Thank you for responding so quickly. I am using Repetier-Host or Pronterface. Using Slic3r for both. Both give me the same result and both have the same end g-code.

M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors

Here is the last part of the g-code for one of those prints. Maybe it will tell you something.

G1 X109.090 Y90.870 E47.00894
G1 F1800.000 E46.00894
G92 E0
M107
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors

; filament used = 819.8mm (2.0cm3)

; avoid_crossing_perimeters = 0
; bed_size = 200,200
; bed_temperature = 70
; bridge_acceleration = 0
; bridge_fan_speed = 100
; bridge_flow_ratio = 1
; brim_width = 0
; complete_objects = 0
; cooling = 0
; default_acceleration = 0
; disable_fan_first_layers = 0
; duplicate_distance = 6
; end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n
; external_perimeters_first = 0
; 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_diameter = 1.75
; first_layer_acceleration = 0
; first_layer_bed_temperature = 100
; first_layer_extrusion_width = 150%
; first_layer_speed = 90%
; first_layer_temperature = 230
; g0 = 0
; gcode_arcs = 0
; gcode_comments = 0
; gcode_flavor = reprap
; infill_acceleration = 0
; infill_first = 0
; layer_gcode =
; max_fan_speed = 100
; min_fan_speed = 100
; min_print_speed = 10
; min_skirt_length = 0
; notes =
; nozzle_diameter = 0.4
; only_retract_when_crossing_perimeters = 1
; ooze_prevention = 0
; output_filename_format = [input_filename_base].gcode
; perimeter_acceleration = 0
; post_process =
; print_center = 100,100
; resolution = 0
; retract_before_travel = 2
; retract_layer_change = 1
; retract_length = 1
; retract_length_toolchange = 10
; retract_lift = 0
; retract_restart_extra = 0
; retract_restart_extra_toolchange = 0
; retract_speed = 30
; skirt_distance = 3
; skirt_height = 1
; skirts = 3
; slowdown_below_layer_time = 30
; spiral_vase = 0
; standby_temperature_delta = -5
; start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n
; temperature = 200
; threads = 2
; toolchange_gcode =
; travel_speed = 150
; use_firmware_retraction = 0
; use_relative_e_distances = 0
; vibration_limit = 0
; wipe = 0
; z_offset = 0
; dont_support_bridges = 1
; extrusion_width = 0.4
; first_layer_height = 0.35
; infill_only_where_needed = 0
; interface_shells = 0
; layer_height = 0.32
; raft_layers = 0
; seam_position = aligned
; support_material = 0
; support_material_angle = 0
; support_material_enforce_layers = 0
; support_material_extruder = 1
; support_material_extrusion_width = 0
; support_material_interface_extruder = 1
; support_material_interface_layers = 3
; support_material_interface_spacing = 0
; support_material_interface_speed = 100%
; support_material_pattern = pillars
; support_material_spacing = 2.5
; support_material_speed = 60
; support_material_threshold = 0
; bottom_solid_layers = 3
; bridge_speed = 60
; external_perimeter_speed = 90%
; extra_perimeters = 1
; fill_angle = 45
; fill_density = 20%
; fill_pattern = rectilinear
; gap_fill_speed = 35
; infill_every_layers = 1
; infill_extruder = 1
; infill_extrusion_width = 0
; infill_speed = 50
; overhangs = 1
; perimeter_extruder = 1
; perimeter_extrusion_width = 0
; perimeter_speed = 40
; perimeters = 2
; small_perimeter_speed = 40
; solid_fill_pattern = rectilinear
; solid_infill_below_area = 70
; solid_infill_every_layers = 0
; solid_infill_extrusion_width = 0
; solid_infill_speed = 45
; thin_walls = 1
; top_infill_extrusion_width = 0
; top_solid_infill_speed = 45
; top_solid_layers = 3

Edited 2 time(s). Last edit at 03/27/2015 11:45AM by krwynn.
Re: Printer working great except for the last second
March 27, 2015 01:00PM
If my theory about it being a firmware bug is correct, then you may be able to work around it by putting one of the following commands at the beginning of your end gcode:

G4 10000 ; this should wait for 10 seconds

M400 ; this should wait for all current moves to complete

The idea is force the machine to wait for the moves to complete before it executes the G28. Alternatively, try replacing the G28 X0 command by G1 X0 F5000.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Printer working great except for the last second
March 27, 2015 02:14PM
M400 is the first one I tried and it worked! Top is full now. Thanks so much!

-Kevin


Quote
dc42
If my theory about it being a firmware bug is correct, then you may be able to work around it by putting one of the following commands at the beginning of your end gcode:

G4 10000 ; this should wait for 10 seconds

M400 ; this should wait for all current moves to complete

The idea is force the machine to wait for the moves to complete before it executes the G28. Alternatively, try replacing the G28 X0 command by G1 X0 F5000.
Re: Printer working great except for the last second
March 27, 2015 03:12PM
OK, looks like your the firmware running on your printer electronics has a bug then. It should wait for existing moves to complete before executing any commands that will disrupt them, other than M112 (Emergency Stop).



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Printer working great except for the last second
March 27, 2015 03:16PM
Using Marlin 1.0.2. Haven't touched anything other than configuration.h
Surprised more people aren't throwing a fit. It appears though that a lot of people are still running the old version from Folger though.


Quote
dc42
OK, looks like your the firmware running on your printer electronics has a bug then. It should wait for existing moves to complete before executing any commands that will disrupt them, other than M112 (Emergency Stop).

Edited 1 time(s). Last edit at 03/27/2015 03:40PM by krwynn.
Re: Printer working great except for the last second
March 27, 2015 03:32PM
You nailed it. Looks like this is an issue:
commands get messed at the end of print job



Quote
dc42
OK, looks like your the firmware running on your printer electronics has a bug then. It should wait for existing moves to complete before executing any commands that will disrupt them, other than M112 (Emergency Stop).
Re: Printer working great except for the last second
March 27, 2015 03:36PM
OK, so it's a bug in Marlin then. I am assuming it is the G28 that causes the problem, and I guess most people don't put a G28 command in their end gcode. I don't use G28 in the end gcode for my Cartesian printer, I use G1 X0 Y200 to get the head out of the way of the print. I do use G28 in the end gcode for my delta, but it doesn't use Marlin.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Sorry, only registered users may post in this forum.

Click here to login