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

    M666 For Lowrider 3 CNC

    Scheduled Pinned Locked Moved
    CNC
    2
    2
    526
    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.
    • Alijambo73undefined
      Alijambo73
      last edited by Alijambo73

      Have have recently built a lowrider 3 CNC with a duet 2 wifi board. it has been a challenge to get it all configured but i think I'm getting close. the usable area is 49 x 97 and after checking it for square with diagonal measurements its about 2 mm off. On the V1 site it mentions using M666 to adjust the long side. it uses 2 y motors so I'm not quite sure where or how to correctly use it to adjust the long side after homing.

      Any thoughts?

      
      ; General preferences
      G90                                             ; send absolute coordinates...
      M83                                             ; ...but relative extruder moves
      M550 P"LowRider3"                               ; set printer name
      
      ; Network
      M552 S1                                         ; enable network
      M586 P0 S1                                      ; enable HTTP
      M586 P1 S0                                      ; disable FTP
      M586 P2 S0                                      ; disable Telnet
      
      ; Drives
      M669 K0                                         ; set Cartesian kinematics
      M569 P0 S1                                      ; physical drive 0 (X) goes forwards
      M569 P1 S1                                      ; physical drive 1 (Y) goes forwards
      M569 P2 S0                                      ; physical drive 2 (Z) goes backwards
      M569 P3 S1                                      ; physical drive 3 (Y1) goes forwards
      M569 P4 S1                                      ; physical drive 4 (Z1) goes Forwards
      M584 X0 Y1:3 Z2:4 U3 V4 P3                      ; set drive mapping: X on drive 0, Y on 1 and 3, Z on 2 and 4
      M350 X16 Y16 Z16 U16 V16 I1                     ; configure microstepping with interpolation
      M92 X100.00 Y100.00 Z400.00                     ; set steps per mm
      M566 X60.00 Y60.00 Z60.00                       ; set maximum instantaneous speed changes (mm/min)
      M203 X12000.0 Y12000.0 Z3000.00                 ; set maximum speeds (mm/min) 5 centimeters per second, lol
      M201 X1500.0 Y1500.0 Z60.00                     ; set accelerations (mm/s^2)
      M906 X900 Y900 Z900 U900 V900 I75          ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                         ; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y0 Z-1.5 S1                             ; set axis minima
      M208 X1244.6 Y2490 Z72 S0                      ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"^xstop"                            ; configure active-high endstop for low end on X via pin ^xstop
      M574 Y1 S1 P"^ystop+^e0stop"                    ; configure active-high endstop for low end on Y via pin ^ystop+^e0stop
      M574 Z2 S1 P"^zstop+^e1stop"                    ; configure active-high endstop for high end on Z via pin ^zstop+^e1stop
      ;M666 Y-1.5										; move Y1 motor -1.5 from block to adjust for square
      droftartsundefined 1 Reply Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @Alijambo73
        last edited by

        @alijambo73 M666 is currently only for endstop adjustment on delta machines, though it has been added to the firmware wishlist, I think. Marlin firmware, and maybe others, allows endstop adjustment with M666 on other kinematics.

        The work around is to either have an adjustable endstop on one of your Y motors (or both), or to split the Y axis motors into two separate axes, home them at the same time, apply a correcting move to one axis, then set a new axis position. Finally, recombine the axes into one Y axis. Your Y is defined as using drivers 1 and 3, and you have already defined one of them as U (though you don't specify M92, M566, M203 or M201 values for U or V, which you should), so your Y homing would look something like:

        ; homey.g
        M584 Y1 U3 P4             ; split Y axis into Y and U
        G1 H1 Y-1300 U-1300 F1000 ; home Y and U
        G1 H2 U2                  ; adjust U axis (could be Y axis you adjust)
        G92 U0                    ; set U axis position to 0 (this may not be necessary)
        M584 Y1:3 P3              ; combine Y and U back into Y axis
        G92 Y0                    ; set Y axis position to 0
        

        Well, I think that should work! For a full guide, see the 'Axis levelling using endstops' section here:
        https://docs.duet3d.com/User_manual/Connecting_hardware/Z_probe_auto_levelling#axis-levelling-using-endstops
        BUT look at the RepRapFirmware 2.x instructions, which split the axis as above. Also note that G1 S1/S2 commands from that guide should be G1 H1/H2 in RepRapFirmware 3.

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