Piezo not triggering endstop



  • I have a piezo on my hotend. I am setting up a new printer. I have the same setup / settings that work fine on my other printer with duetwifi. I feel like I am doing something wrong here.

    I have the piezo setup, in the duetwifi control panel it shows the pressure when I touch the nozzle. But it is not triggering the endstop. I copied over the same config from the running printer so I am not sure why it wouldn't trigger if the probe shows pressure on the nozzle. See config below


    ; CoreXY sample config file for dc42 Duet firmware by Haga. Please use with care. Some of the settings needs to be changed to work with your printer. Read the duetWiki!
    ;*** https://duet3d.com/wiki/Duet_Wifi_Wiki

    ; Communication and general
    M111 S0 ; Debug off
    M550 BigBot ; Machine name (P + anything you like)
    M551 Preprap ; Machine password (used for FTP connections)
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address - If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M552 S1 ; Enable WiFi
    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Comms parameters for PanelDue
    M667 S1 ; set CoreXY mode

    ; Machine configuration
    M569 P0 S0 ; X Drive 0 goes forwards (change to S0 to reverse it)
    M569 P1 S1 ; Y Drive 1 goes forwards.
    M569 P2 S1 ; ZaZb - Motors - Forwards
    M569 P3 S1 ; E0 Drive 3 goes forwards 0
    M569 P4 S1 ; E1 Drive 4 goes forwards

    M574 Z2 Y2 S0 ; set endstop configuration (all endstops at high end, active high)
    M574 X1 S1 ; set endstop configuration

    M350 X16 Y16 Z16 E16 I1 ; Set 16x microstepping with interpolation

    M92 X100 Y100 Z400 ; Set axis steps/mm. Check that the printer really move as much as you tell it. Not more and not less.
    M92 E138.4:138.4 ; Set extruder steps/mm. Change this to match your extruder.

    M906 X800 Y800 Z800 E800 ; Set motor currents (mA). Increase if motor is to weak. Lower if motor gets too hot. 800-1000 is good for most.

    M201 X1500 Y1500 Z300 E500 ; Accelerations (mm/s^2). The acceleration, speed and jerk is a setting you can alter to try making the printer to print as nice as possible..
    M203 X12000 Y12000 Z1200 E800 ; Maximum speeds (mm/min)
    M566 X900 Y900 Z24 E800 ; Maximum jerk speeds mm/minute

    M208 X300 Y300 Z450 ; set axis maxima (adjust to suit your machine)
    M208 X0 Y0 Z0 S1 ; set axis minima (adjust to make X=0 and Y=0 the edges of the bed)

    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Z probe
    M558 P1 I0 R0.2 F500 X0 Y0 Z1 ; Analog Z probe, also used for homing the Z axis
    G31 X0 Y0 Z-0.1 P700 ; Set the probe height and threshold (put your own values here)

    ; Thermistors and heaters

    ;*** You can use S and B parameters to define the parameters of the thermistors you are using. Standard 100k thermistor from E3d is 4388 or 4725.
    M305 P0 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
    M305 P1 T100000 B3950 R4700 H0 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    ;M305 P2 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction

    M570 S120 ;Increase to allow extra heating time if needed

    ;*** Bed Heating Controls & Max Tem
    M143 H0 S140

    ; Fans
    M106 P1 T45 H1 ; enable thermostatic mode for fan 1 at temp 45 degrees. Fan turns on when P1(extruder 1) is above 45 degrees.

    ; Tool definition
    M563 P1 D0 H1 ; Define tool 0
    G10 P1 S0 R0 ; Set tool 0 operating and standby temperatures

    ;*** If you have a dual-nozzle build, un-comment the following 3 lines
    ;M563 P0 D1 H2 ; Define tool 1
    ;G10 P0 S0 R0 ; Set tool 1 operating and standby temperatures

    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0 ; Axis compensation here
    M208 S1 Z0 ; set minimum Z
    M501 ; Load Config-Override.g that is created using M500
    T0 ; select first hot end



  • Your Z endstop is configured at high end active low.
    And you have defined Z probe as well (this is your piezo i guess), but you didnt tell firmware to use probe as endstop. So edit your M574 commands as needed :
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration



  • If you're using the piezo as endstop, then don't use the Z endstop.

    ; Endstops
    M574 X2 Y2 S0                    ; Set active low endstops
    

    This is configured for a PrecisionsPiezo v2 board, I'm pretty sure that any of their other products would be similar, though you might choose different height/speed.

    ; Z Probe
    M558 P8 H8 F780 I1 T9000 R0.8 Z1 ; Set Z probe type to unmodulated and the dive height + speeds
    

    I see that the Z1 parameter is now marked as obsolete.

    P8 sets the piezo as unfiltered, and is somewhat better than P1

    H8 sets the dive height. I wanted a bit more so that I could use really low accel and reach the higher speed when I was debugging.

    F780 was to get 13mm/s. this is faster than needed, and was set that way for debugging when I was dialling things in (The example is from an older backup of my config.g file.)

    I1 to invert the signal,

    T for travel speed. I guess I just wanted "as fast as the axes were defined."

    and R for a delay to let the printer settle and avoid false triggers.


  • administrators

    It's your homez.g and homall.g files that we really need to see.



  • ;homeall.g

    G91 ; relative mode
    G1 S1 X-240 Y240 F3000 ; course home X or Y
    G1 S1 X-240 ; course home X
    G1 S1 Y240 ; course home Y
    G1 X4 Y-4 F600 ; move away from the endstops
    G1 S1 X-10 ; fine home X
    G1 S1 Y10 ; fine home Y
    G1 S1 Z-240 F3000 ; z home



  • The last line is in error. Also, I would modify a couple of the other ones.

    ;homeall.g
    G91                    ; relative positioning
    G1 Z5 F6000 S2         ; lift Z relative to current position
    G1 S1 X-240 Y240 F3000 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 S1 X-240 F3000      ; coarse home X
    G1 S1 Y240 F3000       ; coarse home Y
    G1 X4 Y-4 F3000        ; back off from endstops
    G1 S1 X-10 F300        ; fine home X
    G1 S1 Y10 F300         ; fine home Y
    G90                    ; absolute positioning
    G1 X120 Y120 F3000     ; center hotend
    G30                    ; Z probe home
    

    This is modified from mine to do the CoreXY specific stuff, with the coarse/fine homing, and dimensions matching to what you might be using. I am assuming that the X=120,Y=120 is the center point of your bed, but it probably does not matter. The important point here is the G30 in order to do the Z probe. I also included (Present in mine) the 5mm lift of the Z axis at the start. This will also ensure that you should have some distance to do the actual Z probe.

    EDIT:

    |The reason why I said that the last line was in error, is that it would require that the piezo sensor be connected to the Z axis endstop pin, instead of to the Z probe pin. It certainly appeared from your config.g line up there that you are using the Z probe input and not the Z endstop on the Duet.



  • @supraguy said in Piezo not triggering endstop:

    ;homeall.g
    G91 ; relative positioning
    G1 Z5 F6000 S2 ; lift Z relative to current position
    G1 S1 X-240 Y240 F3000 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 S1 X-240 F3000 ; coarse home X
    G1 S1 Y240 F3000 ; coarse home Y
    G1 X4 Y-4 F3000 ; back off from endstops
    G1 S1 X-10 F300 ; fine home X
    G1 S1 Y10 F300 ; fine home Y
    G90 ; absolute positioning
    G1 X120 Y120 F3000 ; center hotend
    G30 ; Z probe home

    That was it. Thank you. Now I have to figure out why this works on my first printer. Appreciate it.


Log in to reply