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

    reference the X-axis on both rails

    Scheduled Pinned Locked Moved
    Using Duet Controllers
    4
    59
    2.5k
    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.
    • axiomundefined
      axiom @fcwilt
      last edited by

      @fcwilt or to put it another way...if I delete homeall.g, how do I correct homez.g?

      1 Reply Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @axiom
        last edited by fcwilt

        @axiom

        Do you have the Z endstop sensor installed and ready to use? Good job.

        OK as to the code...

        Basically you use the same sort of G1 H1 commands that you do with X and Y axes.

        The three files homeX.g, homeY.g and homeZ.g could end up looking pretty much the same.

        To provide example code let's assume that all three axes home to the axis minimum. Let's also assume that the range of motion on each axis is a total of 300mm. The essential code would look something like this:

        In homeX.g:

        G91               ; relative moves
        G1 H1 X-310 F6000 ; fast move to min endstop
        G1 X20            ; back off a bit
        G1 H1 X-25 F600   ; slow move to min endstop
        G92 X###          ; where ### is the actual axis position when the motion stopped - usually determined by testing
        

        In homeY.g:

        G91               ; relative moves
        G1 H1 Y-310 F6000 ; fast move to min endstop
        G1 Y20            ; back off a bit
        G1 H1 Y-25 F600   ; slow move to min endstop
        G92 Y###          ; where ### is the actual axis position when the motion stopped - usually determined by testing
        

        In home Z.g:

        G91               ; relative moves
        G1 H1 Z-310 F1200 ; fast move to min endstop
        G1 Z20            ; back off a bit
        G1 H1 Z-25 F300   ; slow move to min endstop
        G92 Z###          ; where ### is the actual axis position when the motion stopped - usually determined by testing
        

        Regards the G92 commands:

        Remember that the G1 H1 moves stop when the endstop is triggered and the logical axis position is set to the min/max value from the M208 for that axis, depending on the configured location of the endstop.

        But if your endstops don't actually trigger at exactly the min/max position (mine never do) then you can use G92 so the logical position of the axis (which G92 sets) is in sync with the physical position.

        Hope that helps rather than confuses.

        Frederick

        Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

        axiomundefined 2 Replies Last reply Reply Quote 0
        • axiomundefined
          axiom @fcwilt
          last edited by

          @fcwilt Thank you very much first of all... now I have to wait until the expansion board arrives (hopefully this week)... only then can I try it out and then report back... have a nice Sunday!
          Cheers,
          Don

          fcwiltundefined 1 Reply Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @axiom
            last edited by fcwilt

            @axiom

            If I cannot help I am always happy to confused.

            I just noticed a mistake in my example code the F letter was missing from the slow moves speed setting. I just corrected them.

            Frederick

            Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

            axiomundefined 1 Reply Last reply Reply Quote 0
            • axiomundefined
              axiom @fcwilt
              last edited by

              @fcwilt ; General preferences
              I have now installed the expansion board and wired everything up. All axes work and endstops also react. but with the m119 command the message Z comes: no endstop, what could be the problem...here is my current code

              M575 P1 S1 B57600 ; enable support for PanelDue
              G90 ; send absolute coordinates...
              M83 ; ...but relative extruder moves
              M550 P"DUKA1300" ; set printer name

              ; Network
              M552 S1 ; enable network
              M586 P0 S1 ; enable HTTP
              M586 P1 S1 ; enable FTP
              M586 P2 S1 ; enable Telnet

              ; Drives
              ;M569 P4 R-1 ; Treiber 4 deaktivieren
              ;M569 P3 R-1 ; Treiber 4 deaktivieren
              M569 P0 S1 ; physical drive 0 goes forwards
              M569 P1 S1 ; physical drive 1 goes forwards
              M569 P2 S1 ; physical drive 2 goes forwards
              M569 P3 S1 ; physical drive 3 goes forwards
              M569 P4 S0 ; physical drive 3 goes forwards
              M569 P5 S1 ; physical drive 3 goes forwards Expansionboard
              M569 P6 S1 ; physical drive 3 goes forwards Expansionboard
              M569 P7 S1 ; physical drive 3 goes forwards Expansionboard
              M569 P8 S1 ; physical drive 3 goes forwards Expansionboard
              ;M584 X0 Z2 E1 ; set drive mapping
              ;M584 X0 Z2 E1 ; set drive mapping
              ;M584 X0:4 Y1 Z2 E3 ; set drive mapping
              M584 X0:4 Y1 Z5:6:7:8 E3 ; set drive mapping
              M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
              M92 X80.00 Y80.00 Z640 E322.58 ; set steps per mm
              M566 X900.00 Y900.00 Z100.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
              M203 X6000.00 Y6000.00 Z300.00 E1200.00 ; set maximum speeds (mm/min)
              ;M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
              M201 X500.00 Y500.00 Z40.00 E250.00 ; set accelerations (mm/s^2)
              M906 X1800 Y1800 Z1700 E1600 I30 ; set motor currents (mA) and motor idle factor in per cent
              M84 S30 ; Set idle timeout

              ; Axis Limits
              M208 X100 Y0 Z0 S1 ; set axis minima
              M208 X750 Y640 Z1220 S0 ; set axis maxima

              ; Endstops
              M574 X1 S1 P"xstop + e0stop" ; 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"e2stop + e3stop + e4stop + e5stop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop

              ; Z-Probe
              ;M558 K0 P1 C"e1stop" ;H5 F120 T6000
              M558 K0 P5 C"!zprobe.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds (Kapazitiver Sensor)
              ;M557 X0:735 Y-27:573 S35 ; define mesh grid

              ; Z-Probe two of them
              ;M558 K0 P1 C"!zprobe.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds (Kapazitiver Sensor)
              ;M558 K1 P8 A2 S0.2 C"!zstop" H5 F80 T3000
              ;G31 P1000 K0 X-1 Y-61 Z0.484 ; set Z probe trigger value, offset and trigger height (Kapazitiver Sensor)
              ;G31 P1000 K1 X0 Y0 Z12.664 ; Second Z-offset
              ;M557 X0:735 Y-27:573 S35 ; define mesh grid

              ; Heaters

              ; Bed
              M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
              M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
              ;M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
              ;M307 H2 R0.283 K0.463:0.000 D7.17 E1.35 S1.00 B0 ; enable bang-bang mode for the bed heater and set PWM limit
              M307 H0 R0.283 K0.463:0.000 D7.17 E1.35 S1.00 B0 ; enable bang-bang mode for the bed heater and set PWM limit
              M140 H0 ; map heated bed to heater 0
              M143 H0 S280 ; set temperature limit for heater 0 to 120C

              ;Hotend
              M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
              M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
              M307 H1 R1.797 K0.742:0.000 D7.57 E1.35 S1.00 B0 V23.8 ; disable bang-bang mode for heater and set PWM limit
              M143 H1 S400 ; set temperature limit for heater 1 to 400C

              ; Fans
              M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
              M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
              M950 F2 C"fan2" Q350 ; create fan 2 on pin fan2 and set its frequency
              M106 P2 S1 H1 T60 ; set fan 2 value. Thermostatic control is turned on

              ; Tools
              M563 P0 D0 H1 F0 ; define tool 1
              G10 P0 X0 Y0 Z0 ; set tool 1 axis offsets
              G10 P0 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

              ; Filamentsensor
              ;M591 D0 P1 C"zstop" S1 ;R40:120 E3.0 S1 Filament Sensor

              ;Auto Z-Offset
              ; Custom settings are not defined
              M501

              droftartsundefined fcwiltundefined Phaedruxundefined 3 Replies Last reply Reply Quote 0
              • droftartsundefined
                droftarts administrators @axiom
                last edited by

                @axiom for displaying code in posts, please use the code tags. It’s the </> icon on the toolbar above where you type in your post. It should put 3 tick marks at the beginning and end of your code. It makes it much more readable for people trying to help you. Single tick marks either side of text make that text inline code, like this.

                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
                • fcwiltundefined
                  fcwilt @axiom
                  last edited by

                  @axiom

                  What expansion board are you using?

                  On my 3 Z stepper printer I am using Duet 2 boards: Duet WiFi and a Duex5.

                  My M574 for the Z endstops looks like this:

                  M574 Z1 S1 P"!duex.e2stop + !duex.e3stop + !duex.e4stop" ; configure active-high endstop for low  end on Z
                  

                  The Z endstop sensors are connected to the Duex5 and I included the duex. prefix. I recall that it was necessary.

                  Frederick

                  Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                  droftartsundefined 1 Reply Last reply Reply Quote 1
                  • Phaedruxundefined
                    Phaedrux Moderator @axiom
                    last edited by

                    @axiom said in reference the X-axis on both rails:

                    M574 Z1 S1 P"e2stop + e3stop + e4stop + e5stop"

                    If you send M98 P"config.g" you'll probably get an error saying invalid pin or something like that for that line.

                    Z-Bot CoreXY Build | Thingiverse Profile

                    1 Reply Last reply Reply Quote 0
                    • droftartsundefined
                      droftarts administrators @fcwilt
                      last edited by

                      @fcwilt as @Phaedrux says, the pin names are wrong. See https://docs.duet3d.com/Duet3D_hardware/Duet_2_family/DueX2_and_DueX5#pin-names

                      Should be duex.e2stop etc.

                      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

                      axiomundefined 1 Reply Last reply Reply Quote 0
                      • axiomundefined
                        axiom @droftarts
                        last edited by

                        @droftarts
                        I have now adjusted the names, but the endstops are still not accepted. Here is the message from the m119 command and the M98 P"config.g" command. And below again my adapted code

                        M98 P"config.g"

                        HTTP is enabled on port 80
                        FTP is enabled on port 21
                        TELNET is enabled on port 23
                        Error: in file macro line 50 column 65: M574: string too long
                        Warning: Macro file config-override.g not found
                        16.11.2023, 15:50:48

                        m119
                        Endstops - X: at min stop, Y: not stopped, Z: no endstop, Z probe: not stopped

                        All control LEDs respond...The 4 motors on the expansion board react and can be controlled

                        I think it's not a hardware error it is a DueX5 xspansionboard

                        again my adapted code:
                        ; Configuration file for Duet WiFi (firmware version 3.3)
                        ; executed by the firmware on start-up
                        ;
                        ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 28 2023 15:23:44 GMT+0200 (Mitteleuropäische Sommerzeit)

                        ; General preferences
                        M575 P1 S1 B57600 ; enable support for PanelDue
                        G90 ; send absolute coordinates...
                        M83 ; ...but relative extruder moves
                        M550 P"DUKA1300" ; set printer name

                        ; Network
                        M552 S1 ; enable network
                        M586 P0 S1 ; enable HTTP
                        M586 P1 S1 ; enable FTP
                        M586 P2 S1 ; enable Telnet

                        ; Drives
                        ;M569 P4 R-1 ; Treiber 4 deaktivieren
                        ;M569 P3 R-1 ; Treiber 4 deaktivieren
                        M569 P0 S1 ; physical drive 0 goes forwards
                        M569 P1 S1 ; physical drive 1 goes forwards
                        M569 P2 S1 ; physical drive 2 goes forwards
                        M569 P3 S1 ; physical drive 3 goes forwards
                        M569 P4 S0 ; physical drive 3 goes forwards
                        M569 P5 S1 ; physical drive 3 goes forwards Expansionboard
                        M569 P6 S1 ; physical drive 3 goes forwards Expansionboard
                        M569 P7 S1 ; physical drive 3 goes forwards Expansionboard
                        M569 P8 S1 ; physical drive 3 goes forwards Expansionboard
                        ;M584 X0 Z2 E1 ; set drive mapping
                        ;M584 X0 Z2 E1 ; set drive mapping
                        ;M584 X0:4 Y1 Z2 E3 ; set drive mapping
                        M584 X0:4 Y1 Z5:6:7:8 E3 ; set drive mapping
                        M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
                        M92 X80.00 Y80.00 Z640 E322.58 ; set steps per mm
                        M566 X900.00 Y900.00 Z100.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
                        M203 X6000.00 Y6000.00 Z300.00 E1200.00 ; set maximum speeds (mm/min)
                        ;M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
                        M201 X500.00 Y500.00 Z40.00 E250.00 ; set accelerations (mm/s^2)
                        M906 X1800 Y1800 Z1700 E1600 I30 ; set motor currents (mA) and motor idle factor in per cent
                        M84 S30 ; Set idle timeout

                        ; Axis Limits
                        M208 X100 Y0 Z0 S1 ; set axis minima
                        M208 X750 Y640 Z1220 S0 ; set axis maxima

                        ; Endstops
                        M574 X1 S1 P"xstop + e0stop" ; 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"duex.e2stop + duex.e3stop + duex.e4stop + duex.e5stop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop

                        ; Z-Probe
                        ;M558 K0 P1 C"e1stop" ;H5 F120 T6000
                        M558 K0 P5 C"!zprobe.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds (Kapazitiver Sensor)
                        ;M557 X0:735 Y-27:573 S35 ; define mesh grid

                        ; Z-Probe two of them
                        ;M558 K0 P1 C"!zprobe.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds (Kapazitiver Sensor)
                        ;M558 K1 P8 A2 S0.2 C"!zstop" H5 F80 T3000
                        ;G31 P1000 K0 X-1 Y-61 Z0.484 ; set Z probe trigger value, offset and trigger height (Kapazitiver Sensor)
                        ;G31 P1000 K1 X0 Y0 Z12.664 ; Second Z-offset
                        ;M557 X0:735 Y-27:573 S35 ; define mesh grid

                        ; Heaters

                        ; Bed
                        M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
                        M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
                        ;M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
                        ;M307 H2 R0.283 K0.463:0.000 D7.17 E1.35 S1.00 B0 ; enable bang-bang mode for the bed heater and set PWM limit
                        M307 H0 R0.283 K0.463:0.000 D7.17 E1.35 S1.00 B0 ; enable bang-bang mode for the bed heater and set PWM limit
                        M140 H0 ; map heated bed to heater 0
                        M143 H0 S280 ; set temperature limit for heater 0 to 120C

                        ;Hotend
                        M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
                        M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
                        M307 H1 R1.797 K0.742:0.000 D7.57 E1.35 S1.00 B0 V23.8 ; disable bang-bang mode for heater and set PWM limit
                        M143 H1 S400 ; set temperature limit for heater 1 to 400C

                        ; Fans
                        M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
                        M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
                        M950 F2 C"fan2" Q350 ; create fan 2 on pin fan2 and set its frequency
                        M106 P2 S1 H1 T60 ; set fan 2 value. Thermostatic control is turned on

                        ; Tools
                        M563 P0 D0 H1 F0 ; define tool 1
                        G10 P0 X0 Y0 Z0 ; set tool 1 axis offsets
                        G10 P0 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

                        ; Filamentsensor
                        ;M591 D0 P1 C"zstop" S1 ;R40:120 E3.0 S1 Filament Sensor

                        ;Auto Z-Offset
                        ; Custom settings are not defined
                        M501

                        fcwiltundefined droftartsundefined 2 Replies Last reply Reply Quote 0
                        • fcwiltundefined
                          fcwilt @axiom
                          last edited by

                          @axiom

                          Did you try shortening the line? I believe the comment is included when it comes to being too long.

                          And you can remove the M501 at the end if you wish to silence the error about config-override.g being missing.

                          Frederick

                          Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                          1 Reply Last reply Reply Quote 0
                          • droftartsundefined
                            droftarts administrators @axiom
                            last edited by

                            @axiom What firmware version are you on? This has come up before, and it's because the string for the endstops is too long. See https://forum.duet3d.com/topic/32954/duet-2-wifi-voron-2-4-multiple-z-endstops-query
                            This was fixed in RRF 3.4.6, with an increase from 50 to 61.

                            However, I think you just need to take out the spaces in yours to get under the 50 character limit, ie

                            M574 Z1 S1 P"duex.e2stop+duex.e3stop+duex.e4stop+duex.e5stop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
                            

                            That's 47 characters.

                            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

                            axiomundefined 1 Reply Last reply Reply Quote 1
                            • axiomundefined
                              axiom @droftarts
                              last edited by

                              @droftarts Deleting the spaces was the solution...it no longer gives an error
                              dfe0d5e9-eef0-4361-947d-47d8479584c3-grafik.png message and the g1 h1 z0 command works and the bed stops at the endstops...now I can continue researching! Thank you so much!!!!

                              droftartsundefined 1 Reply Last reply Reply Quote 0
                              • droftartsundefined
                                droftarts administrators @axiom
                                last edited by

                                @axiom What firmware version? Send M115 in the console and post response, please.

                                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

                                axiomundefined 1 Reply Last reply Reply Quote 0
                                • axiomundefined
                                  axiom @droftarts
                                  last edited by

                                  @droftarts cab2a957-5860-4b95-917e-c4a66b6e39a1-grafik.png

                                  droftartsundefined 1 Reply Last reply Reply Quote 0
                                  • droftartsundefined
                                    droftarts administrators @axiom
                                    last edited by

                                    @axiom You'll probably find it easier if you update to RRF 3.4.6, the current release. You shouldn't have to change your configuration.

                                    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

                                    axiomundefined 1 Reply Last reply Reply Quote 0
                                    • axiomundefined
                                      axiom @droftarts
                                      last edited by

                                      @droftarts said in reference the X-axis on both rails:

                                      You'll probably find it easier if you update to RRF 3.4.6, the current release. You shouldn't have to change your configuration.
                                      Ian

                                      Can I just click on it here, or do I have to prepare something?
                                      bc75f0dd-1385-48e9-b143-ef8b0dbcb445-grafik.png

                                      droftartsundefined 1 Reply Last reply Reply Quote 0
                                      • droftartsundefined
                                        droftarts administrators @axiom
                                        last edited by

                                        @axiom download "Duet2and3Firmware-3.4.6.zip" from https://github.com/Duet3D/RepRapFirmware/releases/tag/3.4.6 without unzipping it, then upload it to the Duet. It will unpack it and install the firmware update.

                                        There's a whole wiki page on firmware updates: https://docs.duet3d.com/User_manual/RepRapFirmware/Updating_firmware

                                        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

                                        axiomundefined 1 Reply Last reply Reply Quote 0
                                        • axiomundefined
                                          axiom @droftarts
                                          last edited by

                                          @droftarts Is there something to update for the Due5 expansion board...or is that okay?5d5f7a8d-0e0f-48c6-9e71-6da9b72fbfb8-grafik.png

                                          1 Reply Last reply Reply Quote 0
                                          • Phaedruxundefined
                                            Phaedrux Moderator
                                            last edited by

                                            The Duex does not have it's own firmware.

                                            Z-Bot CoreXY Build | Thingiverse Profile

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