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

    Y bed and Endstop offset?

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    7
    936
    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.
    • GT1Zaundefined
      GT1Za
      last edited by

      Hi Everyone,
      Im an absolute amature when it comes to firmware, so please excuse me but I am trying to learn. Im having an issue with positioning the print head and endstops, and Im assuming I need to put in some type of offset. My printer is a CR10 S5 (cartisian with 510x510 bed size, print area 500x500). I bought a linear rail kit from 3Dfused, but Im having a serious issue with the bed positioning.

      If I home the Y axis and take this position as 0. Then mark the actual center of the bed with a marker, the printer needs to be at Y287 to actually be center of the bed. The issue with doing this means that if I try to move the full length of the bed (Y500) i run out of space at Y467 .
      The actual rail lengths are 650mm.

      At first I thought maybe the motor esteps were off, but Ive tried printing as big as 360x340 as a test and dimensionally the print is perfect. So I dont believe its the esteps and more has to do with how the firmware is recording the endstop and bed positioning.

      My current config:

      ; Drives
      M569 P0 S0                                ; 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
      M584 X0 Y1 Z2:4 E3		  	; two Z motors connected to driver outputs Z and E1
      M671 X-20:220 Y0:0 S0.5 	     	; leadscrews at left (connected to Z) and right (connected to E1) of X axis
      M208 X-5:205 Y0:200 		    	; X carriage moves from -5 to 205, Y bed goes from 0 to 200
      M350 X16 Y16 Z16 E16 I1                   ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E408          ; set steps per mm
      M566 X500.00 Y500.00 Z24.00 E300.00     ; set maximum instantaneous speed changes (mm/min)
      M203 X12000.00 Y12000.00 Z300.00 E3600.00 ; set maximum speeds (mm/min)
      M201 X500.00 Y500.00 Z100.00 E5000.00     ; set accelerations (mm/s^2)
      M906 X800 Y800 Z900 E800 I30            ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                 ; Set idle timeout
      
      ; Axis Limits
      M208 X5 Y-37 Z-2.5 S1                    ; set axis minima
      M208 X500 Y463 Z500 S0                  ; set axis maxima
      
      ; Endstops
      M574 X1 Y1 S1                           ; set active high endstops
      M574 Z1 S2                              ; set endstops controlled by probe
      
      ; Z-Probe
      M558 P9 H5 F120 T6000 A2                ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X-30.8 Y0 Z2.55                ; set Z probe trigger value, offset and trigger height
      M557 X15:445 Y15:445 S20                ; define mesh grid
      
      ; Heaters
      M305 P0 T100000 B4138 R2200             ; set thermistor + ADC parameters for heater 0
      M143 H0 S120                            ; set temperature limit for heater 0 to 120C
      M305 P1 T100000 B4138 R2200             ; set thermistor + ADC parameters for heater 1
      M143 H1 S280                            ; set temperature limit for heater 1 to 280C
      
      ; Fans
      M106 P0 S1 I0 F500 H1 T30               ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
      M106 P1 S1 I0 F500 H1 T45               ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
      
      ; Tools
      M563 P0 D0 H1 F0                        ; define tool 0
      G10 P0 X0 Y0 Z0                         ; set tool 0 axis offsets
      G10 P0 R0 S0                            ; set initial tool 0 active and standby temperatures to 0C
      

      Any suggestions on how I fix this so that I can actually use the full extent of my bed?

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

        ; Axis Limits
        M208 X5 Y-37 Z-2.5 S1                    ; set axis minima
        M208 X500 Y463 Z500 S0                  ; set axis maxima
        

        37+463=500

        So you've got it so that when the Y endstop is hit, it's telling the firmware that the nozzle is 37mm off the edge of the bed, but you're also telling it that from the edge of the bed onward it can only go 463mm. That should be the full 500mm shouldn't it?

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • GT1Zaundefined
          GT1Za
          last edited by

          @Phaedrux well thats what I thought... but the problem is that if I make the endstop 0 and tell it to move to Y250 Im well off the center of the bed.
          I am understanding that I have the 500mm in movement, but if I had to try and print a 500x500 block for arguements sake, Id be well off the bed. How do I get the firmware or the slicer understand the positioning correctly?

          1 Reply Last reply Reply Quote 0
          • GT1Zaundefined
            GT1Za
            last edited by GT1Za

            let me try explain it this way.

            X0 Y0 should be the front left of my bed. I have made a mark 10mm in from each side given that the bed is actually 510 by 510.

            My X and Y coordinates are actually X5 Y6 when I position the nozzle over this point on the bed

            My X endstop on the X actually hits at X5 so it recording a position of X5 would make it 10 which is correct mathematically, but will mean that everything actually prints 5mm to the left.

            Frankly Im just lost on the Y

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

              What I mean is that your Y maxima should be 500 if you bed size is a full 500. If the nozzle is 37mm off the edge of the bed when the endstop is triggered, that's fine, and the minima can be -37, but if the actual bed size is 500mm long than the maxima still needs to be 500, not 463.

              Maybe I'm not understanding what you're saying.

              Try drawing up a diagram like this

              Bed Area.png

              It can also help to measure your bed size by moving the nozzle to the front left corner and sending G92 X0 Y0, then you can jog the head around to the extents of travel and note the coordinates. Use M564 S0 H0 to allow all movement.

              That way you can get the true size of the bed and actual positions of the endstops when they trigger relative to that 0,0 point. Set your M208 minima and maxima accordingly.

              Z-Bot CoreXY Build | Thingiverse Profile

              1 Reply Last reply Reply Quote 0
              • GT1Zaundefined
                GT1Za
                last edited by

                Ahh ok I see what you are saying. So the issue and why I set the maxima to 467 was simple. Past that you run out of room to move. If I change the maxima to 500, anything past the 467 causes the rails to hit the end of the rail and cant move past. So the 467 is the physical limit of it.

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

                  @GT1Za said in Y bed and Endstop offset?:

                  X0 Y0 should be the front left of my bed. I have made a mark 10mm in from each side given that the bed is actually 510 by 510.

                  If the bed is 510 x 510 shouldn't the marks be made at 5mm in from each edge? 510 - (10 + 10) is 490.

                  My X endstop on the X actually hits at X5 so it recording a position of X5 would make it 10 which is correct mathematically, but will mean that everything actually prints 5mm to the left.

                  You can adjust your axis min/max values to account for actual endstop position but there is another way.

                  For this example assume X min is set to 0, X max is set to 500 and the endstop sensor triggers at X = 5.

                  G91              ; relative moves
                  G1 H1 X-520 Faaa ; move toward the endstop at a "fast" speed (sets X position to X min)
                  G1 X20           ; back off enough so endstop is not triggered
                  G1 H1 X-30 Fbbb  ; move again toward the endstop at a "slow" speed to improve accuracy
                  G90              ; absolute moves
                  G92 X5           ; set the X position to the actual position where the endstop triggered
                  

                  Frederick

                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. 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