Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Z-probe released with a solenoid

    Scheduled Pinned Locked Moved Solved
    Duet Hardware and wiring
    4
    68
    2.9k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Marcossfundefined
      Marcossf @Marcossf
      last edited by

      @marcossf said in Z-probe released with a solenoid:
      @dc42

      I could try changing the endstop and the Z motor to the 1XD instead of the 1LC, and thus potentially fix the other added problem you mentioned.

      I changed the endstop to 1LC where Z motor is. I couldn't test in the 1XD at this moment but serves for check as it has the same typology.

      Tested, but same behaviour, the endstop activation can be seen in the DWC status (0-1000) but not stop the Z motor.

      ; General preferences
      M552 S1									; activa la configuracion de red ethernet
      G90                                     ; send absolute coordinates...
      M83                                     ; ...but relative extruder moves
      M550 P"Duet 3"                          ; set printer name
      G4 S1   								;wait for expansion boards to start
      
      ; Drives
      M569 P40.0 S1                          ; physical drive 0.0 goes forwards
      M569 P0.1 S1                            ; physical drive 0.1 goes forwards
      M569 P0.2 S1                            ; physical drive 0.2 goes forwards
      M569 P121.0 S1                          ; physical drive 121.0 goes forwards
      M584 X40.0 Y0.1 Z121.0 E0.2             ; set drive mapping
      M350 X1 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
      M92 X86.00 Y80.00 Z400.00 E420.00       ; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E120.00     ; set maximum instantaneous speed changes (mm/min)
      M203 X24000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
      M201 X1500.00 Y500.00 Z20.00 E250.00     ; set accelerations (mm/s^2)
      M906 Y1000 Z800 E1000	                ; set motor currents (mA)
      M84 S0                                  ; Disable motor idle current reduction
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                        ; set axis minima
      M208 X200 Y200 Z100 S0                  ; set axis maxima
      
      ; 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"121.io0.in" H25 F120 T5000       ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X0 Y0 Z1                    ; set Z probe trigger value, offset and trigger height
      M557 X15:200 Y15:195 S20                ; define mesh grid
      
      Marcossfundefined 1 Reply Last reply Reply Quote 0
      • Marcossfundefined
        Marcossf @Marcossf
        last edited by

        @dc42 Do you have any clue as to why the endstop does not stop the motor, both on the 6HC and 1LC boards, and yet if it detects both the DWC status and the M119 its activation?

        Whatever you do, the g28, g30 etc will not stop the Z axis motor. The problem is no longer with the probe or the solenoid, there is something else.

        dc42undefined 1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators @Marcossf
          last edited by dc42

          @marcossf said in Z-probe released with a solenoid:

          @dc42 Do you have any clue as to why the endstop does not stop the motor, both on the 6HC and 1LC boards, and yet if it detects both the DWC status and the M119 its activation?

          Whatever you do, the g28, g30 etc will not stop the Z axis motor. The problem is no longer with the probe or the solenoid, there is something else.

          I know why it didn't stop the motor in firmware versions prior to 3.3beta3. I don't know why it doesn't in 3.3beta3.

          Please can you try configuring an extra Z driver on the main board. So your M584 command would look something like this:

          M584 X40.0 Y0.1 Z121.0:0.5 E0.2             ; set drive mapping
          

          This should cause the main board to stop the motors when the Z probe triggers, even when using firmware older than 3.3beta3. You don't need to connect a motor to the extra driver, however you will probably see "phase may be disconnected" messages.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          Marcossfundefined 2 Replies Last reply Reply Quote 0
          • Marcossfundefined
            Marcossf @dc42
            last edited by

            @dc42 Ok, I'll try this inmediately.

            1 Reply Last reply Reply Quote 0
            • Marcossfundefined
              Marcossf @dc42
              last edited by Marcossf

              @dc42 OK, tested

              Warning: motor phase A may be disconnected reported by driver(s) 5
              Warning: motor phase B may be disconnected reported by driver(s) 5
              

              Indeed the log gives the error of the engine that does not exist, but even with this configuration, the endstop is still detected as before, but the Z motor does not stop when activated.

              Physicaly the endstop is in LC1 where the Z motor is:

              11e4bc7f-719b-45a2-99b6-26459d312a44-image.png

              Config.g:

              ; General preferences
              M552 S1									; activa la configuracion de red ethernet
              G90                                     ; send absolute coordinates...
              M83                                     ; ...but relative extruder moves
              M550 P"Duet 3"                          ; set printer name
              G4 S1   								;wait for expansion boards to start
              
              ; Drives
              M569 P40.0 S1                          ; physical drive 0.0 goes forwards
              M569 P0.1 S1                            ; physical drive 0.1 goes forwards
              M569 P0.2 S1                            ; physical drive 0.2 goes forwards
              M569 P121.0 S1                          ; physical drive 121.0 goes forwards
              ;M584 X40.0 Y0.1 Z121.0 E0.2             ; set drive mapping
              M584 X40.0 Y0.1 Z121.0:0.5 E0.2 		; set drive mapping  ----- test DC42 ----
              M350 X1 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
              M92 X86.00 Y80.00 Z400.00 E420.00       ; set steps per mm
              M566 X900.00 Y900.00 Z60.00 E120.00     ; set maximum instantaneous speed changes (mm/min)
              M203 X24000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
              M201 X1500.00 Y500.00 Z20.00 E250.00     ; set accelerations (mm/s^2)
              M906 Y1000 Z800 E1000	                ; set motor currents (mA)
              M84 S0                                  ; Disable motor idle current reduction
              
              ; Axis Limits
              M208 X0 Y0 Z0 S1                        ; set axis minima
              M208 X200 Y200 Z100 S0                  ; set axis maxima
              
              ; 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"121.io0.in" H25 F120 T5000       ; set Z probe type to bltouch and the dive height + speeds
              G31 P500 X0 Y0 Z1                    ; set Z probe trigger value, offset and trigger height
              M557 X15:200 Y15:195 S20                ; define mesh grid
              

              Activating with the finger in the Z endstop:

              Endstop Z.gif

              dc42undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @Marcossf
                last edited by

                @marcossf thanks, that's useful information. I will test that configuration on my bench system.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                Marcossfundefined 1 Reply Last reply Reply Quote 1
                • Marcossfundefined
                  Marcossf @dc42
                  last edited by

                  @dc42 Ok, hope you could find something wrong. Ask me if you want to do any test with my HW.

                  dc42undefined 1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators @Marcossf
                    last edited by

                    @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.

                    Duet WiFi hardware designer and firmware engineer
                    Please do not ask me for Duet support via PM or email, use the forum
                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                    Marcossfundefined 1 Reply Last reply Reply Quote 1
                    • Marcossfundefined
                      Marcossf @dc42
                      last edited by

                      @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.

                      Marcossfundefined 1 Reply Last reply Reply Quote 0
                      • Marcossfundefined
                        Marcossf @Marcossf
                        last edited by

                        @dc42 Still fighting with G30. Quick test in video, hope could unterstand it.

                        https://youtu.be/rOLtE_f9bOM

                        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
                        
                        Marcossfundefined 2 Replies Last reply Reply Quote 0
                        • Marcossfundefined
                          Marcossf @Marcossf
                          last edited by

                          @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)

                          sinned6915undefined 1 Reply Last reply Reply Quote 0
                          • sinned6915undefined
                            sinned6915 @Marcossf
                            last edited by

                            @marcossf why not use precision piezo units? the andromedas are basiclly that.

                            Marcossfundefined 1 Reply Last reply Reply Quote 0
                            • Marcossfundefined
                              Marcossf @sinned6915
                              last edited by Marcossf

                              @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.

                              1 Reply Last reply Reply Quote 0
                              • Marcossfundefined
                                Marcossf @Marcossf
                                last edited by

                                @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.

                                https://youtu.be/rOLtE_f9bOM

                                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
                                
                                dc42undefined 1 Reply Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators @Marcossf
                                  last edited by dc42

                                  @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.

                                  Duet WiFi hardware designer and firmware engineer
                                  Please do not ask me for Duet support via PM or email, use the forum
                                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                                  Marcossfundefined 1 Reply Last reply Reply Quote 0
                                  • Marcossfundefined
                                    Marcossf @dc42
                                    last edited by

                                    @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!

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post
                                    Unless otherwise noted, all forum content is licensed under CC-BY-SA