X and Y artifacts (cartesian printers)
-
Dear all,
I have 3 Duet WiFi 2 powered 3D Printers. Full disclosure, the boards are not original. I got them all from Aliexpress some years ago.
Two out the 3 printers have cartesian cinematics (i3 kind of printer). The other one is a Delta.
Whatever I print on the cartesian printers show some kind of artefacts in both the X and Y axis (see photo).
It is not a super-duper deal breaker for me, because I am not printing figurines but rather electronic enclosures, parts for another 3d printer... so, the kind of stuff which doesn't really make a difference.
However I am really curious on why this happen and why it doesn't happen with the delta.
I always assumed it was caused because the boards are not original, but I would like some opinions on that. Has anyone also seen such a thing?I'm looking forward for some feedback!
-
@FelixH Could it be that your idlers on the cartesian machines have no teeth (only a bearing)? Then you see the teeth of the belts which are running on a flat surface of the bearing as artefacts on the surface of your printed object.
-
@cosmowave worth a try, but if that was so, I would also see it on my Marlin machines. I will try it, however!
-
Can you share your config.g and your slicer settings? Firmware version?
-
@Phaedrux of course, I can't believe I forgot.
Here is the config.g from my Tornado, in which the artefacts are quite visible:
; Configuration file for Duet WiFi (firmware version 3.1) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool on Mon Feb 04 2019 17:03:09 GMT+0100 (Central European Standard Time) ; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ;Panel Due Setup M575 P1 B57600 S1 ; Network M550 P"Tevo Tornado" ; Set machine name M552 S1 ; Enable network M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Mapping M584 X0 Y1 Z2 E3 ; 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 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M92 X80.28 Y80.55 Z400.00 E408.00 ; Set steps per mm M566 X420.00 Y420.00 Z24.00 E300.00 ; Set maximum instantaneous speed changes (mm/min) M203 X15000.00 Y15000.00 Z1800.00 E3300.00 ; Set maximum speeds (mm/min) M201 X1000.00 Y850.00 Z120.00 E10000.00 ; Set accelerations (mm/s^2) M906 X700.00 Y1200.00 Z1200.00 E800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; After 30 seconds motors go to Idle ; Axis Limits M208 X0 Y-5 Z0 S1 ; Set axis minima M208 X300 Y290 Z400 S0 ; Set axis maxima ; Endstops M574 X1 S1 P"!xstop" ; Set active low X endstop M574 Y1 S1 P"!ystop" ; Set active low Y endstop M574 Z1 S2 ; Set endstops controlled by probe M558 P1 C"zprobe.in" H5 F300 T6000 ; Set Z probe type to switch and the dive height + speeds ;M558 P5 H5 F300 T6000 ; Set Z probe type to switch and the dive height + speeds G31 P500 X31 Y0 Z0.30 ;Set Z probe trigger value, offset and trigger height ; The larger the number the closest it gets to the bed ;i.e. 1.50 puts the nozzle closer to the bed than 1.20 M557 X40:270 Y10:280 S30 ; Define mesh grid ; Bed Heaters/Thermistors M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 R4700 ; Define thermistor M950 H0 C"bedheat" T0 ; Link pin name with heater M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; Links everything on the GUI M143 H0 S95 ; Set temperature limit for heater 0 to 95C ; HotEnd Heaters/Thermistors M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 R4700 ; Define thermistor M950 H1 C"e0heat" T1 ; Link pin name with heater M143 H1 S260 ; Set temperature limit for heater 1 to 260C ; Bed / HotEnd Autotunes M307 H1 R2.346 C212.3 D5.99 S1.00 V23.8 ;Hotend Autotune M307 H0 R0.798 C563.0 D8.50 S1.00 ;Bed Autotune ; Fans M950 F0 C"fan0" Q500 M106 P0 S0 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M950 F1 C"fan1" Q500 M106 P1 S1 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on M950 F2 C"fan2" Q500 M106 P2 X170 H1 T120 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on ; 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 ; Automatic power saving M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss ; Custom settings are not configured T0
I just uploaded to the latest stable release a couple of days ago.
And here is a gcode I would usually generate for this printer. I guess all the settings are at the beginning:
; generated by PrusaSlicer 2.6.1+MacOS-arm64 on 2023-11-10 at 17:41:49 UTC ; ; external perimeters extrusion width = 0.45mm ; perimeters extrusion width = 0.45mm ; infill extrusion width = 0.45mm ; solid infill extrusion width = 0.45mm ; top infill extrusion width = 0.40mm ; first layer extrusion width = 0.42mm ;TYPE:Custom G90 ; use absolute coordinates M83 ; extruder relative mode M104 S205 ; set extruder temp M140 S60 ; set bed temp M190 S60 ; wait for bed temp M109 S205 ; wait for extruder temp G28 ; home all axes M400 ; Wait until everything stops moving G29 S1 ;use mesh grid to compensate G1 X0 Y0 F3600; go to origin G1 Y-1.5 Z0.4 F1000.0 ; go outside print area G92 E0.0 G1 X60.0 Z0.2 E9.0 F1000.0 ; intro line G1 X150.0 E20.0 F1000.0 ; intro line G92 E0.0 G21 ; set units to millimeters G90 ; use absolute coordinates M83 ; use relative distances for extrusion ; Filament gcode M107 ;LAYER_CHANGE ;Z:0.2 ;HEIGHT:0.2 G1 E-2 F3600 G1 Z.2 F6000 G1 Z.4 G1 X126.24 Y128.992 G1 Z.2 G1 E2 F3600 ;TYPE:Skirt/Brim ;WIDTH:0.42 G1 F1800 G1 X127.692 Y127.7 E.06094 . . ; printing happens here . G1 X153.989 Y147.361 E.49839 ;WIPE_START G1 F4800;_WIPE G1 X152.004 Y145.376 E-2 ;WIPE_END G1 Z15.28 F6000 M107 ;TYPE:Custom ; Filament-specific end gcode ;END gcode for filament M104 S0 ; turn off temperature M140 S0; turn off heated bed G91; set relative coordinates G1 Z10; Lift Nozzle G90; set absolute coordinates G1 X0 Y300; Set bed so the piece can be seen M84 ; disable motors ; filament used [mm] = 1247.26 ; filament used [cm3] = 3.00 ; filament used [g] = 3.75 ; filament cost = 0.08 ; total filament used [g] = 3.75 ; total filament cost = 0.08 ; estimated printing time (normal mode) = 23m 42s ; estimated first layer printing time (normal mode) = 58s ; prusaslicer_config = begin ; autoemit_temperature_commands = 1 ; avoid_crossing_curled_overhangs = 0 ; avoid_crossing_perimeters = 0 ; avoid_crossing_perimeters_max_detour = 0 ; bed_custom_model = ; bed_custom_texture = ; bed_shape = 0x0,300x0,300x290,0x290 ; bed_temperature = 60 ; before_layer_gcode = ; between_objects_gcode = ; bottom_fill_pattern = rectilinear ; bottom_solid_layers = 3 ; bottom_solid_min_thickness = 0 ; bridge_acceleration = 0 ; bridge_angle = 0 ; bridge_fan_speed = 100 ; bridge_flow_ratio = 0.8 ; bridge_speed = 30 ; brim_separation = 0 ; brim_type = outer_only ; brim_width = 0 ; color_change_gcode = M600 ; complete_objects = 0 ; cooling = 1 ; cooling_tube_length = 5 ; cooling_tube_retraction = 91.5 ; default_acceleration = 0 ; default_filament_profile = ; default_print_profile = ; deretract_speed = 0 ; disable_fan_first_layers = 1 ; dont_support_bridges = 1 ; draft_shield = disabled ; duplicate_distance = 6 ; elefant_foot_compensation = 0 ; enable_dynamic_fan_speeds = 0 ; enable_dynamic_overhang_speeds = 0 ; end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" ; end_gcode = M104 S0 ; turn off temperature\nM140 S0; turn off heated bed\n\nG91; set relative coordinates\nG1 Z10; Lift Nozzle\nG90; set absolute coordinates\nG1 X0 Y300; Set bed so the piece can be seen\n\nM84 ; disable motors\n\n ; external_perimeter_acceleration = 0 ; external_perimeter_extrusion_width = 0.45 ; external_perimeter_speed = 30 ; external_perimeters_first = 0 ; extra_loading_move = -2 ; extra_perimeters = 0 ; extra_perimeters_on_overhangs = 0 ; extruder_clearance_height = 20 ; extruder_clearance_radius = 20 ; extruder_colour = "" ; extruder_offset = 0x0 ; extrusion_axis = E ; extrusion_multiplier = 1 ; extrusion_width = 0.45 ; fan_always_on = 1 ; fan_below_layer_time = 100 ; filament_colour = #0080FF ; filament_cooling_final_speed = 3.4 ; filament_cooling_initial_speed = 2.2 ; filament_cooling_moves = 4 ; filament_cost = 22.5 ; filament_density = 1.25 ; filament_diameter = 1.75 ; filament_load_time = 0 ; filament_loading_speed = 28 ; filament_loading_speed_start = 3 ; filament_max_volumetric_speed = 0 ; filament_minimal_purge_on_wipe_tower = 15 ; filament_multitool_ramming = 0 ; filament_multitool_ramming_flow = 10 ; filament_multitool_ramming_volume = 10 ; filament_notes = "" ; filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" ; filament_settings_id = "PLA 200°C" ; filament_soluble = 0 ; filament_spool_weight = 0 ; filament_toolchange_delay = 0 ; filament_type = PLA ; filament_unload_time = 0 ; filament_unloading_speed = 90 ; filament_unloading_speed_start = 100 ; filament_vendor = (Unknown) ; fill_angle = 45 ; fill_density = 10% ; fill_pattern = grid ; first_layer_acceleration = 0 ; first_layer_acceleration_over_raft = 0 ; first_layer_bed_temperature = 60 ; first_layer_extrusion_width = 0.42 ; first_layer_height = 0.2 ; first_layer_speed = 30 ; first_layer_speed_over_raft = 30 ; first_layer_temperature = 205 ; full_fan_speed_layer = 0 ; fuzzy_skin = none ; fuzzy_skin_point_dist = 0.8 ; fuzzy_skin_thickness = 0.3 ; gap_fill_enabled = 1 ; gap_fill_speed = 40 ; gcode_comments = 0 ; gcode_flavor = reprapfirmware ; gcode_label_objects = 0 ; gcode_resolution = 0.0125 ; gcode_substitutions = ; high_current_on_filament_swap = 0 ; host_type = duet ; infill_acceleration = 0 ; infill_anchor = 600% ; infill_anchor_max = 50 ; infill_every_layers = 1 ; infill_extruder = 1 ; infill_extrusion_width = 0.45 ; infill_first = 0 ; infill_overlap = 25% ; infill_speed = 50 ; interface_shells = 0 ; ironing = 0 ; ironing_flowrate = 15% ; ironing_spacing = 0.1 ; ironing_speed = 15 ; ironing_type = top ; layer_gcode = ; layer_height = 0.24 ; machine_limits_usage = ignore ; machine_max_acceleration_e = 10000,5000 ; machine_max_acceleration_extruding = 1000,1250 ; machine_max_acceleration_retracting = 10000,1250 ; machine_max_acceleration_travel = 1500,1250 ; machine_max_acceleration_x = 2000,1000 ; machine_max_acceleration_y = 2000,1000 ; machine_max_acceleration_z = 120,200 ; machine_max_feedrate_e = 55,120 ; machine_max_feedrate_x = 250,200 ; machine_max_feedrate_y = 250,200 ; machine_max_feedrate_z = 30,12 ; machine_max_jerk_e = 5,2.5 ; machine_max_jerk_x = 10,10 ; machine_max_jerk_y = 10,10 ; machine_max_jerk_z = 0.5,0.4 ; machine_min_extruding_rate = 0,0 ; machine_min_travel_rate = 0,0 ; max_fan_speed = 100 ; max_layer_height = 0 ; max_print_height = 400 ; max_print_speed = 70 ; max_volumetric_extrusion_rate_slope_negative = 0 ; max_volumetric_extrusion_rate_slope_positive = 0 ; max_volumetric_speed = 0 ; min_bead_width = 85% ; min_fan_speed = 100 ; min_feature_size = 25% ; min_layer_height = 0.08 ; min_print_speed = 15 ; min_skirt_length = 10 ; mmu_segmented_region_interlocking_depth = 0 ; mmu_segmented_region_max_width = 0 ; notes = ; nozzle_diameter = 0.4 ; only_retract_when_crossing_perimeters = 0 ; ooze_prevention = 0 ; output_filename_format = [input_filename_base].gcode ; overhang_fan_speed_0 = 0 ; overhang_fan_speed_1 = 0 ; overhang_fan_speed_2 = 0 ; overhang_fan_speed_3 = 0 ; overhang_speed_0 = 15 ; overhang_speed_1 = 15 ; overhang_speed_2 = 20 ; overhang_speed_3 = 25 ; overhangs = 0 ; parking_pos_retraction = 92 ; pause_print_gcode = M601 ; perimeter_acceleration = 0 ; perimeter_extruder = 1 ; perimeter_extrusion_width = 0.45 ; perimeter_generator = arachne ; perimeter_speed = 45 ; perimeters = 3 ; physical_printer_settings_id = Printer 6 ; post_process = ; print_settings_id = 0.24mm ; printer_model = ; printer_notes = ; printer_settings_id = Tevo Tornado ; printer_technology = FFF ; printer_variant = ; printer_vendor = ; raft_contact_distance = 0.1 ; raft_expansion = 1.5 ; raft_first_layer_density = 90% ; raft_first_layer_expansion = 3 ; raft_layers = 0 ; remaining_times = 0 ; resolution = 0 ; retract_before_travel = 1 ; retract_before_wipe = 0% ; retract_layer_change = 1 ; retract_length = 2 ; retract_length_toolchange = 10 ; retract_lift = 0.2 ; retract_lift_above = 0 ; retract_lift_below = 0 ; retract_restart_extra = 0 ; retract_restart_extra_toolchange = 0 ; retract_speed = 60 ; seam_position = nearest ; silent_mode = 0 ; single_extruder_multi_material = 0 ; single_extruder_multi_material_priming = 1 ; skirt_distance = 10 ; skirt_height = 1 ; skirts = 2 ; slice_closing_radius = 0.049 ; slicing_mode = regular ; slowdown_below_layer_time = 20 ; small_perimeter_speed = 25 ; solid_infill_acceleration = 0 ; solid_infill_below_area = 0 ; solid_infill_every_layers = 0 ; solid_infill_extruder = 1 ; solid_infill_extrusion_width = 0.45 ; solid_infill_speed = 50 ; spiral_vase = 0 ; staggered_inner_seams = 0 ; standby_temperature_delta = -5 ; start_filament_gcode = "; Filament gcode\n" ; start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\n\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\n\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\n\nG28 ; home all axes\nM400 ; Wait until everything stops moving\n\nG29 S1 ;use mesh grid to compensate\n\nG1 X0 Y0 F3600; go to origin\n\nG1 Y-1.5 Z0.4 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 Z0.2 E9.0 F1000.0 ; intro line\nG1 X150.0 E20.0 F1000.0 ; intro line\nG92 E0.0 ; support_material = 0 ; support_material_angle = 0 ; support_material_auto = 0 ; support_material_bottom_contact_distance = 0 ; support_material_bottom_interface_layers = -1 ; support_material_buildplate_only = 0 ; support_material_closing_radius = 2 ; support_material_contact_distance = 0.2 ; support_material_enforce_layers = 0 ; support_material_extruder = 1 ; support_material_extrusion_width = 0.35 ; support_material_interface_contact_loops = 0 ; support_material_interface_extruder = 1 ; support_material_interface_layers = 3 ; support_material_interface_pattern = rectilinear ; support_material_interface_spacing = 0 ; support_material_interface_speed = 100% ; support_material_pattern = rectilinear ; support_material_spacing = 2.5 ; support_material_speed = 35 ; support_material_style = grid ; support_material_synchronize_layers = 0 ; support_material_threshold = 60 ; support_material_with_sheath = 1 ; support_material_xy_spacing = 50% ; support_tree_angle = 40 ; support_tree_angle_slow = 25 ; support_tree_branch_diameter = 2 ; support_tree_branch_diameter_angle = 5 ; support_tree_branch_diameter_double_wall = 3 ; support_tree_branch_distance = 1 ; support_tree_tip_diameter = 0.8 ; support_tree_top_rate = 15% ; temperature = 200 ; template_custom_gcode = ; thick_bridges = 1 ; thin_walls = 0 ; threads = 8 ; thumbnails = ; thumbnails_format = PNG ; toolchange_gcode = ; top_fill_pattern = rectilinear ; top_infill_extrusion_width = 0.4 ; top_solid_infill_acceleration = 0 ; top_solid_infill_speed = 45 ; top_solid_layers = 4 ; top_solid_min_thickness = 0 ; travel_acceleration = 0 ; travel_speed = 100 ; travel_speed_z = 0 ; use_firmware_retraction = 0 ; use_relative_e_distances = 1 ; use_volumetric_e = 0 ; variable_layer_height = 1 ; wall_distribution_count = 1 ; wall_transition_angle = 10 ; wall_transition_filter_deviation = 25% ; wall_transition_length = 100% ; wipe = 1 ; wipe_into_infill = 0 ; wipe_into_objects = 0 ; wipe_tower = 0 ; wipe_tower_bridging = 10 ; wipe_tower_brim_width = 2 ; wipe_tower_cone_angle = 0 ; wipe_tower_extra_spacing = 100% ; wipe_tower_extruder = 0 ; wipe_tower_no_sparse_layers = 0 ; wipe_tower_rotation_angle = 0 ; wipe_tower_width = 60 ; wipe_tower_x = 180 ; wipe_tower_y = 140 ; wiping_volumes_extruders = 70,70 ; wiping_volumes_matrix = 0 ; xy_size_compensation = 0 ; z_offset = 0 ; prusaslicer_config = end
On my other machine (a steel frame) the artefacts are much more visible along the Y axis.
-
such ringing with fairly conservative speed settings would seem to indicate mechanical vibration from something getting loose over time. Maybe give it a once over?
-
@Phaedrux I'm on it right now...
-
well, I tried to tighten everything and the prints look the same. I do not think it's a vibration problem.
I also switched the smooth idlers for idlers with teeth and same result.However I have planned a new experiment. On one of the printers, the artifacts are only visible on the Y axis. I will switch X and Y axis, re-map them on the config.g file and have it print something to compare. My hypothesis is that the artifacts will appear on the X axis. We'll see. If that is the case, I wonder if there is some electronic component causing that. I was hoping someone more knowledgeable than myself could have an idea. I am really curious about it. It doesn't affect my prints all that much...
-
@FelixH ah, Vertical Fine Artefacts, or VFAs for short. There are long threads on many forums about these. As it’s across the whole face, it’s not ringing. It’s possible it is extrusion related, and also possible that the speed you are printing at also happens to be the frequency where the motor is hitting mid-band resonance (see https://www.geckodrive.com/support/mid-band-instability/) or potentially something else. See my responses in this thread, which might help narrow down exactly where the issue is coming from: https://forum.duet3d.com/post/321097
Ian
-
@droftarts oh, ok! Thanks for the info. I will try to do test prints at different speeds. However, that fact that that affects only my Duet machines is very curious
-
@FelixH having a look at your config, I notice you’re using different acceleration and motor currents on X and Y:
M201 X1000.00 Y850.00 Z120.00 E10000.00 ; Set accelerations (mm/s^2) M906 X700.00 Y1200.00 Z1200.00 E800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
Also, your accelerations are quite low, you may be able to increase them and accelerate through the problem, unless the mass is high on these axes. What speeds are you using for external perimeters? Your speed limit for X and Y is set to 250mm/s.
Ian
-
@droftarts I took the values from the Tornado`s original Firmware (Marlin). The Bed on the Tornado is quite huge (300x300, 4 mm Aluminum). I am guessing this is why there is a difference