Revo Voron PZ Probe firmware configuration?
-
@crpalmer said in Revo Voron PZ Probe firmware configuration?:
@SpeedyDad Your M558 looks like the problem. Mine (just wired to the mini 5+ board on this printer) is:
M558 K0 P8 C"^!io1.in" R1.0 H5 F400 A5 T24000
Note the "^!" to both enable the pullup register and invert the signal direction.
I believe E3D recommends R0.5 and A3 and the T (travel speed) is printer dependent. I gave it a slightly high R (rest before probing) because at least one of my printers generates a lot of vibrations in the toolhead at 24,000 mm/min and I figured it wouldn't hurt. I increased A when I first starting using it to make sure it was giving me valid readings and never changed back because it was working fine. You can choose to values that work for you.
Mine are connected to 3.3V (not 5V) but that shouldn't be a problem. I have setting #4 (filtering enabled) which gives ME the most consistent triggering. YMMV.
Thanks. That halfway worked. Now, it at least is reading the proper endstop status but it doesn't actually stop when triggered. I can see the flash on the PZ board but no stop on the printer. Maybe it's because I'm on io0 (yes, I changed it to that in your example). I'll try it on io1 and see if that changes anything.
-
@crpalmer said in Revo Voron PZ Probe firmware configuration?:
@SpeedyDad Your M558 looks like the problem...
Nope. Switching to io1.in did not help. Still will not trigger the endstop. I have tried it with and without the "M574 Z1 S2" in the endstop section. At least with the M574 Z1 S2, it recognizes that I have a probe and an endstop.
This is what it says in the E3D duet configuration page:
; From Duet 3.6.0 onwards; Z Probe - Piezo
M574 Z1 P"nil" ; For Duet 2 with RRF3 only, free up z-probe before reassigning it.
M558 P8 C"^!zstop" R0.5 F400 B1 A2 H5 ; analogue mode, 0.5 sec delay, 400mm/min dive speed, turn off heater during probing, two probes per point, 5mm Dive Height.
G31 X0 Y0 Z0 P100 ; Set probe offset from XYZ to Zero
M575 P1 B9600 S7 ; Set baudrate on paneldue connector (where Piezo is connected) and set into device mode; Commands can be sent as follows:
; Write: M260.2 P1 S"STATUS\n" ; Use the commands as shown in the PZ-Probe documentation. \n is required at the end of the command.
; Read: M261.2 P1 B10 ; Only a set number of bytes (B) can be read at anytimes, so the command will need to be repeated several times and the B value may have to be changed to read the whole data packet recieved. The values returned are in Hex, so these will need to be converted to ASCII to read the data.Does this not work unless connected to the PanelDue connector on the mainboard? Not sure what to do with the stuff in the Commands section. BTW - this did not appear before when I went to their page. There was no link. I sent them an email asking for config info. Maybe my email caused them to fix that. Anyways, does this mean it will only work in 3.6.0?
-
@SpeedyDad I wasn't suggesting that you change the input pin (it depends on where you have the pz probe connected). Your original M558 was:
M558 P8 C"121.io0.in" H10 F700 T16000
and I was suggesting that you could change it to something like:
M558 K0 P8 C"^!121.io0.in" H10 F700 T16000 M558 K0 P8 C"^!121.io0.in" R0.5 H5 F400 A2 T24000 M558 K0 P8 C"^!121.io0.in" R1.0 H5 F400 A5 T24000
E3D is also suggesting that you turn off the heaters (the B1) but I don't do that and it has been working well for me.
All that said, if you have the correct pin in the M558 command with ^! and it shows not triggered when idle but when you tap the hotend the www interface doesn't show the z probe triggered then you have a problem. You can post your config.g and maybe I (or someone) can suggest a problem. Also, are you sure your crimps are good?
The "commands section" is for non-standard usage of the probe or to reprogram the settings. You can ignore that until you find you want to do one of those things.
-
@crpalmer said in Revo Voron PZ Probe firmware configuration?:
@SpeedyDad I wasn't suggesting that you change the input pin (it depends on where you have the pz probe connected). Your original M558 was:
M558 P8 C"121.io0.in" H10 F700 T16000
and I was suggesting that you could change it to something like:
M558 K0 P8 C"^!121.io0.in" H10 F700 T16000 M558 K0 P8 C"^!121.io0.in" R0.5 H5 F400 A2 T24000 M558 K0 P8 C"^!121.io0.in" R1.0 H5 F400 A5 T24000
E3D is also suggesting that you turn off the heaters (the B1) but I don't do that and it has been working well for me.
All that said, if you have the correct pin in the M558 command with ^! and it shows not triggered when idle but when you tap the hotend the www interface doesn't show the z probe triggered then you have a problem. You can post your config.g and maybe I (or someone) can suggest a problem. Also, are you sure your crimps are good?
The "commands section" is for non-standard usage of the probe or to reprogram the settings. You can ignore that until you find you want to do one of those things.
Yeah, I understood what you were saying. The changing the pin was just in case it didn't like the io0 input. I tried your example and theirs. Is yours up and running?
-
@SpeedyDad Yes, I have a PZ Probe connected to a (regular, not roto) Toolboard, two running on an IDEX printer with a 3HCL expansion board (I use them to calibrate the tool offsets when starting a multi-material/colour print) and one on another printer just plugged into the regular control board. All of them are working great and I have plans to install more of them.
-
@crpalmer said in Revo Voron PZ Probe firmware configuration?:
@SpeedyDad Yes, I have a PZ Probe connected to a (regular, not roto) Toolboard, two running on an IDEX printer with a 3HCL expansion board (I use them to calibrate the tool offsets when starting a multi-material/colour print) and one on another printer just plugged into the regular control board. All of them are working great and I have plans to install more of them.
What firmware version are you running?
-
@SpeedyDad Two of the machines are running the latest stable (3.5.4?) and the idex printer is running 3.6.0-rc2+2 (for a bug fix needed to calibrate the tool offsets).
it sounds like you're not getting anywhere. I would suggest that you do the following:
- post your full config.g
- try to get a good picture of the wire connections at the pz probe pcb and the toolboard pcb to show how it is wired (and post it here)
- verify that when you tap the nozzle, the triggered light on the pz probe flashes
- verify that when everything is idle that the probe status shows 0
- verify that when you tap the nozzle, the probe status flashes to 1000
If one of those things don't work, that's the first problem you need to fix.
if all that works, then I would manually (or via a G92 Z0 G1 Zxx) make sure that you have a large space between your nozzle and your print bed and then run G30 S-1. Let the probe run a for a couple of seconds to make sure it isn't false triggering and then tap the nozzle. If it doesn't stop, hit emergency stop.
If you want to try those steps and report back along with your full config.g, I (or someone else) may have a suggestion.
-
@SpeedyDad I just changed from a klicky probe to a PZ Probe on another printer this morning. The only config changes I had to make were to change:
M558 P5 C"^io1.in" H5 F200 T24000 G31 X0 Y22 Z3.625 P25
to
M558 P8 C"!^io1.in" A5 R1 H5 F400 T24000 G31 X0 Y0 Z0 P100
-
Sorry all. Got a little busy with other things. I'll work on this with the above suggestions in the AM. I appreciate the help.
-
@crpalmer said in Revo Voron PZ Probe firmware configuration?:
@SpeedyDad Two of the machines are running the latest stable (3.5.4?) and the idex printer is running 3.6.0-rc2+2 (for a bug fix needed to calibrate the tool offsets).
it sounds like you're not getting anywhere. I would suggest that you do the following:
- post your full config.g
- try to get a good picture of the wire connections at the pz probe pcb and the toolboard pcb to show how it is wired (and post it here)
- verify that when you tap the nozzle, the triggered light on the pz probe flashes
- verify that when everything is idle that the probe status shows 0
- verify that when you tap the nozzle, the probe status flashes to 1000
If one of those things don't work, that's the first problem you need to fix.
if all that works, then I would manually (or via a G92 Z0 G1 Zxx) make sure that you have a large space between your nozzle and your print bed and then run G30 S-1. Let the probe run a for a couple of seconds to make sure it isn't false triggering and then tap the nozzle. If it doesn't stop, hit emergency stop.
If you want to try those steps and report back along with your full config.g, I (or someone else) may have a suggestion.
OK, Here are the results of above:
My connections to the Roto toolboard are as follows. Red from the PZ Board = io1 +3.3v. Orange from PZ Board = io1.in. Brown from PZ Board = GND. I have verified continuity at both ends of the signal wire.
I get a power LED on the PZ Board.
I get a flash of the amber LED when I tout the nozzle end.
Probe shows as 0 on the panel when idle.
Probe does not flash to 1000 during trigger
Running a G30 S-1 and tapping the probe does nothing.My config.g
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.4.1 on Sat Aug 17 2024 21:55:35 GMT-0700 (Mountain Standard Time); General preferences
M575 P1 S1 B57600 ; enable support for PanelDue
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Voron" ; set printer name
M669 K1 ; select CoreXY mode; Wait a moment for the CAN expansion boards to start
G4 S2; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Accelerometers
M955 P121.0 I20 ; configure accelerometer on board #20; Drives
M569 P0.0 S0 D2 ; driver 0.0 goes backwards (X axis)
M569 P0.1 S0 D2 ; driver 0.1 goes backwards (Y axis)
M569 P0.2 S0 D2 ; driver 0.2 goes backwards (Z axis)
M569 P0.3 S1 D2 ; driver 0.3 goes forwards (Z axis)
M569 P0.4 S0 D2 ; driver 0.4 goes backwards (Z axis)
M569 P0.5 S1 D2 ; driver 0.5 goes forwards (Z axis)
M569 P121.0 S0 D2 ; driver 20.0 goes backwards (extruder 0); Axes
M584 X0.0 Y0.1 Z0.2:0.3:0.4:0.5 ; set axis mapping
M671 X-70:-70:470:470 Y20:455:455:20 S10 ; position of leadscrew/bed pivot point at front left, rear left, rear right and front right
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M906 X1700 Y1700 Z1700 ; set axis driver currents
M92 X80 Y80 Z400 ; configure steps per mm
M208 X-15:400 Y0:390 Z0:400 ; set minimum and maximum axis limits
M566 X100 Y100 Z60
M203 X20000 Y20000 Z3600 ; set maximum speeds (mm/min)
M201 X8000 Y8000 Z30; Extruders
M584 E121.0 ; set extruder mapping
M350 E16 I1 ; configure microstepping with interpolation
M906 E1000 ; set extruder driver currents
M92 E397 ; configure steps per mm
M566 E150 ; set maximum instantaneous speed changes (mm/min)
M203 E3600 ; set maximum speeds (mm/min)
M201 E1500 ; set accelerations (mm/s^2); Motor Idle Current Reduction
M906 I30 ; set motor current idle factor
M84 S30 ; set motor current idle timeout; Endstops
M574 X2 S1 P"121.io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin io0.in
M574 Y2 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io2.in
M574 Z1 S2; Z-Probe
;M950 S0 C"121.io0.out" ; create servo pin 0 for BLTouch
;M558 K0 P8 C"^!io1.in" R1.0 H5 F400 A5 T24000
;G31 P500 X0 Y0 Z0 ; set Z probe trigger value, More Z = Closer
M558 P8 C"!^io1.in" A5 R1 H5 F400 T24000
G31 X0 Y0 Z0 P100
M575 P1 B9600 S7; Mesh Bed Compensation
M557 X20:400 Y30:380 S40 ; define mesh grid; Heaters
;Bed
M308 S0 P"temp0" Y"thermistor" T100000 B4550 C0 A"Bed" ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 R0.203 K0.232:0.000 D2.45 E1.35 S1.00 B0
M140 H0 ; map heated bed to heater 0
M143 H0 S120
;Hotend
M308 S1 P"121.temp0" Y"thermistor" A"Hotend" T100000 B4725 C7.060000e-8 ; configure sensor 1 as thermistor on pin 20.temp0
M950 H1 C"121.out0" T1 ; create nozzle heater output on 20.out0 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M950 F0 C"121.out1" ; create fan #0
M106 P0 C"Part Fan" S0 L0 X1 B0.1 ; configure fan #0
M950 F1 C"121.out2" ; create fan #1
M106 P1 C"Hotend Fan" S0 B0.1 H1 T45 ; configure fan #1; 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 0CT0
; Custom settings are not defined
; Miscellaneous
M501 ; load saved parameters from non-volatile memory
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss -
@SpeedyDad said in Revo Voron PZ Probe firmware configuration?:
Your wire connections look correct. The PZ PCB is reading the piezo probe correctly. But the firmware is not correctly reading the triggered value. That would most likely be a bad crimp or a misconfiguration. I think it's the misconfiguration because you have:
M558 P8 C"!^io1.in" A5 R1 H5 F400 T24000
which would be the io1.in pin on the main board. The toolboard would be xxx.io1.in where "xxx" is the canbus address of the board. From the comments around the zprobe and previous posts you've made, I'm guess that it should be:
M558 P8 C"!^121.io1.in" A5 R1 H5 F400 T24000
-
@crpalmer said in Revo Voron PZ Probe firmware configuration?:
@SpeedyDad said in Revo Voron PZ Probe firmware configuration?:
Your wire connections look correct. The PZ PCB is reading the piezo probe correctly. But the firmware is not correctly reading the triggered value. That would most likely be a bad crimp or a misconfiguration. I think it's the misconfiguration because you have:
M558 P8 C"!^io1.in" A5 R1 H5 F400 T24000
which would be the io1.in pin on the main board. The toolboard would be xxx.io1.in where "xxx" is the canbus address of the board. From the comments around the zprobe and previous posts you've made, I'm guess that it should be:
M558 P8 C"!^121.io1.in" A5 R1 H5 F400 T24000
Ah, good catch. It was set to 121 but I changed it and forgot the 121. Now, it does register a 1000 when the probe is touched and I was able to run G30 S-1 once. After that, trying to run it again got the error:
"G30 S-1
Error: G30: Probe was not triggered during probing move"Some leftover stuff from trying to probe with the BLTouch I'd imagine. Progress is being made though.
-
Success! After restarting the printer, I was also getting errors "G90: Probe was not triggered during probing move" after it finished its homing moves. I looked in homeall.z and it ended in a G90. That really shouldn't have impacted it so I commented it out and ran it again. This time, no errors. To test it again, I removed the ; to comment it out and it still ran fine. No errors. Go figure. I am now able to get it to home properly, do a 4 motor gantry level and run mesh compensation. Mesh compensation takes forever now because it probes the bed twice at each point and, over a 400mm square bed, that takes a lot of time. I'll tweak its settings.
Thanks all for the help. This forum is one of the best out there for solving issues.