Piezo-Probe to auto-adjust offset after Nozzle change
-
The Piezo Disc itself is easy to get! But it is always used with a special "converter board". This is hard to get- and I don't know exactly what this baord is doing?
-
@kuhnikuehnast said in Piezo-Probe to auto-adjust offset after Nozzle change:
I don't know exactly what this baord is doing?
Amplification I believe. The piezo creates a very very small electrical current. It needs to be amplified to be meaningful.
-
There are several possibilities, even including connecting the disk directly to an analog input of your controller (protective diodes may be advisable). The output of a piezo disk is actually very high, see the first entry in https://reprap.org/forum/read.php?1,635075 where an output of 8V was obtained from a 27mm piezo disk. The conditioning circuits are more to clean up the signal to get a reliable and consistent detection of a contact event.
It sounds like you want to use a puck-type detector which can be used to get the Z probe offset from the BLTouch device. There is a puck probe called the BIQU marketed by Aliexpress which they used to call a piezo probe - I have heard nothing either good or bad about it though.
I hope to put the 4th generation of my piezo conditioning board on GitHub in the near future. The older one was left in a pretty incomplete state but my latest software (the hardware is unchanged) seems to be pretty bulletproof.Mike
-
So, I now got a Piezo-Board But I am still struggling to get it to work properly...
Here is the code I want to use:
; ////////// Messung Nr. 1 ////////// G92 Z50 ; define Z=50 to move outside boundaries M118 P3 S"Messung Nr. 1" L3 ; print "Messung Nr. 1" M558 P5 C"!zstop" F60 T3000 ; define Z probe connected to Z endstop input (Precision Piezo) M950 S0 C"nil" ; free So (former BLTouch input) G30 ; Probe bed at current position. When the probe is triggered, set the Z-coordinate to the probe trigger height. G31 Z0 ; set Z-offset to 0 G91 ; Set to Relative Positioning G1 X-21.000 Y-19.285 Z+10 ; move to position of BLTouch and Z+10 G90 ; absolute Positioning M558 P9 C"^zprobe.in" F180 T15000 ; Define to use BLTouch (Set Z probe type/mode 9. H=Dive Height. F=Speed the bed moves) M950 S0 C"exp.heater3" ; Create Servo S0 mapped to exp.heater3 (used for BLTOuch) M564 S0 H1 ; Allow movement outside boundaris, denie movement of axes that not have been homed G30 S-1 ; Measure Z and only report the parameter G91 ; relative Positioning G1 X+21.000 Y+19.285 Z+10 ; go back to nozzle point Z+10 G90 ; relative Positioning
My problem at the moment: It seems like the Piezo is triggered like "randomly"... (if I look at the nozzle, there is still an offset between nozzle and the piezo-disk when it triggers...)
-
@kuhnikuehnast Does the piezo board have a tuning pot?
G30 ; Probe bed at current position. When the probe is triggered, set the Z-coordinate to the probe trigger height.
G31 Z0 ; set Z-offset to 0
G91 ; Set to Relative PositioningHow are you setting the Z0 position first before sending G30 S-1 to measure the offset?
You need to set the nozzle height to a known position before you can accurately measure the trigger height. Usually this would be touching the nozzle to the bed and sending G92 Z0.
-
@Phaedrux said in Piezo-Probe to auto-adjust offset after Nozzle change:
@kuhnikuehnast Does the piezo board have a tuning pot?
G30 ; Probe bed at current position. When the probe is triggered, set the Z-coordinate to the probe trigger height.
G31 Z0 ; set Z-offset to 0
G91 ; Set to Relative PositioningHow are you setting the Z0 position first before sending G30 S-1 to measure the offset?
You need to set the nozzle height to a known position before you can accurately measure the trigger height. Usually this would be touching the nozzle to the bed and sending G92 Z0.
I drew a scheme:
At first, I home the printer with the normal routine, using the BL-Touch. Then I lift the z-axis ~30mm and place the Piezo-Puck und the nozzle.
Then I run the "auto-offset-routine"
I'm getting fairly consistent results now.- But there is still a strange "error" I didn't get the clue yet:
3 Setups:
- Measure the offset of the BLTouch the "ordinary" way (Paper sheet under the nozzle, then measuring the offset) Results are:
0.564 mm 0.574 mm 0.584 mm
- First probe the Piezo Puck with the Nozzle and set this as Zero, Second Move XY to the BLTouch and Measure the Offset. Results are:
1.310 mm 1.302 mm 1.296 mm
- The other way round: First Probe the BLTouch at the PiezoPuck (Piezo-Puck therefore disabled and only used as a bare block to test on) and Second Move XY to the same Point, enable PiezoPuck and Probe the Nozzle. Results are:
0.119 mm 0.117 mm 0.116 mm
The results are somewhat different from each other....? But I didn't get a clue where my error is? Is there maybe an individual "probe error"? The most interesting way would be to measure both probes the same time whether one probe triggers first. But I think this is not possible with a duetwifi?
-
Here a picture of the setup
-
@kuhnikuehnast said in Piezo-Probe to auto-adjust offset after Nozzle change:
The Piezo Disc itself is easy to get! But it is always used with a special "converter board". This is hard to get- and I don't know exactly what this baord is doing?
have a look at https://pyroballpcbs.com
-
@Dougal1957 said in Piezo-Probe to auto-adjust offset after Nozzle change:
@kuhnikuehnast said in Piezo-Probe to auto-adjust offset after Nozzle change:
The Piezo Disc itself is easy to get! But it is always used with a special "converter board". This is hard to get- and I don't know exactly what this baord is doing?
have a look at https://pyroballpcbs.com
thanks Dougal1957 - I already got one- ordered from alieexpress
-
I am still having problems with the measurement results of the different samples.
Is it due to a fallacy or are the measurement methods really different?
Or is there a problem with the firmware in the end?
Maybe one of the mods is able to help me here? ( @dc42 )greetings and hoping for help!
kuhni