Syringe-pump extruder endstop

  • Hey everyone,

    I have a cartesian printer running with a Duet3D wifi board (Firmware 1.21).
    I replaced my PLA extruder with a custom serynge-pump powered by a nema 11 stepper motor (11HS18-0956S)

    All I want is to be able to "home" my syringe-pump with an endstop in order to place a filled syringue

    My stepper motor is linked to the E0 driver and my endstop (hall-e sensor) to the E0 endstop.

    Unfortunately this gcode doesn't seem to work :
    G1 S1 E-100 F360

    I looked also to configuring a filament-out sensors in my config.g file following this guide :
    M591 D0 P1 C3 S1
    but it doesn't work when I try this in the g-code console :
    G1 E-100 F360

    Do you have any suggestions?


  • administrators

    I suggest that you define the syringe pump motor as both a new axis and an extruder in M584. You can hide the new axis most of the time, but make it visible during homing, and home it like any other linear axis.

  • Thank you DC42.

    I followed the "Configuring multiple independent X-carriages on a Cartesian printer" tutorial to create a new axis.

    Now, I'm able to see my new U axis under "Additional Axes" section in the DWC but homing or moving U through the interface doesn't produce anything.
    I guess now I should map the U axis to the extruder.
    Nevertheless M563 command parameter "Xnnn" and "Ynnn" allow me only to map the X or Y axis.

    How I can map the U axis to the extruder?

    Thank you

    Here is my config.g :

    ; Drives
    M569 P0 S1                      ; Drive 0 goes forwards
    M569 P1 S1                      ; Drive 1 goes forwards
    M569 P2 S1                      ; Drive 2 goes forwards
    M569 P3 S1                      ; Drive 3 goes forwards
    M569 P4 S1 			; Drive 4 goes forwards
    M584 X0 Y1 Z2 U3 E4 		; Create U axis
    M350 X16 Y16 U16 Z16 E16 I1     ; Configure microstepping with interpolation
    M92 X800 Y800 U800 Z800 E800    ; Set steps per mm
    M566 X900 Y900 U12 Z12 E12      ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 U180 Z180 E180 ; Set maximum speeds (mm/min)
    M201 X20 Y20 U250 Z250 E250     ; Set accelerations (mm/s^2)
    M906 X800 Y800 U800 Z800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                         ; Set idle timeout
    ; Axis Limits
    M208 X0 Y0 U0 Z0 S1             ; Set axis minima
    M208 X165 Y165 U100 Z100 S0     ; Set axis maxima
    ; Endstops
    M574 X1 Y1 U1 S1                ; Set active high endstops
    ; Z-Probe
    M574 Z1 S2                      ; Set endstops controlled by probe
    M558 P1 H5 F120 T600            ; Set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X0 Y32 Z2.5            ; Set Z probe trigger value, offset and trigger height
    M557 X50:100 Y20:60 S20         ; Define mesh grid
    ; Heaters
    M140 H-1                        ; Disable heated bed
    ; Fans
    M106 P0 S0 I0 F500 H-1          ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H T45        ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S0 I0 F500 H-1          ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off
    ; Tools
    M563 P0 D0 H                    ; 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

    and my homeu.g

    G91               ; relative positioning
    G1 Z5 F6000 S2    ; lift Z relative to current position
    G1 S1 U-100 F1800 ; move quickly to X axis endstop and stop there (first pass)
    G1 U5 F6000       ; go back a few mm
    G1 S1 U-100 F360  ; move slowly to X axis endstop once more (second pass)
    G1 Z-5 F6000 S2   ; lower Z again
    G90               ; absolute positioning

  • administrators

    I suggest you connect your extruder to E0 and use this in config.g:

    M584 X0 Y1 Z2 U3 E3 P3 ; create U but hide it

    Make sure you set both U and E to the same microstepping in M350.

    In homeu.g do this before the first G1 S1 U move:

    M584 P4 ; make U visible

    After the last U move do this:

    M584 P3 ; hide U again

  • Thank you DC42!

    It's works like a charm!

  • administrators

    I'm glad it's working for you. I recommend you use firmware 2.01 because it fixes a bug in earlier versions to do with moving axes and then hiding them.

Log in to reply