Wednesday 27 May 2020

Replacing the Davinci 1.0 Pro Extruder with the WINSINN Ender 3 Dual Gear Extruder


For my 7 year old Davinci 1.0 Pro printer, the extrusion has become unreliable.  I first put this down to blockages in the head, then the head itself, but replacing the head with an E3Dv6 did not really help much - yes, it can print in PETG with a 0.6mm nozzle, but can't print with PLA or with anything with a 0.4mm nozzle without the extruder skipping.

Model Suffering From Extrusion Problems


I bought an aluminium Ender3 dual-gear extruder, which actually bolts in in place of the default Davinci Pro one.  The new extruder is much simpler, and works fine without the sensor electronics that are part of the Davinci Pro system.

The following summary shows how the modification affects the printer.
  1. Loading filament works fine.
  2. When unloading, the printer no longer knows when to stop, so you have to select 'OK' manually.
  3. The size of the gear is smaller, and when you tell the printer to pass 100mm of filament, it passes a shorter length, so a compensation is required in the slicer.



  • Unload any filament currently being used.
  • Unclip the panel behind the printer (that the filament feeds through)
  • Open the lid and identify the location of the lid switch - you will need to avoid this.
  • Using the flat blade scraper, pop-off the left and right panels.
  • Reaching underneath, release the extruder cover and pull this away.
  • Disconnect the cable to the extruder sensor assembly.
  • Remove the complete extruder sensor assembly to the state where the motor is free-floating.
  • Note that the connector to the sensor board is not required, and can be left disconnected.


Assembly Steps

Step A

  • Temporarily hold the motor in place with the small flat-headed screw
  • Using a small allen key, undo and remove the old drive teeth
  • Install the new drive teeth ensuring that the cog/gears are at the bottom.
  • loosely tighten the allen key such that the gears turning also turns the spindle.

Step B

  • Install the base part of the assembly using three screws, ensuring the countersunk screw is in the correct location.
  • Adjust the height of the gears using a piece of filament as a guide

Step C

  • Prepare the clamp part of the assembly, spring and screws as shown in the photograph

Step D

  • Install the spring between the captive screw and adjustment cap
  • Hold closed and install the long vertical bolt
  • Undo / tighten the spring tension screw until the spring just starts to rotate

Calibration Measurement

The new gearing has a different ratio to the original XYZ mechanism.  Extrusion is achieved using GCode commands which tell the motor to expel, say, 100mm of filament.  With a crafted gcode file, it is possible to measure the actual extrusion amount enabling an adjustment factor to be calculated.

This calibration section is optional - i.e. everyone _should_ get a similar answer, given the same original printer gearing and software, the same modified extruder gearing, and the same filament type and same environmental temperature ....

The following GCode achieves this:

G21 ; set units to millimeters
M108 ; Check Temperatures
M107 ; Fan Off
G90 ; use absolute coordinates
G92 E0
G28 X0 Y0 ; home X and Y axes
Extrude 5mm
G1 F500 E5
; First Move ready to extrude 100mm
G1 X50 Y100
Extrude 100mm
G1 F500 E105
; Second Move ready to retract 100mm
G1 X150 Y100
Retrieve 100mm
G1 F500 E5
M103 ; turn off extruder and retraction
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
M107 ; turn off fan
G28 X0 Y0 ; home X and Y axes
M84 ; disable motors
M82 ;absolute extrusion mode

  • Put a short length of filament into the feeder, and mark the position with an indelible marker as it goes into the feeder.
  • Paste the GCode into a file called 100mmextrude.gcode
  • Load this file into the XYZ software and send to the printer.
  • The printer will warm up and then home the head.
  • It will attempt to pass through 5mm of filament - at this point, mark the filament at the location where it goes into the feeder.
  • The printer will move the head (to give you time to mark) and then extrude 100mm of filament
  • Mark the new filament location.
  • The printer will move the head again before retracting the 100mm of filament - you should see your previous mark again.
  • Once the sequence is complete, remove and measure the distance between the two "100mm" marks.

If nothing changes, everyone should get a similar reading - which, for me was 70mm.

100mm Extrusion Filament Marking

Software Configuration

The printer does not give you access to program / configure the gear ratio,, nor does it support the M92 gcode command that would allow you to specify the extruder stepper ratio, so this has to be done in the slicer, when generating the GCode files for printing.

With the calibration measurement, an adjustment of 100/70 can be made for the extruder, i.e. 143% - i.e. the software needs to be told to use 143% of the filament it is expecting.

The option can be found in different places, depending on which slicer you are using:

  • Cura: Flow Rate
  • Slic3r: Filament Extrusion Multiplier
  • XYZ: Extrusion Ratio
Note that I have tried to use the Cura (4.5.0) Experimental Flow Rate Compensation Factor, and this did not appear to affect the resulting gcode file (apart from adding a comment in the header).

Note that this isn't an exact science (well it is, but the maths and the number of variables are far to complicated), and there are other aspects that are taken into consideration with the compensation factor - different filaments expand at different rates at different temperatures, so this factor will need tweaking for each filament supplier and material (just as before), but it now needs tweaking with more of an offset than before!

No comments:

Post a Comment