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

              @fcwiltI have now adapted the home files according to your stage directions (see below) and removed the homeall.g as you said. when I click the reference button on the user interface 925b48d8-d775-4e9c-a5ee-7cd39c479064-grafik.png , the error message comes up:
              d8322933-f981-4334-a93f-7965c69cbb9b-grafik.png
              Now I don't know what homeall.g should look like?

              Here are my new homing files:

              ; homex.g
              ; called to home the X axis
              ;
              ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 28 2023 15:23:44 GMT+0200 (Mitteleuropäische Sommerzeit)
              G91 ; relative positioning
              G1 H1 Z5 F6000 ; lift Z relative to current position
              G1 H1 X-755 F6000 ; move quickly to X axis endstop and stop there (first pass)
              G1 H1 X10 ; go back a few mm
              G1 H1 X-10 F600 ; move slowly to X axis endstop once more (second pass)
              G1 H1 Z-5 F6000 ; lower Z again
              G92 X0 ; where ### is the actual axis position when the motion stopped - usually determined by testing

              ; homey.g
              ; called to home the Y axis
              ;
              ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 28 2023 15:23:44 GMT+0200 (Mitteleuropäische Sommerzeit)
              G91 ; relative positioning
              G1 H1 Z5 F6000 ; lift Z relative to current position
              G1 H1 Y-643 F6000 ; move quickly to Y axis endstop and stop there (first pass)
              G1 H2 Y10 ; go back a few mm
              G1 H1 Y-10 F600 ; move slowly to Y axis endstop once more (second pass)
              G1 H2 Z-5 F6000 ; lower Z again
              G92 Y0 ;where ### is the actual axis position when the motion stopped - usually determined by testing

              ; homez.g
              ; called to home the Z axis
              ;
              ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 28 2023 15:23:44 GMT+0200 (Mitteleuropäische Sommerzeit)
              G91 ; relative positioning
              G1 H1 Z-1230 F6000 ; lift Z relative to current position
              G1 Z20 ; back off a bit
              G1 H1 Z-20 F300 ; slow move to min endstop
              G92 Z7,1 ; home Z by probing the bed

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

                @axiom

                I don't recall saying to remove the homeALL.g file.

                What I think I said was I don't duplicate homing code so my homeALL.g file looks something like this:

                M98 P"homeZ.g"
                M98 P"homeX.g"
                M98 P"homeY.g"
                

                The results are the same but there is no actual "homing" code in homeALL.g.

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

                  @axiom

                  And since you now have Z endstops you don't need to use the type of homing code the configuration tool generates.

                  I also suggest you work towards not using the configuration tool and learn how to create your own code.

                  Your code will likely be better and fixing code related problems will be easier since you fully understand what you coded.

                  Didn't I post examples of what your basic homing files would look like?

                  Basically you do:

                  • a fast G1 H1 move toward the endstop
                  • a short fast move G1 move away from the endstop
                  • a slow G1 H1 move toward the endstop
                  • a possible G92 to set the logical position of the axis being homed to match the physical position

                  Assume a printer where the X endstop is at the min end of the X axis and the axis has a range of motion of 300mm:

                  G1 H1 X-310 F6000
                  G1 X20
                  G1 H1 X-25 F600
                  G92 X=nnn ; where nnn is actual position of the X axis after the 3 moves above
                  

                  Frederocl

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

                    I'm just stuck...if my z-endstops are set to 4 and I want to reference...but the bed is already above the end stops, e.g. 2...then the bed moves into the head. So I currently have to move the bed below the endstops before referencing...how can I correct this in the z-home. Here are my files again:

                    ; homez.g
                    ; called to home the Z axis
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 28 2023 15:23:44 GMT+0200 (Mitteleuropäische Sommerzeit)
                    G91 ; relative positioning
                    G1 H1 Z-1225 F4000 ; lift Z relative to current position
                    G1 Z10 ; back off a bit
                    G1 H1 Z-10 F300; slow move to min endstop
                    G92 Z4 ; home Z by probing the bed

                    ; homex.g
                    ; called to home the X axis
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 28 2023 15:23:44 GMT+0200 (Mitteleuropäische Sommerzeit)
                    G91 ; relative positioning
                    G1 H1 Z5 F4000 ; lift Z relative to current position
                    G1 H1 X-755 F4000 ; move quickly to X axis endstop and stop there (first pass)
                    G1 H1 X10 ; go back a few mm
                    G1 H1 X-10 F300 ; move slowly to X axis endstop once more (second pass)
                    G1 H1 Z-5 F4000 ; lower Z again
                    G92 X0 ; where ### is the actual axis position when the motion stopped - usually determined by testing
                    G1 x10

                    ; homey.g
                    ; called to home the Y axis
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 28 2023 15:23:44 GMT+0200 (Mitteleuropäische Sommerzeit)
                    G91 ; relative positioning
                    G1 H1 Z5 F4000 ; lift Z relative to current position
                    G1 H1 Y-643 F4000 ; move quickly to Y axis endstop and stop there (first pass)
                    G1 H2 Y10 ; go back a few mm
                    G1 H1 Y-10 F300 ; move slowly to Y axis endstop once more (second pass)
                    G1 H2 Z-5 F64000 ; lower Z again
                    G92 Y0 ;where ### is the actual axis position when the motion stopped - usually determined by testing
                    G1 y10

                    and homeall:

                    M98 P"homeY.g"

                    M98 P"homeX.g"

                    M98 P"homeZ.g"

                    ; 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 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 X0 Y0 Z0 S1 ; set axis minima
                    M208 X750 Y643 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 P5 C"!zprobe.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds (Kapazitiver Sensor)
                    M558 K1 P8 A2 S7 C"duex.e6stop" H5 F80 T3000
                    G31 P1000 K0 X0 Y-25 Z0.817 ; set Z probe trigger value, offset and trigger height (Kapazitiver Sensor)
                    M557 X0:735 Y-25: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 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"fan1" 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"e1stop" S1 ;R40:120 E3.0 S1 Filament Sensor

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

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

                      @axiom

                      You have to design the mounting of the endstops so they are triggered to the very end of travel.

                      MFx Z AXIS ENDSTOP.jpg

                      Here you can see part of the Z axis setup on my tripple Z stepper printer. The endstop switch is activated by the side of that bracket that is supporting the ball stud. The bracket travels along the linear rail. The endstop switch is first activated well before the end of Z travel but remains activated to the very end of travel.

                      So you cannot move "past" the endstop.

                      Let's suppose you use a typical bit of homing code like below:

                      G91
                      G1 H1 Z-300 F1200
                      G1 Z50
                      G1 H1 Z-55 F300
                      

                      If you start with endstop already activated the first G1 move doesn't actually move and the code continues doing the backup move and then the slow move to endstop.

                      Some folks include a test to see if the homing code starts out with the endstop activated and if it is the code backs off enough to insure the endstop should no longer be activated and if it is still activated they abort the homing and display and error message.

                      That "safety" check is a pretty good idea.

                      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 but you wrote to me that if my endstops are further down, then I can simply define the position, e.g. 4, with the G92 command... I need the information on how to automatically go deeper than 10 mm when referencing ...when it starts up it encounters the endstops...is the G91 command at the beginning perhaps wrong?

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

                          @axiom

                          You can use G92 to sync up the logical position with the actual physical position.

                          But if you can move past the endstop until it is no longer triggered you would have to insure that every Z homing operation began with a relative move to be sure you were no longer past the endstop. And that move could cause a problem if you happened to be near the max end of travel.

                          As you can see I deal with that problem by insuring that endstop can be triggered all the way to the end of travel regardless of where it is initially triggered.

                          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
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA