Ender 3 pro quality issues
Messiahman last edited by Messiahman
Hi all, as the title suggests I am having trouble with my ender 3 pro print quality, which i cannot determine if it is due to hardware or calibration. I am running a duet 2 wifi with a bantamount dual 5015 mount, stock extruder, bltouch, metal extruder, capricorn bowden tube, glass build plate and steel core timing belt for the x axis (which will soon be replaced with the stock once i get it from e3d). Below is my config file and a couple photos of my most recent benchy. I also plan on extending the build volume to 400x400x500 and wish to eventually print at high speeds and quality, though I first need to reach quality here.
; Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
; generated by RepRapFirmware Configuration Tool v3.3.3 on Wed Oct 06 2021 12:37:23 GMT-0400 (Eastern Daylight Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"The Print-inator" ; set printer name
M918 P1 E4 F2000000 ; configure direct-connect display
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
M569 P0 S0 ; physical drive 0 goes backwards
M569 P1 S0 ; physical drive 1 goes backwards
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 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00 E136.79 ; set steps per mm
M566 X1200.00 Y1200.00 Z24.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
M203 X9000.00 Y9000.00 Z180.00 E6000.00 ; set maximum speeds (mm/min)
M201 X2600.00 Y2600.00 Z100.00 E5000.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 E1000 I50 ; 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 X235 Y235 Z260 S0 ; set axis maxima
M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop
M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop
M574 Z1 S2 ; configure Z-probe endstop for low end on Z
M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
M558 P9 C"^zprobe.in" H3 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X40.00 Y5.0 Z0.333 ; set Z probe trigger value, offset and trigger height
M557 X40:220 Y25:220 S41 ; define mesh grid
M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; 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
M307 H0 B1 S1.00 ; enable 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"e0temp" Y"thermistor" T100000 B4092 ; 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
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
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 H1 T45 ; set fan 1 value. Thermostatic control is turned on
M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency
M106 P2 S1 H1:0 T45 ; set fan 2 value. Thermostatic control is turned on
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
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
@messiahman I would like to add that I would prefer to keep the settings in the printer rather than in any slicer so I do not have to worry about switching between computers
@messiahman I would break the troubleshooting down into steps. prints like the benchy may be interesting to compare overall print times and some quality but for tuning you want individual models that test just 1 thing so you can tune those in 1 step at a time with fast prints that allow you to iterate over lots of different versions of one setting quickly.
If you look on prusaprinters or other 3d file sharing sites you should see various tests for retractions, temperature towers, bridging etc etc.
Generally I start with:
- Confirming that the extruder steps/mm is correct and that the other axis steps/mm speeds etc are appropriate. ensure your PID is tuned for the extruder.
- Checking for the best print temperatures for the filament (temp tower) and fan settings.
- iterate through jerk and acceleration values to get acceptable quality
- tune more advanced features like PA and Input shaping if appropriate.
Thats a very rough outline. there are guides online on how to do this in detail. In addition the settings the printer shipped with should be a good start point for tuning.
@t3p3tony This is after tuning it, which is why I wasn't sure if it was hardware or not
@t3p3tony I also don't know the gcode for some of those for reprap, so I was hoping I could have a little bit of a walkthrough with someone who knows what they're talking about lol
@messiahman so probably best to step through the issues you are seeing (using some test prints that target just one issue) and then if you can't find the setting you need to modify then we can of course point you in the right direction.
here are some links to help you get started:
M92: Allows programming of steps per mm for motor drives.
M566: Sets the maximum allowable speed change (sometimes called 'jerk speed') of each motor when changing direction.
M201: Sets the acceleration that axes can do in mm/second^2 for print moves.
M203: Sets the maximum feedrates that axes can do in mm/min.
and for later on:
This guide mentions a Maestro and its based on slightly older RRF but the tuning steps will be basically the same