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

    SCARA Crosstalk Not Behaving as Expected, Help Appreciated

    Scheduled Pinned Locked Moved Unsolved
    Tuning and tweaking
    2
    7
    295
    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.
    • koaldesignsundefined
      koaldesigns
      last edited by koaldesigns

      I am currently configuring the firmware for my SCARA arm and have finally figured out how to get homing to work properly using

      G90
      G0 H1 X-300 Y-300
      G91
      

      which will home both arms at the same time resulting in no interference while homing which can occur using some other homing styles.

      For reference, my SCARA machine follows the same mechanical design as the MPSCARA.

      I can use the G0/G1 H2 X0 Y0 command to reach a position where the proximal arm is parallel to the X-axis and the distal and proximal arms are facing the same direction. Looking at the X/Y positioning I see that the coordinates are correct being at 752X and 0Y, but when I input G0/G1 H2 X90 Y0 I would expect the positioning to be -376X and 376Y, but the firmware reads 0X and 752Y. I have been trouble shooting for so long I don't even remember and have not came to a definitive solution.

      Here is my config.g file (ignore the comment tags I have changed things, they are from the common/base file I copied, but I have changed the things):

      ; Axis and motor configuration
      ; Printer Settings
      M669 K4 P376 D376 A-140;110 B0;172 C-1:0:0 X0 Y0
      M569 P0 S1					; Drive 0 goes forwards
      M569 P1 S0					; Drive 1 goes forwards
      M569 P2 S1					; Drive 2 goes forwards
      M569 P3 S1					; Drive 3 goes forwards
      M569 P4 S1					; Drive 4 goes forwards
      
      ;Endstops
      M574 X1 S1 P"!xstop"   ; X min active low endstop switch
      M574 Y1 S1 P"!ystop"   ; Y min active low endstop switch
      ;M574 Z2 S3 P"zstop"   ; Z max active high endstop switch
      ;M574 U2 S1 P"e0stop"  ; U max active high endstop switch
      
      ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration
      
      M350 X16 Y16 Z16 E16:16 I1			; Set 16x microstepping with interpolation
      M92 X262.2222 Y262.2222 Z800		; Set axis steps/degree
      M906 X800 Y800 Z1000 E800 I60			; Set motor currents (mA) and increase idle current to 60%
      M201 X1000 Y1000 Z1000 E1000			; Accelerations (mm/s^2)
      M203 X20000 Y20000 Z300 E3600			; Maximum speeds (mm/min)
      M566 X1200 Y1200 Z800 E1200			; Maximum instant speed changes mm/minute
      
      ; Thermistors
      M305 P0 T100000 B3950 R4700 H30 L0		; Put your own H and/or L values here to set the bed thermistor ADC correction
      M305 P1 T100000 B3974 R4700 H30 L0		; Put your own H and/or L values here to set first nozzle thermistor ADC correction
      M305 P2 T100000 B3974 R4700 H30 L0		; Put your own H and/or L values here to set 2nd nozzle thermistor ADC correction
      
      M570 S180					; Hot end may be a little slow to heat up so allow it 180 seconds
      
      ; Adjustments for dummy heaters on test rig
      M307 H0 A250 C140 D5.5 B1
      M307 H1 A250 C140 D5.5 B0
      M307 H2 A250 C140 D5.5 B0
      
      ; Fans
      M106 P1 S-1					; disable thermostatic mode for fan 1
      
      ; Tool definitions
      M563 P0 D0 H1					; Define tool 0
      G10 P0 S0 R0					; Set tool 0 operating and standby temperatures
      ;*** If you have a single-nozzle build, comment the next 2 lines
      M563 P1 D1 H2					; Define tool 1
      G10 P1 S0 R0					; Set tool 1 operating and standby temperatures
      M92 E80:80					; Set extruder steps per mm
      
      ; Z probe and compensation definition
      ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command. 
      M558 P5 F100 T6000 X0 Y0 Z0 H3			; Z probe is a Smart Effector and is not used for homing any axes R0.4 not used. Reduced F300 to 100
      G31 P100 X0 Y0 Z-0.25				; Set the zprobe height and threshold for Smart Effector
      
      ;*** If you are using axis compensation, put the figures in the following command
      M556 S78 X0 Y0 Z0				; Axis compensation here
      
      M208 S1 Z-0.2					; set minimum Z
      
      T0						; select first hot end
      ; M117 Use https://configurator.reprapfirmware.org/ to set up your printer config
      
      

      I am not looking to have the tools work right now. I am looking to just get movement to work correctly and maybe run some gcode to get it to move properly.

      While running Gcode currently I get the error "G1/G2/G3 Intermediate position outside machine limits" which I would assume comes from the Cartesian positioning and arm angle being off.

      1 Reply Last reply Reply Quote 0
      • koaldesignsundefined
        koaldesigns
        last edited by

        I have created a github which includes all pertinent information to figure out what's actually wrong with my stupidity. https://github.com/koaldesigns/IBIS-S1

        1 Reply Last reply Reply Quote 0
        • oliofundefined
          oliof
          last edited by

          Can you show us photos from the top showing arm positions

          a) at homing positions
          b) after your G0 H2 X90 Y0

          (I think your M669 requires X and Y offsets defined).

          <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

          1 Reply Last reply Reply Quote 0
          • koaldesignsundefined
            koaldesigns
            last edited by

            @oliof Image one is the homing position of the arm where both joints are in line and have the smallest (negative) angle in relation to the x-axis.

            alt text

            The second image shows the arm position after giving the G0 H2 X0 Y0 command (disregard the minor offset, I haven't fully tuned offsets yet)

            alt text
            The third image shows the arm position after giving the G0 H2 X90 Y0 command.

            alt text

            1 Reply Last reply Reply Quote 0
            • oliofundefined
              oliof
              last edited by oliof

              With your move, You are moving the proximal Arm by plus 90 degrees (due to H2), and your crosstalk setting keeps the distal arm in place (barring some lack in precision somewhere). So I'd say homing and moving according to angular commands is working correctly.

              If I understand correctly, you disagree with the position report in DWC.

              I believe what's missing is a reasonable X and Y offset in your M669 to give you a properly addressable print space.

              Add X and Y offsets in your M669 to modify the coordinates you currently see to what you want, and try again?

              <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

              1 Reply Last reply Reply Quote 0
              • koaldesignsundefined
                koaldesigns
                last edited by koaldesigns

                I have mathed out the entire diagram of what the positions should be....

                alt text

                The problem I seem to be having is that any movement of the distal arm seems to assume both the distal and proximal arm are moving even though the crosstalk is set to -1:0:0.

                1 Reply Last reply Reply Quote 0
                • oliofundefined
                  oliof
                  last edited by

                  As discussed elsewhere, there are semicolons in the M669 line. You also need to define axis limits with M208 or the defaults (min:0, max 200) will be applied.

                  <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

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