Percision peizo probing help



  • I just installed a precision peizo, and updated to firmware 3.1.1..
    The probe shows 0 and 1000 when hit in DWC so it seems that probe is being read by the firmware..
    but when probe hits the bed it gives an error message every time, Error: Z probe was not triggered during probing move.

    I see the DWC probe led light up and change to 1000 so that look good, so i am assuming that i have something set wrong in the firmware..

    This is what i have for the probing.
    M558 P8 R0.4 C"!zprobe.in+zprobe.mod"H5 F300
    G31 P500 X0 Y0 Z2.5

    I have tried Feed rate's from 300 to 1800 with the same results .
    any suggestions?

    Gary


  • Moderator

    Please post your full config.g and homeall file.

    Your M558 and G31 aren't quite right maybe. You're lacking a travel speed.

    Increasing the probe speed in M558 will still be limited by the M203 max speed limit for the Z axis, so make sure it's set to allow for your faster dive speed.

    This is what I got from the configurator (plus some modifications based on posts from the precision piezo thread though I'm not sure if it's applicable to your module. https://forum.duet3d.com/topic/2671/precision-piezo-z-probes-guide-for-duet-users-reference/143)

    ; Z-Probe
    M558 P5 R0.4 C"zprobe.in+zprobe.mod" H5 F2400 T6000    ; set Z probe type to effector and the dive height + speeds
    G31 P250 X0 Y0 Z-0.1                                   ; set Z probe trigger value, offset and trigger height
    

    P5 or P8 should both work, though I think P8 is preferred. Both are for switch inputs, but P8 is unfiltered, so possibly more sensitive to triggering. Some people like to use P1 for analgue signal so they can tune the sensitivity that way instead of using the adjustment pot, but that has issues of it's own.

    Whichever switch type you choose, the dive speed is critical for the piezo to trigger, and if the z axis maximum speed is set too low you might not be able to go fast enough, so check that first.



  • Thanks I checked the feed rates they should be fast enough i tried a probe at F2400 and same results but i can see the feed rate differently was faster..
    so here is my config.g and homeall files

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Jul 19 2020 16:48:57 GMT-0400 (Eastern Daylight Time)
    G91                        ; relative positioning
    G1 H1 X320 Y320 Z320 F1800 ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 X-5 Y-5 Z-5 F1800    ; go down a few mm
    G1 H1 X10 Y10 Z10 F360     ; move all towers up once more (second pass)
    G1 Z-5 F2100               ; move down a few mm so that the nozzle can be centred
    G90                        ; absolute positioning
    G1 X0 Y0 F2100             ; move X+Y to the centre
    
    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Jul 19 2020 16:48:57 GMT-0400 (Eastern Daylight Time)
    
    ; General preferences
    G90                                                 ; send absolute coordinates...
    M83                                                 ; ...but relative extruder moves
    M550 P"My Printer"                                  ; set printer name
    M665 R170 L288 B85 H300.58                             ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0                                       ; put your endstop adjustments here, or let auto calibration find them
    
    ; Network
    M551 P"gorf"                                        ; set password
    M552 S1                                             ; enable network
    M586 P0 S1                                          ; enable HTTP
    M586 P1 S0                                          ; disable FTP
    M586 P2 S0                                          ; disable Telnet
    
    ; Drives
    M569 P0 S0                                          ; physical drive 0 goes forwards
    M569 P1 S0                                          ; physical drive 1 goes forwards
    M569 P2 S0                                          ; physical drive 2 goes forwards
    M569 P3 S1                                          ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                                    ; set drive mapping
    M350 X32 Y32 Z32 E32 I0                             ; configure microstepping without interpolation
    M92 X200.00 Y200.00 Z200.00 E873.08                 ; set steps per mm
    M566 X1200.00 Y1200.00 Z1200.00 E1200.00            ; set maximum instantaneous speed changes (mm/min)
    M203 X8000.00 Y8000.00 Z8000.00 E1200.00            ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z1000.00 E1000.00            ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E800 I30                     ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                             ; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                          ; set minimum Z
    
    ; Endstops
    M574 X2 S1 P"!xstop"                                 ; configure active-high endstop for high end on X via pin xstop
    M574 Y2 S1 P"!ystop"                                 ; configure active-high endstop for high end on Y via pin ystop
    M574 Z2 S1 P"!zstop"                                 ; configure active-high endstop for high end on Z via pin zstop
    
    ; Z-Probe
    M558 P5 R0.4 C"!zprobe.in+zprobe.mod" H5 F2400 T6000       ; set Z probe type to effector and the dive height + speeds
    G31 P250 X0 Y0 Z-.1                                 ; set Z probe trigger value, offset and trigger height
    M557 R85 S20                                        ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138      ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                               ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B1 S1.00                                    ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                             ; map heated bed to heater 0
    M143 H0 S120                                        ; set temperature limit for heater 0 to 120C
    M308 S1 P"spi.cs1" Y"thermocouple-max31855"         ; configure sensor 1 as thermocouple via CS pin spi.cs1
    M950 H1 C"e0heat" T1                                ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                                    ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"fan0" Q500                                ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0.25 H-1                                   ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                                ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H-1                                      ; set fan 1 value. Thermostatic control is turned off
    
    ; Tools
    M563 P0 D0 H1 F0                                    ; 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
    
    ; Custom settings are not defined
    code_text
    

    Gary


  • Moderator

    ah ok, I see now it's a delta.

    How is the piezo mounted?



  • Its on an ed3 v6 hot end with the mounting hardware that came with the piezo screw mounted to a metal effector.

    this is the older version of the percision piezo..
    I have a newer one on my other printer so i swapped it out.. but this one is giving me a different problem, go figure!

    the newer one seems to trigger and stop much better, but always a but..
    after it probes and triggers it will not set back to 0 it stays at 1000 i have tapped on it pulled it down a tad and loosen the screws but stays triggered the probe blue led go's on at hit and right off, so confused again the only way to get the probe to reset to 0, is to reboot the duet..

    Gary


  • Moderator

    Is that the orion version? Does the link I posted above give you any ideas? sorry, I haven't used the piezo probe myself, so my ability to help is a bit limited.



  • @gorf26 - have you checked your wiring? Assuming it's an Orion module like mine (but I think it's the same for the Universal and old Piezo20?), you don't need to use the Mod pin in the Duet
    If it helps, here is my lines for my Orion on my CoreXY.

    M558 P8 C"!zprobe.in" R0.6 H2.5 F400 T4000 A10 S0.02  ; Set Z probe type to effector and the dive height + speeds
    G31 P250 X0 Y0 Z-0.1 ;    Set Z probe trigger value, offset and trigger height
    

    My feedrate is a bit lower than yours, but it's as fast as my Z-axis can handle... I also use it in 'P8' as the unfiltered response is faster

    Have you played around with the variable potentiometer on there - if you set those wrong, it can muck up the output and possibly get the odd triggering you're mentioning. Precision Piezo have a guide: https://docs.wixstatic.com/ugd/e08222_ae707c20a0cf418b8393b44368370576.pdf

    Also, I found that if I used thick wires to the Orion, that made it act funny. My theory is that the cable was acting as a load path so the piezo element didn't get enough of a hit to trigger all the time. I just un-sheathed ~2inches of cable and that seemed to fix it. Might be worth checking to see if any of your other hot-end wiring could be doing similar things



  • Yep double checked the wiring test today with my meter just to make sure all wires were getting signal from the duet to the piezo all was good.

    yes its a Orion, i tried 2 different one's , one was the older version, and i just hooked up the newer version it has to wire connectors one if you want to use analog and the other for digital ..

    I did mess with the pot on the older one but haven't messed with it on the newer one.
    Right now i have the newer one connected. and seems fairly sensitive, just a slight tap will trigger the blue led
    so didn't want to mess with the pot if i don't have to.

    The problem is when i sent a G30 s-1 it will hit the probe and stop, but never resets to 0 in the firmware so after the first hit the firmware always thinks the probe it triggered, the only way to reset the probe back to 0 is reboot the duet board...

    also i did remove the zprobe.mod from the firmware i was not wired to the zprobe.mod pin only probe,in .

    and to phaedrux i did check out the link but did not help much, thanks..
    seems that i have a strange problem..

    Thanks gary


  • Moderator

    I looked into the zprobe.mod part and it's selected because in the config tool the piezo probe is lumped in with the smart effector, which does use the mod pin. It shouldn't cause any issues being included in the M558 command, but removing it is fine too.

    It sounds like you need to tune the pot for sensitivity?



  • Just a new update,

    I decided to put the newer peizo on my duet maestro and see how it works i have the older Orion already mounted on there and it's working fine, so i connected up the newer version Orion and it seems to be working fine on the maestro when it's trigger's i get the 1000 reading and then back to 0, i also have firmware 3.1.1 on the maestro...

    So could there be a problem with the duet wifi's probe input on the board, because no matter what i do it seems to trigger once then the duet thinks it always on and i have to reboot the duet to reset probe to 0 off.

    Thanks gary


  • Moderator

    @gorf26 said in Percision peizo probing help:

    M558 P8 R0.4 C"!zprobe.in

    You could try enabling the pullup resistor with ^
    M558 P8 R0.4 C"!^zprobe.in"



  • Thanks

    what i just did after some though, i connected it to the E1Stop i'm not using it anyway and it seems to be triggering on and off haven't tried probing yet but at least its going 0 to 1000 and back to 0...

    Do you still think the resistor will make any difference on the probe.in?.

    Gary


  • Moderator

    @gorf26 said in Percision peizo probing help:

    Do you still think the resistor will make any difference on the probe.in?.

    I'm not sure. Shot in the dark on my part.



  • @gorf26 said in Percision peizo probing help:

    yes its a Orion, i tried 2 different one's , one was the older version, and i just hooked up the newer version it has to wire connectors one if you want to use analog and the other for digital ..

    I am using both "old" setup and the orion.
    Old ones work rather nicely on digital input with RRF but I could not make ORION work for the life of me. I fiddled for a month and finally contacted PP guy's and they told me to use ORION's ANALOG output with duet and so I did. If you look at your orion there is both digital and analog output. Digital output trigger is configured with that #$^(#%&^#_&^@$+^ trimmer on the board and in most cases just don't work. On the other hand analog signal is more less what's happening on the sensor itself. Route the analog signal to the zprobe.in input on the duet and you are golden. Two things to consider

    1. it must be zprobe.in as it is the only analog input pin available, all the endstop pins are digital only
    2. use a coax cable (microphone cable will work) to pass analog signal from the A output on the orion to the zprobe.in on the duet. If you use normal wire the surounding noise from the motors and motor drivers and heaters will affect repeatability

    Use RRF3.1.1 and configure your analog proble "on the fly"

    so, the main configuration of the probe goes like this:

    M558 P1 C"!zprobe.in" R2 H6 F2400 T3600 A4 S0.03 K0 
    G31 X0 Y0 Z-0.1 P250 
    

    and in your homing script you do something like this:

    homeall.g

    M98 P"homex.g"
    M98 P"homey.g"
    M98 P"wipe.g"
    M98 P"homez.g"
    

    and homez.g

    ; HOME Z WITH ORION
    
    M400 ; WAIT FOR ALL MOVES TO FINISH
    
    T0
    G90
    G0 X0Y0 F3000           ; go to center of the bed, complain if X or Y not homed
    G91                     ; relative positioning
    ;G0 Z5   F900  H2        ; drop bed for 5mm
    G90                     ; absolute positioning
    G4S3                    ; wait 3sec
    
    G31 P{sensors.probes[0].value[0] + 2}
    
    G30                     ; Probe the bed at the current XY position. 
                            ; When the probe is triggered, set the Z coordinate 
                            ; to the probe trigger height.
    

    This will set the treshold just befor you start probing for Z

    In order to do mesh stuff properly you want to make your bed.g to do something like this

    ; bed.g
    ; called to perform automatic bed compensation via G32
    
    G29 S2 ; delete compensations
    M561   ; clear any bed transform
    G28    ; home
    G4 S1
    M400
    G31 P{sensors.probes[0].value[0] + 2}
    G29 S0 
    

    and do G32 to do a mesh leveling instead of G29

    I hope this helps.

    now, with the precise piezo boards that do not have analog output I strongly recommend, for those who knows how to solder, replacing those @^$()&$^(&!@$##!&%^_+#^( trimmers with a proper multiturn pot as that will make setting a trigger point possible



  • one other thing, RRF v3.1.1 will not do a probe at the speed configured with M558 because for analog probe RRF assume you are using IR probe and that analog value is proportional to the distance from the bed. This is why RRF will start probing at configured speed and then drop the speed when "close to bed". With ORION you have non stop value "close to bed" till it triggers so the probing is done much slower than configured in M558. @dc42 promissed to change this for 3.2 so that we can define a probe for piezo properly. Note that when you are probing with piezo too slow the value will not change enough for the probe to be recognised so you want to increase the probing speed in order to have piezo detect the colision properly. Also you want to drop jerk and acceleration of Z axis to a very low value so you do not vibrate the sensor into triggering when you start the probing move. And finally, fairly important hint, you want to wipe your hotend before you start probing so make sure you have your wipe procedure working ok.



  • Thanks When i setup analog before i was not getting a good trigger variation i am assuming..
    probe no hit it was 475 to 480 when hit signal went maybe up to 490 sometimes to 500 not enough for duet to see probe was hit I'm thinking,
    I was a little nervous also about adjusting the pot and toughing things way off...

    I don't have the probe mounted right now i just connected it to the E1stop pin and i have tried 10 or 15 g31 moves and just tapped the probe and it seems to be stopping the axis right away every time, of course every thing can change when i remount it to the effector... i am thinking that the problem is with the zprobe.in pin on the duet so if thats the case i don't think analog will work correct either.

    also not sure if your homing will work i only have the deltahome.g no home x y or z files

    I have increased homing speeds from 300 up to 2400 before with no change.. but now that i have a signal on the e1stop, from the looks of it, it may work..

    of course now that i may have it working, and after i removed it, i just have the hotend mounted to the effector, also i spent all day yesterday doing manual bed leveling, almost hate to swap it back and start all over..

    also right now my hot end is clean, i cleaned it put new tip and have no filament in.

    Thanks gary



  • @gorf26 said in Percision peizo probing help:

    Thanks When i setup analog before i was not getting a good trigger variation i am assuming..
    probe no hit it was 475 to 480 when hit signal went maybe up to 490 sometimes to 500 not enough for duet to see probe was hit I'm thinking,
    I was a little nervous also about adjusting the pot and toughing things way off...

    The potentiometer on board does not affect analog output. Those smd trimmers are only good for up to 20 "moves" and then they go bad, and they are inprecise to begin with. Using analog output you solve that problem.

    If you didn't use coax cable (for e.g. shielded microphone cable, or shielded balanced audio cable or something like that) to link analog output to the zprobe.in you had a lot of noise picked up by the wires and the noisy trigger is not nicely handled by the RRF (questionable if even possible). I for e.g. use balanced audio cable, there's a twisted pair that's additionally shielded, one of the pair wires I connect to analog output, other to ground on both sides, of course. The shiled of the cable on the duet side I connect to ground and on piezo side I do not connect anywhere. This kills the noise almost completely.

    I don't have the probe mounted right now i just connected it to the E1stop pin and i have tried 10 or 15 g31 moves and just tapped the probe and it seems to be stopping the axis right away every time, of course every thing can change when i remount it to the effector... i am thinking that the problem is with the zprobe.in pin on the duet so if thats the case i don't think analog will work correct either.

    Analog will work much better than digital output.

    You need to make sure, of course, that the sensor is properly placed. If you put sensor outside and tap it by hand it is very different from probing as you tap it faster than it bends during probing, also it's not constrained in the head. Dunno what mount style you use but if you go with similar to what they are selling (grove style) the 4 screws that compress the orion, they should be only fingertight, if you overtighten them the probe won't work.

    also not sure if your homing will work i only have the deltahome.g no home x y or z files

    I don't do delta so you have to use the idea from my homing and apply to delta. The general idea is to bring the nozzle close to probing point, do not move anything for few seconds and then do

    M400
    G4S1
    G31 P{sensors.probes[0].value[0] + 2}
    

    M400 will wait for all moves to stop
    G4S1 will wait for 1 sec for everything to stop shaking
    G31... will read the current probe value and set threshold value to that value + 2

    So this will dynamically set threshold just before you start probing. If you get trigger before you touch the print plate increase the +2 to something bigger (+3 or +4). If you do not trigger on touch with +2 you need to increase probing speed.



  • Thanks a lot i will give it a try, i need to re design a new top screw mount for the pizeo, when mounted to the all metal effector, the bowden tube fitting is to far down to release if i need to pull the tube.

    I have it drawn up just need to print it now hopefully my manual bed leveling is good, will be giving it a go this afternoon...

    if it go's well i will test out your suggestions..

    Thanks Gary



  • @Phaedrux

    You may be right i just received a reply from Idris and he said you need a pullup resistor in digital mode but not in analog..

    I had trouble getting it printing again but got a good cube printed today so will be printing a new mount and get the piezo remounted and see how it go's..

    just a thought do you know if the E0Stop is set to pullup, it do's seem to work on that connector...,? but I will go back to the zprobe.in with pullup and see how that goes

    He also said in analog mode the pot has no effect.

    Gary



  • sorry to bring the piezo back up, but i had to redesign a mount for my all metal effector.
    I have it mounted now and running... in digital mode..

    Most of the suggestion's are to use analog, i have tried all different combinations in the firmware but no matter what i always seem to have a high signal, in the DWC it shows 478 or so when booted, and when probe is hit it only changes to around 480 485. never go's to 0.

    When i do a probe move i always get the message probe triggered so no movement is started..

    I have tried with pullup's on and off and also inverted on and off, the same results.

    Thanks gary



  • The probe doesn't need to go back to zero it just need to go to roughly the starting value. The "zero" is the value that the probe is at baseline (with some leeway for temperature fluctuation) that you set a trigger value above which it triggers. For you I'd set my trigger value to 480 and see if it works. DWC should go from grey to red when the value goes above the trigger value. If you are on analogue the Pot doesn't change the trigger value - you need to change the config files instead.

    The other thing I found with them is they are very sensitive to how tight you have the screws and work best when it's on the slightly looser side (but not loose enough to cause the hotend to move). I've been mounting my piezo disc on a bit of car gasket maker which makes the discs a bit more robust to head strikes and over tightening. I can't find a picture right now unfortunately. Piezo's are a pain to get working because you have to redesign everything around them but they're great when they do.

    The other thing that is worth mentioning with a delta is an under bed sensor might be better as you have a static Z (really wishing I went the Voron route right now!) which makes designing a hot end as easy as it gets.



  • You are right the 478 is ok i found that if i set the g31 pXXX in config.g to somewhere between 5 to 15 higher it does work so 478 + 5 to 15, you will have to play with it but it works i did a g32 and had no miss hits probed good..

    Thanks gary



  • Hi,

    has you try to do a test of Precision Piezo

    with this gcode

    G30 S-1
    

    And works?

    Maybe, the height that PPO low searching the bed its not enought
    and no encounter bed



  • Yes have used G30 S-1, i have had it, or as it seemed working ok with G30 S-1,,
    But when i try a G32 it will seem to probe ok then at one point or another it may probe good with the first hit then retract and on the second hit it messes up either hits and skids a few steps across the bed or i get the message no probe hit, it just seem to be very erratically and i can't get it working right, so for now i pulled it and went back to my old setup and i am doing a manual probing for now...
    I tried different wire's all kinds of different settings in the firmware but with same results starts off looking good then at one point messes up and not always the same probe point.
    Its a delta so i may just switch to the duet effector probe.. hopefully that will work better..

    Thanks gary


Log in to reply