Probe Help



  • Hello! I'm grinding my way through setup and config for the first time. I've got X and Y dialed in, but I can't figure out what I'm doing wrong with my z probe. I'm using a piezo20 module. The config.g and homez.g files are below.

    Whenever I run a homing routine for Z I get:
    Error: in file macro line 5: G30: Z probe 0 not found
    Error: G0/G1: insufficient axes homed.

    Any thoughts on what's going on here?

    Thanks!
    -Ben

    homez.g:
    G91
    G1 Z5 F800 H2 ;RRF3 change S2 to H2
    G90
    G1 X150 Y150 F2400
    G30
    G1 Z2 F200

    config.g:
    ; Enable network
    M552 P0.0.0.0 S1

    ;General Setup - RailCore RRF on a SBC for Duet3
    G21 ;Work in millimetres
    G90 ;Send absolute coordinates...
    M83 ;...but relative extruder moves

    ; Stepper configuration
    M569 P0 S1 D3 ;Drive 0 Z Rear Left
    M569 P1 S1 D3 ;Drive 1 Z Front Left
    M569 P2 S1 D3 ;Drive 2 Z Right
    M569 P3 S1 D3 ;Drive 3 Extruder
    M569 P4 S1 D3 ;Drive 4 X / Rear
    M569 P5 S0 D3 ;Drive 5 Y / Front

    ;Axis configuration
    M669 K1 ;corexy mode
    M584 X4 Y5 Z1:0:2 E3 ; Map X to drive 0 Y to drive 1, Z to drives 2, 3, 4, and E to drive 5

    ;Leadscrew locations
    M671 X-10:-10:333 Y22.5:277.5:150 S7.5

    M350 X16 Y16 Z16 E16 I1 ;set 16x microstepping for axes with interpolation
    M906 X1400 Y1400 Z1200 E800 I80 ;Set motor currents (mA)
    M201 X2500 Y2500 Z100 E1500 ;Accelerations (mm/s^2)
    M203 X24000 Y24000 Z900 E3600 ;Maximum speeds (mm/min)
    M566 X800 Y800 Z100 E1500 ;Maximum jerk speeds mm/minute
    M208 X290 Y290 Z280 ;set axis maxima and high homing switch positions (adjust to suit your machine)
    M208 X0 Y0 Z0 S1 ;set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
    M92 X200 Y200 Z1600 E837 ;steps/mm

    ; End Stops
    M574 X1 S1 P"io2.in" ;Map the X endstop to io2.in
    M574 Y1 S1 P"io1.in" ;May the Y endstop to io1.in

    ; Thermistors
    M308 S0 P"temp0" Y"thermistor" A"bed_heat" T100000 B4240 H0 L0 ;Bed thermistor - connected to temp0
    M308 S1 P"temp1" Y"thermistor" A"e0_heat" T100000 B4725 C7.06e-8 H0 L0 ;duet3 e3d thermistor - connected to e0_heat

    ;Define Heaters
    M950 H0 C"out0" T0 ;Bed heater is on out0
    M950 H1 C"out1" T1 ;Hotend heater is on out1

    ;Define Bed
    M140 H0

    M307 H0 A90.0 C700.0 D10.0 S1.00 B1 ;Keenovo duet 3 configuration
    M307 H1 A310.1 C144.7 D2.6 S1.00 B0 ;E3D Hotend duet 3 configuration

    M570 S360 ;Hot end may be a little slow to heat up so allow it 180 seconds
    M143 S285 ;Set max hotend temperature

    ; Fans
    M950 F0 C"out5" ;Hotend fan on "out5" connector
    M106 P0 S255 H1 T50 ;enable thermostatic mode for hotend fan
    M950 F1 C"out4" ;Layer fan on "out4" connector
    M106 P1 S0 ;Layer Fan

    ; Tool definitions
    M563 P0 D0 H1 F1 ;Define tool 0
    G10 P0 S0 R0 ;Set tool 0 operating and standby temperatures

    ;Piezo Probe
    M558 P1 C"io0.in" I0 R0.4 F300 X0 Y0 Z0
    G31 X0 Y0 Z-0.1 P600

    T0 ;select first hot end


  • Moderator

    Your config looks like it's for RRF3. What Duet board are you using and what firmware version? Please send M122 and report the result here.

    Your M558 isn't quite right for RRF3. You're missing a travel speed (T) and a dive height (H). X0 Y0 Z0 isn't used anymore. And I0 isn't used either. To invert you would use an ! in front of the pin name.

    So once you confirm the firmware version is 3.1.1 try this M558 line.

    M558 P1 C"!io0.in" H5 F300 T6000 R0.4



  • Sorry for the delayed reply. Here's the relevant portion of the M112 output:

    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (standalone mode)
    Board ID: 08DJM-956L2-G43S8-6J9DG-3SJ6J-KB06G

    I updated the M558 line and I'm getting the same error. Sigh...

    Screen Shot 2020-07-20 at 8.09.04 AM.png



  • Well, I got it working. I had to convert from the analog probe type to digital, but now it's all good.

    Not at all sure why it wasn't working in analog mode, but whatever.


  • Moderator

    Well technically it's not an analogue probe as the probe type 1 would expect. Type 1 expects some sort of rising feedback as it approaches the bed, which obviously the piezo does not provide.

    https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_Mode_Num_1



  • Interesting. I was focusing on the config instructions from PrecisionPiezo which indicate that one should use Type1 for an analog setup, so I'm not sure quite what to read into that. The board has both an analog and a digital output...


  • Moderator

    I think the reasoning behind using the analogue setup was so that you could avoid using the fiddly pot to change sensitivity, so it was a bit of a misuse of the intended probe type. The P8 digital type was created for the piezo as I recall.

    I'm not really perfectly clear on the piezo setup anymore not that I ever really was, but maybe do some forum searches for recent posts on the piezo setup. There have been a few in the past few months that have gone through setting it up in the modern firmware and you can maybe get some better context from those.



  • @Phaedrux Ok. I'll look around. I've googled a bunch and I'm having a hard time figuring out the difference between P5 and P8. Filtered vs. Unfiltered isn't a distinction I understand intuitively, and that's the extent of the distinction in the docs I've found. How are these functionally different?


  • Moderator

    Think of unfiltered as a more direct, immediate, and sensitive.


Log in to reply