CR-10S + Duet Wifi: Print Quality Issues



  • Good evening all.

    I recently purchased a Duet Wifi to upgrade one of my modded CR-10S printers. The mechanics of the machines are stock, but they both have a genuine E3D V6 hot-end, a Petsfang cooler assembly and the differential IR sensor from dc42. All of these were present when using the original Creality board which was running Marlin 1.1.9 and controlled by Octoprint.

    The previous setup had great print quality, and I had also been using features such as Mesh Bed leveling, Linear Advance, etc, etc. I decided to switch over to the Duet Wifi because of its incredible feature set (which I already love!), as well as feeling like I was making an investment that could be used on other printers in the future.

    Thus far I have everything working. All the axes work as expected, end-stops trigger, the IR sensor works. Homing, leveling, bed and nozzle heating all work as expected. My issue is that I cannot solve the print quality problems I am experiencing. I will provide pictures below, but it looks like the extrusion is very inconsistent or "noisy" on the X and Y sides of the test object, I'm not sure how better to describe it. Printing a single layer seems fine, so I'm unsure if my guess about it being something with the extruder stepper is on the mark or not.

    My config.g is as follows:

    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    
    ; General preferences
    G90                                     ; Send absolute coordinates...
    M83                                     ; ...but relative extruder moves
    
    ; Network
    M550 PCR10S-1                           ; Set machine name
    M552 S1                                 ; Enable network
    M586 P0 S1                              ; Enable HTTP
    M586 P1 S0                              ; Disable FTP
    M586 P2 S0                              ; Disable Telnet
    
    ; Drives
    M569 P0 S1                              ; Drive 0 (X) goes forwards
    M569 P1 S1                              ; Drive 1 (Y) goes forwards
    M569 P2 S0                              ; Drive 2 (Z1) goes backwards
    M569 P3 S1                              ; Drive 3 (E) goes forwards
    M569 P4 S0                              ; Drive 4 (Z2) goes backwards
    M584 X0 Y1 Z2:4 E3			; Driver 0=X, 1=Y, 2+4=Z, 3=E
    M350 X16 Y16 Z16 E16 I1                 ; Configure micro-stepping with interpolation
    M92 X80 Y80 Z400 E95                    ; Set steps per mm
    M566 X1200 Y1200 Z24 E300               ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z900 E1500             ; Set maximum speeds (mm/min)
    M201 X500 Y500 Z100 E10000              ; Set accelerations (mm/s^2)
    M906 X525 Y600 Z675 E600 I30            ; 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 X300 Y300 Z400 S0                  ; Set axis maxima
    
    ; Endstops
    M574 X1 Y1 S1                           ; Set active high endstops
    
    ; Z-Probe
    M574 Z1 S2                              ; Set endstops controlled by probe
    M558 P1 H5 F300 T6000                   ; Set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X30 Y-5 Z1.9                   ; Set Z probe trigger value, offset and trigger height
    M557 X30:270 Y30:270 S20                ; Define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                        ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B3950 C0 R4700          ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                            ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4725 C7.060000e-8 R4700      ; Set thermistor + ADC parameters for heater 1
    M307 H1 A493.9 C176.8 D4.6 S1.00 V23.9 B0     ; E3D V6 Hotend Calibration
    M143 H1 S280                            ; Set temperature limit for heater 1 to 280C
    
    ; Fans
    M106 P0 S0 I0 H-1                       ; Part Cooling Fan. Manual control.
    M106 P1 T45 H1                          ; Hotend Heatsink Fan. Thermostatic control, max RPM at 45C.
    M106 P2 T25:65 H100:101:102		; Duet Electronics Fan. Thermostatic control, turn on at 25C, max RPM at 65C.
    
    ; 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
    
    ; Miscellaneous
    T0                                      ; Select first tool
    

    I slice using Simplify3D and have tried tweaking every possible feature I can think of over the past 3 days, but nothing has had an effect on the issue. Between S3D and the Duet configuration, I have tried the following without success:

    • Printing slower (15, 30mm/s), or faster (60, 75mm/s)
    • Enabling relative extruder moves
    • Disabling retraction completely
    • Various temperatures both both bed and hotend
    • Different PLA filaments (Unbranded, AMZ3D and Rigid.ink)
    • Differing extrusion multipliers (80% thru 110%)
    • Layer heights, nozzle sizes in S3D (Auto, which is 0.48mm, vs manually setting 0.40mm)
    • Tweaking stepper voltages
    • Calibrating the extruder
    • Monitoring the E3D V6 heatsink for heat-creep
    • Cleaning the heat-break

    As you can see, I'm a little out of ideas. If anyone has further ideas of things to try, I'm all ears! My next step would be trying a different stepper on the extruder as I've read the stock CR-10 ones are low amperage high inductance which isn't ideal. The extruder set-up is the standard CR-10S design of a MK9 non-geared stepper running into a bowden tube.

    The following pictures show 2 XYZ test cubes. The one on the left was printed prior to any tweaking, not long after everything had been tested. The one on the right is as things stand now, though I should point out most of the change came from tweaking retraction, hence the reduction of over-extrusion at the corners. The pattern on the sides is a little reduced, but still far from the quality when the printer was running the original 8-bit board with Marlin.

    Thanks for reading, I look forward to any input people may have 🙂

    Test1
    Test2
    Test3



  • @nexxcat sometimes it's nice to have another slicer configured to compared against as a sanity check when things aren't going well.

    Perhaps give slic3r PE a try to see if it gives similar problems.


  • administrators

    It would be helpful to see a calibration cube printed before you did the conversion, and also your Marlin and Duet config settings so that we can see whether you have changed any speeds, accelerations etc.



  • @dc42 I, unfortunately, don't have a calibration cube from prior to the conversion, but I do have a second CR-10S that is configured identically (with the exception of the Z-probe) to this one, pre-conversion of course. They both ran the same build of the firmware, same mods, etc.

    As for the Marlin config I was / am using, all the feed rates, speeds, jerk, etc are all the default:

    /**
     * Default Axis Steps Per Unit (steps/mm)
     * Override with M92
     *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
     */
    #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 95 }
    
    /**
     * Default Max Feed Rate (mm/s)
     * Override with M203
     *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
     */
    #define DEFAULT_MAX_FEEDRATE          { 2500, 2500, 100, 25 }
    
    /**
     * Default Max Acceleration (change/s) change = mm/s
     * (Maximum start speed for accelerated moves)
     * Override with M201
     *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
     */
    #define DEFAULT_MAX_ACCELERATION      { 500, 500, 100, 10000 }
    
    /**
     * Default Acceleration (change/s) change = mm/s
     * Override with M204
     *
     *   M204 P    Acceleration
     *   M204 R    Retract Acceleration
     *   M204 T    Travel Acceleration
     */
    #define DEFAULT_ACCELERATION          575    // X, Y, Z and E acceleration for printing moves
    #define DEFAULT_RETRACT_ACCELERATION  1000    // E acceleration for retracts
    #define DEFAULT_TRAVEL_ACCELERATION   1000    // X, Y, Z acceleration for travel (non printing) moves
    
    /**
     * Default Jerk (mm/s)
     * Override with M205 X Y Z E
     *
     * "Jerk" specifies the minimum speed change that requires acceleration.
     * When changing speed and direction, if the difference is less than the
     * value set here, it may happen instantaneously.
     */
    #define DEFAULT_XJERK                 20.0
    #define DEFAULT_YJERK                 20.0
    #define DEFAULT_ZJERK                  0.4
    #define DEFAULT_EJERK                  5.0
    

    I admit that most of the settings regarding speeds & jerk were based upon other people who had done the conversion for a CR-10S, not calculated from my Marlin configuration. Rather than in-line my full Marlin config here, I've chucked it up on Github: https://gist.github.com/nexx/2e5d44e1eea566e27b831a9f222a8131



  • Looking more closely at your cubes it looks like Simplify3D is alternating your start point. Try aligning it to a single corner.


  • administrators

    From your config.g:

    M566 X1200 Y1200 Z24 E300 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z900 E1500 ; Set maximum speeds (mm/min)
    M201 X500 Y500 Z100 E10000 ; Set accelerations (mm/s^2)

    From your Marlin config:

    #define DEFAULT_MAX_FEEDRATE { 2500, 2500, 100, 25 }
    #define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 10000 }
    #define DEFAULT_XJERK 20.0
    #define DEFAULT_YJERK 20.0
    #define DEFAULT_ZJERK 0.4
    #define DEFAULT_EJERK 5.0

    So you have the same acceleration and jerk configured in both (allowing for jerk being in mm/min for RRF and in mm/sec for Marlin), however you have substantially higher maximum speeds (feedrate) configured in M203 than you had in Marlin.



  • Sorry for not getting back sooner, I'd been working on getting both printers set up next to each other so I can literally print two calibration cubes one after the other.

    @phaedrux said in CR-10S + Duet Wifi: Print Quality Issues:

    Looking more closely at your cubes it looks like Simplify3D is alternating your start point. Try aligning it to a single corner.

    I'm going to print both again, with a darker filament which shows the surface quality better, and using the same g-code on both. This will have the layer transitions all pinned in the same place.

    @dc42 said in CR-10S + Duet Wifi: Print Quality Issues:

    From your config.g:

    M566 X1200 Y1200 Z24 E300 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z900 E1500 ; Set maximum speeds (mm/min)
    M201 X500 Y500 Z100 E10000 ; Set accelerations (mm/s^2)

    From your Marlin config:

    #define DEFAULT_MAX_FEEDRATE { 2500, 2500, 100, 25 }
    #define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 10000 }
    #define DEFAULT_XJERK 20.0
    #define DEFAULT_YJERK 20.0
    #define DEFAULT_ZJERK 0.4
    #define DEFAULT_EJERK 5.0

    So you have the same acceleration and jerk configured in both (allowing for jerk being in mm/min for RRF and in mm/sec for Marlin), however you have substantially higher maximum speeds (feedrate) configured in M203 than you had in Marlin.

    As far as I can tell, the max feedrate in Marlin is in mm/s, and RRF is in mm/min, so wouldn't that make the Marlin ones actually much higher? (150000, 150000, 6000, 1500)? I know the Z movement speed on my CR-10 maxes out at around 1200mm/min before it starts to bind or skip.



  • @nexxcat Yes, Marlin typically uses mm/s so your values aren't too crazy really.

    1mm/s = 60mm/min, so 6000mm/min = 100mm/s which is actually kind of low for travel moves.



  • Have you solved your problem? I also got a deterioration in print quality and similar layers on Z after leaving Marlin. I have no idea why this happened ..
    These are my prints on Duet
    These are my prints on Marlin


  • administrators

    @denis said in CR-10S + Duet Wifi: Print Quality Issues:

    Have you solved your problem? I also got a deterioration in print quality and similar layers on Z after leaving Marlin. I have no idea why this happened ..
    These are my prints on Duet
    These are my prints on Marlin

    I'm sorry, it's impossible for me to compare the photos because they are of different faces and taken at different distances. Can you take a photo of a print of the X face from a Duet print, at the same scale as your Marlin print?

    Also please post your Duet config.g file and the Marlin settings you were using.



  • Now I can't publish the same photo, because I remade the plugs for the duet. At the moment I am working on replacing wires and connectors so that both boards can be connected. As soon as I finish, I will publish all the comparisons. (files, photos, etc.)



  • @denis Sorry, yeah. I ended up solving the issue by replacing the extruder entirely. I'm now running a Bondtech BMG extruder and prints are now the same between Marlin and Duet. Not the answer you're looking for, but I had tried everything else prior to this.


  • administrators

    Thanks for letting us know. What extruder were you using before, and what steps/mm did it use @ x16 microstepping?



  • @dc42 said in CR-10S + Duet Wifi: Print Quality Issues:

    Thanks for letting us know. What extruder were you using before, and what steps/mm did it use @ x16 microstepping?

    His config file above shows 95 steps per mm @16X, which would indicate an ungeared extruder.


  • administrators

    @deckingman said in CR-10S + Duet Wifi: Print Quality Issues:

    @dc42 said in CR-10S + Duet Wifi: Print Quality Issues:

    Thanks for letting us know. What extruder were you using before, and what steps/mm did it use @ x16 microstepping?

    His config file above shows 95 steps per mm @16X, which would indicate an ungeared extruder.

    Thanks, Ian. In that case, using higher extruder microstepping would probably have fixed it.



  • @dc42 @deckingman Indeed. It was the stock CR-10S extruder which was ungeared with a 1.8 degree stepper. Really amazed by the quality difference the Bondtech BMG made, on both Marlin and the Duet 😃

    Keep up the great work!


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.