Z-probe released with a solenoid
-
@dc42 Ok, hope you could find something wrong. Ask me if you want to do any test with my HW.
-
@marcossf, I have tested your configuration. G30 works as it should:
- Solenoid output is activated
- Z motor attached to tool boards drives in one direction
- When the probe is triggered, the Z motor reverses. This is because after triggering, it returns to the dive height. Your M558 command has the dive height set to a large value (25mm), so it travels quite a long way before stopping. When it stops, the Z coordinate reads 26.0 which is the trigger height plus the dive height.
- Solenoid output is deactivated
The behaviour is the same (using firmware 3.3beta3) whether or not I have the dummy Z drive configured in the M584 command.
-
@dc42 Ok, tested and works well same as you tested.
The H parameter was the hint, and dificult for us to see what happened with the bare motor axis. We could test it right when H=0. Greater values doesn't retract the probe in the moment the endstop is triggered.
M558 P8 C"121.io0.in" H5 R1 F120 T5000 ; set Z probe type
We had to add a "R1" option to let the probe stabilize at bottom before touch, because if I not do this delay, the endstop triggers at probe deploy.
Also we tested if the endstop can be activated when isn't at the external board where the motor is, wich is better for our cabling, and it works also.
The problem that still have, it's when issue a G30 command, the probe deploys, the z motor moves a little, and after that the probe retracts without having been toched the endstop; it reflects Z=1mm in the DWC status. However when G28 waits for the endstop, trigger it and set the Z=0 status. Different behaviour.
I'll do some aditional tests to see what's happening.
-
@dc42 Still fighting with G30. Quick test in video, hope could unterstand it.
Video timming:
0:03 - Initial G28 move, back Z up 5mm.
0:13 - After X and Y home, the probe is deployed and start to move Z down.
0:18 - I push the probe for endstop trigger stop and back Z up.
0:25 - G30 issued after been homed all axes.As you can see, the G30 triggers itself without touching. It is assumed that it would have to behave in the same way as the g28 (homeall.g or homez.g) does. Isn't it?
Config.g:
; Endstops M574 X1 S1 P"!40.io0.in" ; configure active-high endstop for low end on X via pin !40.io0.in M574 Y1 S1 P"io0.in" ; configure active-high endstop for low end on Y via pin !io0.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"out4" ; create servo pin 0 for solenoid io3.out M558 P8 C"io3.in" H0 R1 F120 T5000 G31 P500 X0 Y0 Z1 ; set Z probe trigger value, offset and trigger height M557 X15:200 Y15:195 S20 ; define mesh grid
Homeall.g:
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Mar 24 2021 10:52:22 GMT+0100 (hora estándar de Europa central) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-205 Y-205 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) ;G1 H2 X5 Y5 F6000 ; go back a few mm ;G1 H1 X-205 Y-205 F360 ; move slowly to X and Y axis endstops once more (second pass) G1 X100 Y100 F1800 G30 G90 ; absolute positioning G92 Z0 ; set Z position to axis minimum (you may want to adjust this) ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F1000 ; lift Z relative to current position G90 ; absolute positioning
Homez.g:
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Mar 24 2021 10:52:22 GMT+0100 (hora estándar de Europa central) G91 ; relative positioning G1 H2 Z1 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X100 Y100 F6000 ; go to first probe point G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F100 ; lift Z relative to current position G90 ; absolute positioning
-
@dc42
Off topic: By the way, do you think it is possible to make these piezoelectric pushbuttons work as endstop? It is to measure the length of the tool by touch contact, fixed to the bed and additional to Z probing.https://docs.rs-online.com/d7f5/0900766b80e29fe0.pdf (model PBAT5AFB000)
-
@marcossf why not use precision piezo units? the andromedas are basiclly that.
-
@sinned6915 We need a full IP68 waterproof switch and 316L/304 stainless steel for homologation for any part may touch the product. Keep in mind that it is a printer for a pharmaceutical/medical laboratory. Price is not a problem, so quality and industrial reliability it's a must.
What I was asking is basically if this piezo can be connected directly to the 6HC board without any interface board. And how would it be configured, taking into account that it supports 24v 200mA.
-
@dc42 Could you been read the G30 problem that we still have? All other problems seems to be gone, but this is at least strange:
@dc42 Still fighting with G30. Quick test in video, hope could unterstand it.
Video timming:
0:03 - Initial G28 move, back Z up 5mm.
0:13 - After X and Y home, the probe is deployed and start to move Z down.
0:18 - I push the probe for endstop trigger stop and back Z up.
0:25 - G30 issued after been homed all axes.As you can see, the G30 triggers itself without touching. It is assumed that it would have to behave in the same way as the g28 (homeall.g or homez.g) does. Isn't it?
Config.g:
; Endstops M574 X1 S1 P"!40.io0.in" ; configure active-high endstop for low end on X via pin !40.io0.in M574 Y1 S1 P"io0.in" ; configure active-high endstop for low end on Y via pin !io0.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"out4" ; create servo pin 0 for solenoid io3.out M558 P8 C"io3.in" H0 R1 F120 T5000 G31 P500 X0 Y0 Z1 ; set Z probe trigger value, offset and trigger height M557 X15:200 Y15:195 S20 ; define mesh grid
Homeall.g:
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Mar 24 2021 10:52:22 GMT+0100 (hora estándar de Europa central) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-205 Y-205 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) ;G1 H2 X5 Y5 F6000 ; go back a few mm ;G1 H1 X-205 Y-205 F360 ; move slowly to X and Y axis endstops once more (second pass) G1 X100 Y100 F1800 G30 G90 ; absolute positioning G92 Z0 ; set Z position to axis minimum (you may want to adjust this) ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F1000 ; lift Z relative to current position G90 ; absolute positioning
Homez.g:
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Mar 24 2021 10:52:22 GMT+0100 (hora estándar de Europa central) G91 ; relative positioning G1 H2 Z1 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X100 Y100 F6000 ; go to first probe point G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F100 ; lift Z relative to current position G90 ; absolute positioning
-
@marcossf, I think the explanation is that the first time you run G30, the Z axis hasn't been homed, so RRF knows that it may have to move Z the complete length of the Z axis before the probe triggers. After Z has been homed, it knows fairly precisely where the bed is, so the maximum it will move below Z=0 is the dive height.
If you send M18 Z to disable the Z stepper motor, RRF will flag Z as no longer homed. Then G30 should behave as it does when homing.
-
@dc42 Exactly, you're right! Thanks for your patience and knowing.
I think we could close this post topic as resolved. Still we have a lot to learn about RRF and Duet!