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

G30 Probing in Positive Z Direction - Seeking Solutions

Scheduled Pinned Locked Moved
CNC
3
12
459
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.
  • undefined
    an.andrew
    last edited by 30 Sept 2024, 16:01

    Hi everyone,

    I've been working on setting up my tool length measurement, but I’ve run into a problem. The G30 command moves the Z-axis in the negative direction (down), but I need the probing to occur in the positive Z direction (upwards).

    Does anyone have any suggestions or know of a way to configure G30 (or another command) to probe upwards instead of downwards?

    Any advice or workaround would be greatly appreciated!

    undefined 1 Reply Last reply 30 Sept 2024, 16:20 Reply Quote 0
    • undefined
      jay_s_uk @an.andrew
      last edited by 30 Sept 2024, 16:20

      @an-andrew what are you trying to achieve? Doesn't sound like a typical 3d printer implementation

      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

      undefined 1 Reply Last reply 30 Sept 2024, 16:41 Reply Quote 0
      • undefined
        an.andrew @jay_s_uk
        last edited by 30 Sept 2024, 16:41

        @jay_s_uk That's correct. I’ve built a router table, and now I need a tool length measurement system.

        photo_2024-09-30 18.40.53.jpeg photo_2024-09-30 18.40.39.jpeg photo_2024-09-30 18.40.58.jpeg

        undefined 1 Reply Last reply 30 Sept 2024, 17:22 Reply Quote 0
        • undefined
          jay_s_uk @an.andrew
          last edited by jay_s_uk 30 Sept 2024, 17:22

          @an-andrew maybe G1 H3 or G1 H4?
          or G38 might be better?

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          undefined 2 Replies Last reply 30 Sept 2024, 20:23 Reply Quote 0
          • undefined
            an.andrew @jay_s_uk
            last edited by 30 Sept 2024, 20:23

            @jay_s_uk Thank you for the suggestion, but I still can’t see the solution. Could you provide an example code?

            undefined 1 Reply Last reply 1 Oct 2024, 11:25 Reply Quote 0
            • undefined
              droftarts administrators @an.andrew
              last edited by 1 Oct 2024, 11:25

              @an-andrew It would be helpful if you shared your config.g, so we can see how any probes and endstops are currently set up. Also, what do you want to actually probe up to? I don't see anything the tool is going to touch off, either a plate or endstop.

              You could use a touch-off probe, like those used on CNC machines, where you attach a conductive clip to the tool, and it makes a circuit when it touches a plate. The plate is removable, as it's usually used on CNC machines to measure where the workpiece is. The plate could sit level with the router table, and you could measure from the Z axis home (when the spindle is all the way down) to the point where the end of the tool is level with the table.

              Or you could put an fixed endstop of some form at maximum Z, and measure up to that, though there's a greater risk of driving straight through that!

              Either way, as @jay_s_uk suggested, G1 H3/H4 or G30.# would let you measure the distance, and work out the length of the tool. I think we need to have a better understanding of your intention to provide example code.

              G1 H3 and G1 H4 movements are described here: https://docs.duet3d.com/en/User_manual/Reference/Gcodes#g0g1-h-and-s-parameter
              G38.2/3/4/5 are described here: https://docs.duet3d.com/en/User_manual/Reference/Gcodes#g382-straight-probe

              Also, nice customisation of DWC!

              Ian

              Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

              1 Reply Last reply Reply Quote 0
              • undefined
                an.andrew @jay_s_uk
                last edited by an.andrew 10 Jan 2024, 20:35 1 Oct 2024, 20:34

                @jay_s_uk I simply want to place a metal part over the opening. The spindle is grounded and connected to GND, and the circuit will be closed via the table. The cable attached to the table plate is not visible and is connected to an input.

                photo_2024-10-01 22.35.08.jpeg

                my config

                ; Configuration file for Duet WiFi (firmware version 3.3)
                ; executed by the firmware on start-up
                ;
                ; generated by RepRapFirmware Configuration Tool v3.3.14 on Sun Nov 20 2022 22:13:01 GMT+0100 (Mitteleuropäische Normalzeit)
                ; General preferences
                M453
                G90 ; send absolute coordinates...
                M83 ; ...but relative extruder moves
                M550 P"Tischfräse 2" ; set printer name
                ; Network
                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
                M584 X0 Y1 Z2 ; set drive mapping
                M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
                M92 X1600.00 Y1600.00 Z1600.00 ; set steps per mm
                M566 X900.00 Y900.00 Z60.00 ; set maximum instantaneous speed changes (mm/min)
                M203 X3000.00 Y3000.00 Z800.00 ; set maximum speeds (mm/min)
                M201 X500.00 Y500.00 Z500.00 ; set accelerations (mm/s^2)
                M906 X2000 Y2000 Z2000 I30 ; set motor currents (mA) and motor idle factor in per cent
                M913 X100 Y100 Z100
                ; Axis Limits
                M208 X0 Y0 Z0 S1 ; set axis minima
                M208 X75 Y75 Z120 S0 ; set axis maxima
                ; Endstops
                M574 X1 S1 P"!xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
                M574 Y1 S1 P"!ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
                M574 Z1 S1 P"!zstop" ; configure Z-probe endstop for low end on Z
                ; Z-Probe
                M558 P5 C"!e1stop" H5 F120 T6000 ; P5 für digitalen Sensor (induktiv)
                G31 P500 X0 Y0 Z1.2 ; Setze den Triggerwert und den Z-Offset
                M950 R0 C"e0heat+e1heat" Q100 L24000
                M950 P1 C"e1heat"
                M563 P0 R0 S"Spindle"
                G10 P0 X0 Y0 Z0
                G10 P1 R0 S0
                M568 P0 F0
                T0

                Tool length measurement macro

                M291 P"Starte Werkzeuglängenmessung. Bitte sicherstellen, dass die Tastplatte positioniert ist." R"Werkzeuglängenmessung" S3
                ; Werkzeuglängenmessung auf Duet 2 WiFi
                G53 G0 Z5 ; Fahre die Z-Achse in den Maschinenkoordinaten auf Z=5 (absolute Positionierung)
                G91 ; Schalte auf relative Positionierung
                G1 H1 Z50 F1000 ; Fahre langsam nach oben (positive Richtung), bis der Schalterkontakt erreicht wird
                G1 Z-5 F300 ; Fahre 5 mm nach unten (schneller)
                G1 H1 Z5 F50 ; Fahre langsam nach oben, bis der Schalter erneut ausgelöst wird
                G90 ; Schalte auf absolute Positionierung zurück
                G92 Z0 ; Setze die Z-Koordinate auf 0 (Nullpunkt)
                G1 Z5 F300 ; Fahre die Z-Achse 5 mm nach oben
                M291 P"Messung abgeschlossen. Werkzeuglänge erfasst." R"Fertig" S1
                undefined 1 Reply Last reply 1 Oct 2024, 22:50 Reply Quote 0
                • undefined
                  droftarts administrators @an.andrew
                  last edited by 1 Oct 2024, 22:50

                  @an-andrew I wouldn't define a probe, just redefine the Z axis endstop in the tool length measurement macro to use the e1stop endstop (I assume that's the one the tool touches), then redefine the normal Z endstop at the end. I'm not sure what you want to happen when the tool touches the plate; just reset Z to 0? In which case your current macro would work. Just add this at the beginning:

                  M574 Z2 S1 P"!e1stop" ; set endstop at Z axis max

                  and revert to the normal Z probe at the end of the macro:

                  M574 Z1 S1 P"!zstop"
                  

                  Because you're setting the plate endstop as a maximum, with the G1 H1 Z positive move that is already in the macro, it will go to the plate and stop, and set the position to the Z axis maximum defined by M208 (ie Z120). Your macro already then sets Z0 with G92 Z0. Revert the endstop assignment before the G1 Z5 move, though actually it will ignore the endstop and probably just push the plate up.

                  There are probably other ways to do this, possibly using the other commands mentioned earlier. It just looks like this is what you want to do from the macro you have written.

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                  undefined 1 Reply Last reply 2 Oct 2024, 22:26 Reply Quote 0
                  • undefined
                    an.andrew @droftarts
                    last edited by 2 Oct 2024, 22:26

                    @droftarts Thank you for your support; it worked so far. However, after the tool length measurement, I have the problem that I can no longer move positively.

                    1. Home the machine; the machine position is all 0.
                      1.png

                    2. Tool length measurement.
                      2.png

                    3. Now I can no longer move positively.
                      3.png

                    M291 P"Starte Werkzeuglängenmessung. Bitte sicherstellen, dass die Tastplatte positioniert ist." R"Werkzeuglängenmessung" S3
                    ; Werkzeuglängenmessung auf Duet 2 WiFi
                    G53 G0 Z5 ; Fahre die Z-Achse in den Maschinenkoordinaten auf Z=5 (absolute Positionierung)
                    G91 ; Schalte auf relative Positionierung
                    M574 Z2 S1 P"!e1stop"
                    G1 H1 Z50 F200 ; Fahre langsam nach oben (positive Richtung), bis der Schalterkontakt erreicht wird
                    G90 ; Schalte auf absolute Positionierung zurück
                    M574 Z1 S1 P"!zstop"
                    M564 H4
                    M291 P"Messung abgeschlossen. Werkzeuglänge erfasst." R"Fertig" S1
                    ; Configuration file for Duet WiFi (firmware version 3.3)
                    ; executed by the firmware on start-up
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.3.14 on Sun Nov 20 2022 22:13:01 GMT+0100 (Mitteleuropäische Normalzeit)
                    ; General preferences
                    M453
                    G90 ; send absolute coordinates...
                    M83 ; ...but relative extruder moves
                    M550 P"Tischfräse 2" ; set printer name
                    ; Network
                    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
                    M584 X0 Y1 Z2 ; set drive mapping
                    M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
                    M92 X1600.00 Y1600.00 Z1600.00 ; set steps per mm
                    M566 X900.00 Y900.00 Z60.00 ; set maximum instantaneous speed changes (mm/min)
                    M203 X3000.00 Y3000.00 Z800.00 ; set maximum speeds (mm/min)
                    M201 X500.00 Y500.00 Z500.00 ; set accelerations (mm/s^2)
                    M906 X2000 Y2000 Z2000 I30 ; set motor currents (mA) and motor idle factor in per cent
                    M913 X100 Y100 Z100
                    ; Axis Limits
                    M208 X0 Y0 Z0 S1 ; set axis minima
                    M208 X75 Y75 Z120 S0 ; set axis maxima
                    ; Endstops
                    M574 X1 S1 P"!xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
                    M574 Y1 S1 P"!ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
                    M574 Z1 S1 P"!zstop" ; configure Z-probe endstop for low end on Z
                    M950 R0 C"e0heat+e1heat" Q100 L24000
                    M950 P1 C"e1heat"
                    M563 P0 R0 S"Spindle"
                    G10 P0 X0 Y0 Z0
                    G10 P1 R0 S0
                    M568 P0 F0
                    T0

                    I have already tried all H(1-4), but it doesn’t provide a solution.
                    I want to take a break; maybe I will think of something later.

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      an.andrew
                      last edited by an.andrew 10 Mar 2024, 23:08 3 Oct 2024, 23:07

                      I'm going in circles.

                      Point 1: What do I want?
                      I want to measure the length of the tool on my machine by moving the cutter upwards. However, the G30 command does not work for this.

                      Point 2: Switch (contact method)
                      The switch is simply a metal plate that closes the circuit when the cutter touches it. This creates a connection between the milling table and the cutter.

                      Point 3: Macro requirement
                      I need a macro that moves the Z-axis upwards and stops when contact (circuit closing) occurs. After contact, I want to zero the Z-axis in the work coordinate system. If necessary, I can do this manually.

                      Point 4: Endstop issue
                      I tried solving this with endstops, but they don’t work well. After measuring the tool length, the travel path of the Z-axis shifts, and I can’t exactly describe the problem.

                      Does anyone have an idea or an approach that could help me?

                      Thank you.

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        an.andrew
                        last edited by 5 Oct 2024, 22:07

                        Can someone tell me in which area of the firmware the direction for tool length measurement is defined?

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          an.andrew
                          last edited by 9 Oct 2024, 21:13

                          I did it. The solution was actually very simple, so I'm wondering why I didn't figure it out much earlier.

                          G38.3 Z 50 F 100
                          G10 L20 P1 Z0

                          https://youtu.be/7yjKVpkOM8k?si=Ropq6YF0fWoNj_r5

                          Thanks

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