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