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

Scara Setup

Scheduled Pinned Locked Moved
Tuning and tweaking
4
101
13.6k
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.
  • undefined
    Billhc83
    last edited by 4 Nov 2017, 14:36

    Thank you David.

    I believe I would need values of A -90:90 and B-90:90 if I understand you correctly.

    Things are homing correctly now I beleive. Which is great thank you.

    The arm I am using has the same mechanics as this one https://www.thingiverse.com/thing:1241491

    I am going to try a gcode file of movement and see what happens. Thanks for the help.

    1 Reply Last reply Reply Quote 0
    • undefined
      Billhc83
      last edited by 11 Apr 2017, 17:18 4 Nov 2017, 17:16

      So I am at the point where I think there may be a problem with something.

      I can home XYZ.

      I am homing X and Y all the way to the left (clockwise) then bring the arms back around so they are in line. This is what I am doing in Homeproximal and homedistal files. Firmware reports position x -74.4 and y 163.5

      Homez lower till I hit endstop then raise up 10mm. firmware reports z 10mm.

      If i do g91 to set relative moves then do G1 S2 X10 f2000 This seems to move the axis 10 degrees as i believe it should, this works with both x and y.

      If I go back to absolute with g90, and do G1 S2 X45 f2000 from the home position (when the arms are straight in line) i expect that the proximal joint will rotate 45 degrees counterclockwise which it does, and if i then do G1 S2 X-45 f2000 I rotates the arm back to -45 degree angle (90 degrees of movement).

      But now if I rotate the distal arm the firmware does not know where it is as it has rotated when the proximal arm moved. If starting from 0, I were to move the proximal axis +45 degrees G1 S2 X45 f2000 (which would move the distal arm angle to -45 degrees) then try to move to say G1 S2 Y-50 f2000 (which I think should move the distal to 50 degrees) the arm just crashes through the endstop as I think it is actually trying to go to 95 degrees which is not a reachable position.

      1 Reply Last reply Reply Quote 0
      • undefined
        Billhc83
        last edited by 4 Nov 2017, 17:34

        A couple other things

        If i was to home the y axis before the x axis this causes my distal arm to crash into the belts because it is not free to move as the proximal arm homes and is rotating(depends on the position the arms start in). and is locked in place by the holding strength of the motor.

        If I use the jog buttons after homing this causes the arms to crash, the proximal moves cw while the distal move ccw (even if i just jog the z the arms decide to crash). Similar thing happens when I try to print a file of moves. I Think there may be some maths somewhere that is not getting done???

        1 Reply Last reply Reply Quote 0
        • undefined
          dc42 administrators
          last edited by 4 Nov 2017, 19:04

          If you delete the homeproximal.g, homedistal.g and homez.g files then it will use homeall.g when you send any homing command. That is what I did on my SCARA printer, because the homing order is critical on that too.

          G1 S2 X moves should move both motors if you use the correct C parameter, so that the distal joint angle (not the arm angle) remains constant. For example, if the arms are in line initially, they should remain in line when you do a G1 S2 move. Is that not happening? I'll check the code when I am back in the office.

          The XY position when you have both arms in line sounds wrong to me. If you had both joint angles at zero and no X or Y offset in the M669 command, you should have Y=0 and X= sum of the arm lengths.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          1 Reply Last reply Reply Quote 0
          • undefined
            Billhc83
            last edited by 11 Apr 2017, 19:20 4 Nov 2017, 19:12

            The arms are not staying inline when I do a x move. I have tried a number of values for c.

            My M669 has a xy offset. I will remove that when I get back to it and see what it says.

            1 Reply Last reply Reply Quote 0
            • undefined
              Billhc83
              last edited by 5 Nov 2017, 00:40

              After removing XY offset the web interface reports x11 y13 when the arm is rotated to the 0 angle( both arms in line in the middle of the movement range)
              Here is a video of the behavior of a g1 s2 x move after homing. as you can see the distal angle does not remain the same. I believe the C parameter in the video was set to -1 I have tried a variety of values without any change.
              https://youtu.be/vuMC6BDucdE)

              Another video showing homing behavior and crash after using jog button
              https://youtu.be/8wLSmmAf0dg

              1 Reply Last reply Reply Quote 0
              • undefined
                dc42 administrators
                last edited by 5 Nov 2017, 14:16

                I was wrong about G1 S2 moves. These moves are defined as raw motor moves. So it is correct that the distal joint arm angle changes when you do a G1 S2 X move.

                During proximal homing, to avoid the possibility of the distal joint reaching the end of its travel, I suggest you command both motors. For example:

                G91 ; relative movement
                G1 S1 X300 Y-300 F3000 ; home proximal joint

                One possible issue I can see with this is that the distal endstop switch will be active too, so if the distal arm is at the end of its travel against the endstop switch when you start the homing move, then the proximal homing move will not be completed. You could command a small anticlockwise movement of the distal arm first to avoid this possibility.

                In the second video, you pressed the Z-10 button. So it tried to move the arm down into the bed. However, any software axis limits you set with M208 ought to be obeyed.

                The x11 y13 position reported after homing is obviously wrong, so I think this explains the unwanted distal arm movement in your second video. Please share your config.g file. Also, please can you home all axes, check that the homing buttons are all blue at the end, and report the output of M114.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                1 Reply Last reply Reply Quote 0
                • undefined
                  Billhc83
                  last edited by 5 Nov 2017, 16:27

                  After homing all buttons do indeed turn blue. This is the positions of the axis when sitting at the endstops after homing:

                  11:18:24 AM
                  M114
                  X:95.221 Y:-58.365 Z:0.000 E0:0.0 E1:0.0 E2:0.0 E3:0.0 E4:0.0 E5:0.0 Count -5695 -2401 0 User 95.2 -58.4 0.0

                  The second video was not great At the end when I press the z-10 the arms also moved quickly as well and crashed.

                  Config:

                  ; General preferences
                  M111 S0 ; S0 Debugging off S1 Debugging on
                  M550 scara ; Machine name (can be anything you like)
                  M551 Preprap ; Machine password (used for FTP)
                  M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0x42 ; MAC Address
                  ;*** Adjust the IP address and gateway in the following 2 lines to suit your network
                  M552 P192.168.1.118 ; IP address (0 = use DHCP)
                  M554 P192.168.1.254 ; Gateway
                  M553 P255.255.255.0 ; Netmask
                  G21 ; Work in millimetres
                  G90 ; Absolute moves
                  M83 ; Relative extrusion
                  ;Limits
                  M208 X0 Y0 Z0 S1 ; Min
                  M208 X100 Y100 Z150 S0 ; Max

                  ; Endstops
                  M574 X1 Y1 Z1 S1 ;

                  ; Drives - Axis and motor configuration
                  M569 P0 S0 ; Drive 0 (X) goes forwards
                  M569 P1 S1 ; Drive 1 (Y) goes forwards
                  M569 P2 S0 ; Drive 2 (Z) goes forwards
                  M569 P3 S0 ; Drive 3 (E0) goes forwards
                  M92 X67 Y28.25 ;Steps per degree
                  M92 Z400 E550 ; Steps per mm
                  M566 X300 Y300 Z15 E75 ; Set maximum instantaneous speed changes (mm/min)
                  M203 X2000 Y2000 Z300 E1500 ; Set maximum speeds (mm/min)
                  M201 X300 Y300 Z250 E800 ; Set accelerations (mm/s^2)
                  M906 X1000 Y1000 Z1000 E1000 I60 ; Set motor currents (mA) and motor idle factor in per cent
                  M84 S30 ; Set idle timeout
                  M669 K4 P111.4 D100.4 A-85:85 B-85:85 C-1:0:0 S150 T0.1 X0 Y0;

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    Billhc83
                    last edited by 6 Nov 2017, 13:36

                    Davis is machinePos the coordinates reported in the web interface? Trying to work through the math….

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      dc42 administrators
                      last edited by 6 Nov 2017, 14:13

                      Hi Bill,

                      One problem I have spotted is that the crosstalk factors must currently be specified in motor steps, not amounts of movement. In other words, your proximal to distal crosstalk factor of -1 means that each forward step of the proximal motor needs to be countered by one reverse step of the distal motor. As you are using different steps/mm for your proximal and distal arms, -1 is not correct for your machine. I think the correct value is -67/28.25 instead.

                      Thinking about it, it would be more logical to make the crosstalk based on amount of movement instead so as to be independent of the steps/mm. I'll make this change in the next 1.20 beta version.

                      Duet WiFi hardware designer and firmware engineer
                      Please do not ask me for Duet support via PM or email, use the forum
                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        Billhc83
                        last edited by 11 Jun 2017, 14:46 6 Nov 2017, 14:40

                        Ok thanks I'll give it a shot

                        I think I will try this on my duet Wi-Fi just to make sure it is not just a problem with using the 0.6 board

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          Billhc83
                          last edited by 7 Nov 2017, 01:23

                          I agree that cross talk based on movement would be better.

                          I think there may be a issue with the minRadius calculation (I could be wrong of course). When I input my values into the calculation I come up with a number that I do not believe is correct. Since my scara has limited movement (everything forms a right angled triangle at the limits because it can only rotate 90 degrees from 0) it is very easy to calculate some of the values. For instance the minRadius of my arm I believe is just the hypotenuse of the triangle it forms. I have a value of 150 or so for min radius based on this. When i put my numbers into the code I get a value of 211 or so(I may have done this wrong who know's just trying to pick away at things). My max radius is only 210.8. Let me know what you think about this.

                          1 Reply Last reply Reply Quote 0
                          • undefined
                            dc42 administrators
                            last edited by 7 Nov 2017, 09:50

                            You are right, the minimum radius calculation is wrong. Thanks for pointing this out. I've just corrected it in the source code and the next 1.20 beta will include the fix. I've also changed the way the crosstalk factors work, to relate the distances moved instead of the motor steps - in degrees for the arms and in mm for Z.

                            Duet WiFi hardware designer and firmware engineer
                            Please do not ask me for Duet support via PM or email, use the forum
                            http://www.escher3d.com, https://miscsolutions.wordpress.com

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              Billhc83
                              last edited by 11 Oct 2017, 19:48 10 Nov 2017, 19:46

                              So I have switched everything over from the v0.6 to my wifi and I won't say everything works as expected but everything works. So there is definitely something that doesn't work with the v0.6. Jogging buttons on the web interface do not result in crazy movements, but still not the movements I would expect. Are the jog buttons going to arm move angles or coordinates? I still have not been able to get the proper movements I am expecting. Homing coordinates still do not seem right to me. Homing now reports the same numbers as before

                              2:38:58 PM
                              M114
                              X:95.221 Y:-58.365 Z:0.000 E0:0.0 E1:0.0 E2:0.0 E3:0.0 E4:0.0 E5:0.0 E6:0.0 E7:0.0 E8:0.0 Count -5695 -2401 0 User 95.2 -58.4 0.0

                              I am running all the latest firmware and web control files. When I try to print a test file I get a bunch of errors from DWC, and cannot connect until the file is finished. Is there a way to see what the errors say? They seem to go away before I can copy them.

                              I will keep playing with this now that I can get some movements.

                              Thanks again

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                dc42 administrators
                                last edited by 10 Nov 2017, 20:48

                                The error messages that pop up in DWC can be viewed on the GCode Console page. You can also configure how long they remain as popups before they time out.

                                The jog buttons should jog the XY coordinates.

                                SCARA support is currently working well on at least 2 printers that do not require crosstalk parameters in the M669 command.

                                As you are now running on a Duet WiFi, I'll make a pre-release 1.20beta7 release available for you to try when I am back in the office.

                                Duet WiFi hardware designer and firmware engineer
                                Please do not ask me for Duet support via PM or email, use the forum
                                http://www.escher3d.com, https://miscsolutions.wordpress.com

                                1 Reply Last reply Reply Quote 0
                                • undefined
                                  Billhc83
                                  last edited by 10 Nov 2017, 21:16

                                  As my arms only turn 90 degrees i would expect my home position to be something like x -110 (proximal arm length)y -100(distal arm length). Does this make sense to you?

                                  1 Reply Last reply Reply Quote 0
                                  • undefined
                                    dc42 administrators
                                    last edited by 10 Nov 2017, 21:51

                                    With zero X and Y origin offset in the M669 command, X0 Y0 is the location of the proximal joint, and +X is the direction that the proximal arm points at angle zero. So if both arms home to 90 degrees clockwise, then X= -distal arm length and Y= -proximal arm length sounds right to me. This is assuming that you don't have any other arm movement commands in homeall.g after the homing move, and that you have corrected the crosstalk factor to allow for the different steps/mm as we discussed previously.

                                    Please try the following:

                                    1. With power off, set both arms at 0 degrees. This is the position that the firmware assumes at power on.

                                    2. Power on. The web interface should report the position as X= sum of arm lengths, Y= 0. Does it? M114 should report the step counts as zero.

                                    3. Send G91 followed by G1 S2 Y90 to move the distal arm clockwise 90 degrees. Does the web interface report the correct position?

                                    Duet WiFi hardware designer and firmware engineer
                                    Please do not ask me for Duet support via PM or email, use the forum
                                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                                    1 Reply Last reply Reply Quote 0
                                    • undefined
                                      Billhc83
                                      last edited by 11 Nov 2017, 03:21 11 Nov 2017, 01:12

                                      With the arms at 0 the printer turns on and reports x = 210.7 y = 0. Lengths of the arms would be 211.8 as defined in config.

                                      I think this happens on this command

                                      maxRadius *= 0.995; Which gives the 210.741

                                      M669 K4 P111.4 D100.4 A-85:85 B-85:85 C-2.37:0:0 S150 T0.1 X0 Y0;

                                      7:52:36 PM
                                      M114
                                      X:210.741 Y:0.000 Z:0.000 E0:0.0 E1:0.0 E2:0.0 E3:0.0 E4:0.0 E5:0.0 E6:0.0 E7:0.0 E8:0.0 Count -365 -41 0 User 210.7 -0.0 0.0

                                      Sending g91 followed by g1 s2 y90 rotates the distal arm clockwise 90 degrees. The web interface reports x = 100.3 y=89.3. I would expect x=111.4 y=100.4 or something close to this?

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        dc42 administrators
                                        last edited by 11 Nov 2017, 09:22

                                        I can see what's happened. The original position is outside maxRadius, so the firmware has "corrected" it to be within maxRadius as if it were a position commanded by the user, by assuming the distal arm is rotated clockwise a few degrees (hence the motor step count of -41) and the proximal arm is rotated the same number of degrees clockwise. That's why the reported position doesn't agree exactly with the actual position.

                                        When you home the printer, what is the reported position now?

                                        Duet WiFi hardware designer and firmware engineer
                                        Please do not ask me for Duet support via PM or email, use the forum
                                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                                        1 Reply Last reply Reply Quote 0
                                        • undefined
                                          Billhc83
                                          last edited by 11 Nov 2017, 16:21

                                          11:18:00 AM
                                          M114
                                          X:95.221 Y:-58.365 Z:0.000 E0:0.0 E1:0.0 E2:0.0 E3:0.0 E4:0.0 E5:0.0 E6:0.0 E7:0.0 E8:0.0 Count -5695 -2401 0 User 95.2 -58.4 0.0

                                          This is with the printer sitting at the homing switches, same as before.

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