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

    Five bar Parallel SCARA print area problem

    Scheduled Pinned Locked Moved
    My Duet controlled machine
    4
    73
    4.2k
    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.
    • o_lampeundefined
      o_lampe @JoergS5
      last edited by

      @joergs5 said in Five bar Parallel SCARA print area problem:

      The Capstan is interesting for robot gear also

      The good thing about Capstan is, you don't have to print a big wheel with precise teeth. I also had good experience with Aramid line in a non-slipping config. I think it will run really smooth (no tooth-mesh problems)
      I should start a new thread about it.

      1 Reply Last reply Reply Quote 0
      • rutkuundefined
        rutku @JoergS5
        last edited by

        @joergs5 Hi, I have done the steps you say. But I have received different results.

        IMG_20210529_133313.jpg

        IMG_20210529_133633.jpg

        m122

        m122
        === Diagnostics ===
        RepRapFirmware for STM32F4 based Boards version 3.2.2_2 running on STM32F4
        Used output buffers: 1 of 40 (11 max)
        === RTOS ===
        Static ram: 32296
        Dynamic ram: 60988 of which 380 recycled
        Never used RAM 18200, free system stack 214 words
        Tasks: NETWORK(ready,144) HEAT(blocked,369) MAIN(running,572) IDLE(ready,19)
        Owned mutexes: WiFi(NETWORK) USB(MAIN)
        === Platform ===
        Last reset 00:11:55 ago, cause: [power on/off]
        Last software reset at 2021-05-19 00:16, reason: User, GCodes spinning, available RAM 18200, slot 2
        Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00454000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
        Error status: 0x00
        Aux0 errors 0,134218187,134218187
        MCU temperature: min 31.6, current 42.0, max 42.5
        Driver 0: position 48996, standstill, SG min/max 0/32, error r/w 0/0, ifcnt 16, cnt r/w 61932/16, timeout 0, failedOp 0xff
        Driver 1: position 83200, standstill, SG min/max 0/40, error r/w 0/0, ifcnt 17, cnt r/w 61931/17, timeout 0, failedOp 0xff
        Driver 2: position 0, standstill, SG min/max 0/0, error r/w 0/0, ifcnt 9, cnt r/w 61938/9, timeout 0, failedOp 0xff
        Driver 3: position 0, standstill, SG min/max 0/0, error r/w 0/0, ifcnt 9, cnt r/w 61938/9, timeout 0, failedOp 0xff
        Driver 4: position 0
        Driver 5: position 0
        Driver 6: position 0
        Driver 7: position 0
        Driver 8: position 0
        Driver 9: position 0
        Driver 10: position 0
        Date/time: 2021-05-29 13:37:04
        Slowest loop: 17.76ms; fastest: 0.07ms
        === Storage ===
        Free file entries: 10
        SD card 0 detected
        SD card longest read time 2.8ms, write time 0.0ms, max retries 0
        === Move ===
        DMs created 83, maxWait 328438ms, bed compensation in use: none, comp offset 0.000
        === DDARing ===
        Scheduled moves 6, completed moves 6, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
        === Heat ===
        Bed heaters = -1, chamberHeaters = -1
        === GCodes ===
        Segments left: 0
        Movement lock held by null
        HTTP is idle in state(s) 0
        File is idle in state(s) 0
        USB is ready with "m122" in state(s) 0
        Aux is idle in state(s) 0
        Trigger is idle in state(s) 0
        Queue is idle in state(s) 0
        LCD is idle in state(s) 0
        Daemon is idle in state(s) 0
        Autopause is idle in state(s) 0
        Code queue is empty.
        === Network ===
        Slowest loop: 7.11ms; fastest: 0.00ms
        Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0)
        HTTP sessions: 1 of 8
        - WiFi -
        Network state is active
        WiFi module is connected to access point 
        Failed messages: pending 0, notready 0, noresp 0
        WiFi firmware version 1.25-01S-D
        WiFi MAC address 50:78:b3:f3:41:84
        WiFi Vcc 3.38, reset reason Turned on by main processor
        WiFi flash size 4194304, free heap 36832
        WiFi IP address 192.168.1.20
        WiFi signal strength -73dBm, mode 802.11n, reconnections 0, sleep mode modem
        Clock register 00004002
        Socket states: 0 0 0 0 0 0 0 0
        ok
        
        

        config.g

        M350 X128 Y128 I1 ;S3 ; Configure microstepping with interpolation
        M669 K9 L1 X-95:93 Y0:0 P126:133 D210:213:0:0 B53:90 A15:165:0:360:0:360 C-90:90:-90:90 
        M92 X924.444444 Y924.444444 ; Set steps per mm
        

        m114

        m114
        X:-24.654 Y:310.557 Z:0.000 E:0.000 E0:0.0 Count 48996 83200 0 Machine -24.654 310.557 0.000 Bed comp 0.000
        ok
        
        

        924.444444 * 53 = 48.995,55532 OK....!

        G91 G1 H2 X90

        G91 G1 H2 X90
        
        MotorStepsToCartesian => thetaL:143.00=MotorPosX:132196.00/StepsPermmX:924.44 
        MotorStepsToCartesian => thetaR:143.00=MotorPosY:83200.00/StepsPermmY:924.44 
        getForwad => getIntersec(distalL:210.00,distalR:213.00,xL:-195.63,yL:75.83,xR:93.00,yR:133.00)
        getIntersec firstRadius: 210.00 secondRadius: 213.00 firstX: -195.63 firstY: 75.83 secondX: 93.00 secondY: 133.00
        getTurn => turn:-44706.59 = (x2:-82.95 - x1:-195.63) * (y3:133.00 - y1:75.83) - (y2:253.04 - y1:75.83) * (x3:93.00 - x1:-195.63)
        getTurn => turn:44706.59 = (x2:-23.91 - x1:-195.63) * (y3:133.00 - y1:75.83) - (y2:-45.05 - y1:75.83) * (x3:93.00 - x1:-195.63)
        getTurn => turn:-26376.60 = (x2:-195.63 - x1:-95.00) * (y3:253.04 - y1:0.00) - (y2:75.83 - y1:0.00) * (x3:-82.95 - x1:-95.00)
        getTurn => turn:23401.72 = (x2:93.00 - x1:93.00) * (y3:253.04 - y1:0.00) - (y2:133.00 - y1:0.00) * (x3:-82.95 - x1:93.00)
        getForwad => workmode:1 turnLeft:-26376.60 turnRight:23401.72
        MotorStepsToCartesian => MachinePosX:nan MachinePosY:nan XYZ_AXES:3 numVisibleAxes:3ok
        
        MotorStepsToCartesian => thetaL:143.00=MotorPosX:132196.00/StepsPermmX:924.44 
        MotorStepsToCartesian => thetaR:143.00=MotorPosY:83200.00/StepsPermmY:924.44 
        getForwad => getIntersec(distalL:210.00,distalR:213.00,xL:-195.63,yL:75.83,xR:93.00,yR:133.00)
        getIntersec firstRadius: 210.00 secondRadius: 213.00 firstX: -195.63 firstY: 75.83 secondX: 93.00 secondY: 133.00
        getTurn => turn:-44706.59 = (x2:-82.95 - x1:-195.63) * (y3:133.00 - y1:75.83) - (y2:253.04 - y1:75.83) * (x3:93.00 - x1:-195.63)
        getTurn => turn:44706.59 = (x2:-23.91 - x1:-195.63) * (y3:133.00 - y1:75.83) - (y2:-45.05 - y1:75.83) * (x3:93.00 - x1:-195.63)
        getTurn => turn:-26376.60 = (x2:-195.63 - x1:-95.00) * (y3:253.04 - y1:0.00) - (y2:75.83 - y1:0.00) * (x3:-82.95 - x1:-95.00)
        getTurn => turn:23401.72 = (x2:93.00 - x1:93.00) * (y3:253.04 - y1:0.00) - (y2:133.00 - y1:0.00) * (x3:-82.95 - x1:93.00)
        getForwad => workmode:1 turnLeft:-26376.60 turnRight:23401.72
        MotorStepsToCartesian => MachinePosX:nan MachinePosY:nan XYZ_AXES:3 numVisibleAxes:3
        
        

        IMG_20210529_134354.jpg

        m114

        m114
        X:9999.900 Y:9999.900 Z:0.000 E:0.000 E0:0.0 Count 132196 83200 0 Machine 9999.900 9999.900 0.000 Bed comp 0.000
        ok
        
        

        132196 / 924.44444 = 143,0004814567331 degree .Why? 🙂

        IMG_20210529_134941.jpg

        JoergS5undefined 1 Reply Last reply Reply Quote 0
        • JoergS5undefined
          JoergS5 @rutku
          last edited by JoergS5

          @rutku said in Five bar Parallel SCARA print area problem:

          G91 G1 H2 X90

          ok, first, I made a fault for testing: G91 means relative, but I wanted the arm to rotate to the 90 degree position, so this must be G90 G1 H2 X90.

          The relative rotation means 53 degree plus 90, which is your 143 degree (the Count value is about 132T). But the arm seems to rotate into the wrong direction, so 53-90 = -37 degree, which looks correct of the arm position in the image*). Please change the S0 / S1 value for the stepper definition and retry.

          If it's
          M569 P0 S1 ; Drive 0 (X) goes forwards
          then please change to
          M569 P0 S0
          or other round.

          *) on the image the arm rotated to position 141, but it should be 143, so you can make the M92 value a bit higher. But I don't know the reason, can be some error in arm length or hinge play.

          rutkuundefined 1 Reply Last reply Reply Quote 0
          • rutkuundefined
            rutku @JoergS5
            last edited by

            @joergs5 Hi, yes the problem is solved. Completed the movement as you say. But when I want to draw a square, the machine works on the back section.

            @joergs5 said in Five bar Parallel SCARA print area problem:

            M569 P0 S1 ; Drive 0 (X) goes forwards

            IMG_20210529_144732.jpg

            sqaure.gcode

            G90
            G1 X0 Y90
            G1 X0 Y140
            G1 X50 Y140
            G1 X50 Y90
            G1 X0 Y90
            

            SQUARE VIDEO

            @joergs5 said in Five bar Parallel SCARA print area problem:

            on the image the arm rotated to position 141, but it should be 143, so you can make the M92 value a bit higher. But I don't know the reason, can be some error in arm length or hinge play.

            There is some curvature in angle gauge. showing two degrees missing.

            JoergS5undefined 3 Replies Last reply Reply Quote 0
            • JoergS5undefined
              JoergS5 @rutku
              last edited by JoergS5

              This post is deleted!
              JoergS5undefined 1 Reply Last reply Reply Quote 0
              • JoergS5undefined
                JoergS5 @rutku
                last edited by

                This post is deleted!
                1 Reply Last reply Reply Quote 0
                • JoergS5undefined
                  JoergS5 @rutku
                  last edited by

                  This post is deleted!
                  1 Reply Last reply Reply Quote 0
                  • JoergS5undefined
                    JoergS5 @JoergS5
                    last edited by JoergS5

                    @rutku

                    The following tests are to verify that the arms are rotating correctly and an idea about the reason for the curved lines. Arm 1 is the upper arm in the images which is connected to the wheel, arm 2 the lower arm, so only watching the proximal arms. With hotend I mean your pencil position in your case.

                    You're still using 128 microsteps, so please add F200 to all the following G1 commands, so the processor has more time to calculate values and to generate the steps. Hiccups (= lost steps) will probably not being reported by your hardware.

                    Step1: (check direction and M92)

                    • run homing, arm 1 shall be 53 degree, arm 2 90 degree
                    • run G90 G1 H2 X90 F200 and verify that arm 1 is 90 degree now and rotated counterclockwise
                    • run G90 G1 H2 Y70 F200 and verify that arm 2 is 70 degree now and rotated clockwise

                    If one or both arms rotated wrong, change S0 to S1 or S1 to S0 for the corresponding stepper (P0, P1) and redo the test until the arms rotate as expected. If the resulting degree is wrong, search the reason. One possible reason is if the belts have too low tension. Another one is too much play in the hinges. A third possibility is that the arm approaches the endstop too fast, so the angle is not set correctly. Then set the F parameter lower in the line which is commented "approach endstop slowly". The endstops must be approached from the same side always (always from left or always from right), because they trigger at different positions. You may want to change G1 H2 X-2 Y-2 F900 to a higher value (like X-10 Y-10) also, because you may have moved too far before.

                    Step 2: (check X0 symmetry)

                    • homing
                    • run G90 G1 H2 X90 F200 and G90 G1 H2 Y90 F200 and verify that both arms are 90 degree and the hotend is on the X0 line
                    • run M114 and note X and Y positions. X should be near 0, Y somewhere at 140
                    • run G91 G1 H2 X20 F200 and G91 G1 H2 Y-20 F200 and verify that arm 1 rotated counterclockwise, arm 2 rotated clockwise and the hotend is still on the X0 line.
                    • run M114 and note X and Y positions. X should be still near 0, Y somewhere between 50 and 140
                    • check visually that the hotend is on the X0 line and the reported Y value is correct (mm distance from the X axis)

                    Step 3 (check for curved line)

                    • homing
                    • run G90 G1 H2 X90 F200 and G90 G1 H2 Y90 F200 and verify that both arms are 90 degree and the hotend is on the X0 line
                    • run G90 G1 X0 Y100 F200 and verify that arm 1 rotated counterclockwise by about 10 degree and arm 2 rotated clockwise by about 10 degree
                    • run M114 and note X and Y positions. X should be 0, Y at 100. The hotend should be on the X0 line (middle between wheels) and 100 mm away from the x axis in Y direction.

                    Step 4: (check whether low segmentation is the reason)

                    • homing
                    • run G90 G1 H2 X90 F200 and G90 G1 H2 Y90 F200 and verify that both arms are 90 degree and the hotend is on the X0 line
                    • run G90 G1 X0 Y50 F200 while drawing a line. If it's a curved line, then do this:
                    • take a new sheet of paper or a pencil with different color and reset position to home and G90 G1 H2 X90 F200 and G90 G1 H2 Y90 F200, then run: G90 G1 X0 Y100 F200, then G90 G1 X0 Y90 F200, then G90 G1 X0 Y80 F200, then G90 G1 X0 Y70 F200, G90 G1 X0 Y60 F200, G90 G1 X0 Y50 F200. In other words, instead of one movement, use mutliple small movements. Compare the lines. Is the line of small movements more straight than the one-movement-line?

                    Please tell me the results of steps 1 to 4, before we continue.

                    rutkuundefined 2 Replies Last reply Reply Quote 0
                    • rutkuundefined
                      rutku @JoergS5
                      last edited by

                      @joergs5 said in Five bar Parallel SCARA print area problem:

                      You're still using 128 microsteps, so please add F200 to all the following G1 commands, so the processor has more time to calculate values and to generate the steps. Hiccups (= lost steps) will probably not being reported by your hardware.

                      Step1: (check direction and M92)

                      • run homing, arm 1 shall be 53 degree, arm 2 90 degree arm 1 = new 51 degree
                      • run G90 G1 H2 X90 F200 and verify that arm 1 is 90 degree now and rotated counterclockwise ✓
                      • run G90 G1 H2 Y70 F200 and verify that arm 2 is 70 degree now and rotated clockwise ✓

                      If one or both arms rotated wrong, change S0 to S1 or S1 to S0 for the corresponding stepper (P0, P1) and redo the test until the arms rotate as expected. If the resulting degree is wrong, search the reason. One possible reason is if the belts have too low tension. Another one is too much play in the hinges.

                      Step 2: (check X0 symmetry)

                      • homing ✓
                      • run G90 G1 H2 X90 F200 and G90 G1 H2 Y90 F200 and verify that both arms are 90 degree and the hotend is on the X0 line ✓
                      • run M114 and note X and Y positions. X should be near 0, Y somewhere at 140

                      m114

                      M114 
                      X:9999.900 Y:9999.900 Z:0.000 E:0.000 E0:0.0 Count 83200 83200 0 Machine 9999.900 9999.900 0.000 Bed comp 0.000
                      ok
                      
                      

                      The M114 command does not give X and Y positions for some reason. Your help is thanks.

                      JoergS5undefined 1 Reply Last reply Reply Quote 0
                      • JoergS5undefined
                        JoergS5 @rutku
                        last edited by JoergS5

                        @rutku according to RepRap.cpp source, 9999.9 means: Ideally we would report "unknown" or similar for axis positions that are not known because we haven't homed them, but that requires changes to both DWC and PanelDue.
                        // So we report 9999.9 instead.

                        [ Maybe I made an error in programming somewhere, that after a G1 H2 move the M114 doesn't know the position. Please go on without the M114 and look whether the hotend position is correct my measuring the distance from the X axis. ] => the C parameter reason is more probable

                        I see another problem: your C parameter is C-90:90:-90:90
                        which means the arms 1 and 2 cannot have an angle greater than 90 degree. The Step 3 and 4 tests will not work, because they need bigger angles. Please set the C parameter to C-90:180:-90:180. Even your Step 2 test is at the boundary of the 90 degree limit, maybe this is the reason for the M114 9999.9 values.

                        I plan to rework the firmware for a detailed object model (asking for the paramenters in json format), it would be useful imho to report the reasons for angle limit errors also. It's easy to fall into the angle limit traps.

                        rutkuundefined 1 Reply Last reply Reply Quote 0
                        • rutkuundefined
                          rutku @JoergS5
                          last edited by

                          @joergs5 said in Five bar Parallel SCARA print area problem:

                          which means the arms 1 and 2 cannot have an angle greater than 90 degree. The Step 3 and 4 tests will not work, because they need bigger angles. Please set the C parameter to C-90:180:-90:180. Even your Step 2 test is at the boundary of the 90 degree limit, maybe this is the reason for the M114 9999.9 values.

                          I did what you said. but gave the same mistake. I wrote 270 degrees, gave the same mistake.

                          config.g

                          M669 K9 L1 X-95:93 Y0:0 P126:133 D210:213:0:0 B51:90 A15:165:0:360:0:360 C-90:270:-90:270 
                          M208 X-1000:1000 Y-1000:1000 ; set axis minima and maxima
                          
                          

                          m114

                          M114
                          X:9999.900 Y:9999.900 Z:0.000 E:0.000 E0:0.0 Count 101689 64711 0 Machine 9999.900 9999.900 0.000 Bed comp 0.000
                          ok
                          
                          

                          I'm going on by skipping the M114 command.

                          JoergS5undefined 1 Reply Last reply Reply Quote 0
                          • JoergS5undefined
                            JoergS5 @rutku
                            last edited by

                            @rutku yes, please skip. I am curious about the results of your tests!

                            1 Reply Last reply Reply Quote 0
                            • rutkuundefined
                              rutku @JoergS5
                              last edited by

                              @joergs5 said in Five bar Parallel SCARA print area problem:

                              Step 3 (check for curved line)

                              homing✓
                              run G90 G1 H2 X90 F200 and G90 G1 H2 Y90 F200 and verify that both arms are 90 degree and the hotend is on the X0 line✓
                              run G90 G1 X0 Y100 F200 and verify that arm 1 rotated counterclockwise by about 10 degree and arm 2 rotated clockwise by about 10 degree

                              This command is very strange sounds. I repeat the same action four times. The same sound continued to go out.


                              Strange Sounds

                              debug

                              G90 G1 X0 Y100 F200
                              
                              constraintsOK => cachedInvalid:0 cachedX0:-29.16 cachedY0:307.49
                              getInverse => not cantilevered proximalL:126.00 distalL:210.00 xOrigL:-95.00 yOrigL:0.00 x_0:0.00 y_0:100.00
                              getIntersec firstRadius: 126.00 secondRadius: 210.00 firstX: -95.00 firstY: 0.00 secondX: 0.00 secondY: 100.00
                              getTurn => turn:-16759.64 = (x2:-206.06 - x1:-95.00) * (y3:100.00 - y1:0.00) - (y2:59.51 - y1:0.00) * (x3:0.00 - x1:-95.00)
                              getTurn => turn:16759.64 = (x2:-29.87 - x1:-95.00) * (y3:100.00 - y1:0.00) - (y2:-107.86 - y1:0.00) * (x3:0.00 - x1:-95.00)
                              getTheta => workmode: 1 thetaA:151.82 thetaB:301.12 proxturnA:-16759.64 proxturnB:-16759.64
                              getTheta => use: 2 x2: -29.87 y2: -107.86 thetaB: 301.12 x1: -206.06 y1: 59.51 thetaA: 151.82
                              getInverse => not cantilevered proximalR:133.00 distalR:213.00 xOrigR:93.00 yOrigR:0.00 x_0:0.00 y_0:100.00
                              getIntersec firstRadius: 133.00 secondRadius: 213.00 firstX: 93.00 firstY: 0.00 secondX: 0.00 secondY: 100.00
                              getTurn => turn:-17592.40 = (x2:21.18 - x1:93.00) * (y3:100.00 - y1:0.00) - (y2:-111.94 - y1:0.00) * (x3:0.00 - x1:93.00)
                              getTurn => turn:17592.40 = (x2:209.85 - x1:93.00) * (y3:100.00 - y1:0.00) - (y2:63.52 - y1:0.00) * (x3:0.00 - x1:93.00)
                              getTheta => workmode: 1 thetaA:237.32 thetaB:28.53 proxturnA:-17592.40 proxturnB:-17592.40
                              getTheta => use: 2 x2: 209.85 y2: 63.52 thetaB: 28.53 x1: 21.18 y1: -111.94 thetaA: 237.32
                              getInverse => cachedInvalid 0 cachedX0:0.00 cachedY0:100.00 cachedX1:0.00 cachedY1:100.00
                              getInverse => cachedXL:-29.87 cachedYL:-107.86 cachedXR:209.85 cachedYR:63.52 cachedThetaR:28.53 cachedXR:209.85
                              getInverse => cachedYR:63.52 cachedThetaL:301.12 cachedXL:-29.87 cachedYL:-107.86
                              getInverse => cachedInvalid:0 x_0:0.00 y_0:100.00 xL:-29.87 yL:-107.86 thetaL:301.12 xR:209.85 yR:63.52 thetaR:28.53 x1:0.00 y1:100.00
                              constraintsOK => cachedInvalid:0 actuatorAngleLMin:-90.00<0 && thetaL:301.12>actuatorAngleLMax:270.00
                              constraintsOK => thetaL(-58.88) -=360
                              constraintsOK => cachedInvalid:0 thetaL:-58.88 < actuatorAngleLMin:-90.00 || thetaL:-58.88 > actuatorAngleLMax:270.00 return false
                              constraintsOK => cachedInvalid:0 actuatorAngleRMin:-90.00<0 && thetaR:28.53>actuatorAngleRMax:270.00
                              constraintsOK => cachedInvalid:0 thetaR:28.53 < actuatorAngleRMin:-90.00 || thetaR:28.53 > actuatorAngleRMax:270.00 return false
                              getAngle => x1:-29.87 y1:-107.86 x2:0.00 y2:100.00 x3:209.85 y3:63.52
                              getAngle => angle:88.32 = angle2:350.14 - angle1:261.82
                              constraintsOK => achedInvalid:0 headAngle:88.32 < headAngleMin:15.00 || headAngle:88.32 > headAngleMax:165.00 isnan(headAngle):0 return false
                              getAngle => x1:-95.00 y1:0.00 x2:-29.87 y2:-107.86 x3:0.00 y3:100.00
                              getAngle => angle:320.70 = 360 + angle2:81.82 - angle1:121.12
                              constraintsOK => cachedInvalid:0 angleProxDistL:320.70 < proxDistLAngleMin:0.00 || angleProxDistL:320.70 > proxDistLAngleMax:360.00 isnan(angleProxDistL):0 return false
                              getAngle => x1:93.00 y1:0.00 x2:209.85 y2:63.52 x3:0.00 y3:100.00
                              getAngle => angle:321.61 = 360 + angle2:170.14 - angle1:208.53
                              constraintsOK => cachedInvalid:0 angleProxDistR:321.61 < proxDistRAngleMin:0.00 || angleProxDistR:321.61 > proxDistRAngleMax:360.00 isnan(angleProxDistR):0 return false
                              constraintsOK => cachedInvalid:0 cachedX0:0.00 cachedY0:100.00
                              CartesianToMotorSteps => motorPosX = cachedThetaL:301.12 * stespPermm[X_AXIS]924.44
                               motorPosY = cachedThetaR:28.53 * stepsPermm[Y_AXIS]924.44
                              CartesianToMotorSteps => machinePos[0]:0.00 machinePos[1]:100.00 motorPosX:0.00 motorPosY:924.44
                              CartesianToMotorSteps => XYZ_AXES:3 numVisibleAxes:3ok
                              
                              
                              JoergS5undefined 1 Reply Last reply Reply Quote 0
                              • JoergS5undefined
                                JoergS5 @rutku
                                last edited by JoergS5

                                @rutku said in Five bar Parallel SCARA print area problem:

                                88.32 = angle2:350.14

                                you can try the same test with L2 mode, but I fear, there is an error in the firmware and I have to setup your configuration and test it myself. The debug code looks like the calculated angle is strange and incorrect. Step 3 is exactly where workmode 1 changes to workmode 2, this may confuse the firmware. It should behave logic however even then, leaving the arms at the top. But your debug seems trying to rotate the arms to the bottom.

                                Please give me your config.g content and the current homing file. Please tell me which firmware version you use. I'll setup a printer like yours. Give me a few days please until thursday.

                                If you want to further test your printer, use L1 mode and stay in the positive X region with Y between 50 and140. This should work ok. You can make Step 4 test to test whether segmentation is the reason for your curved lines. If you want, you can experiment with the M669 S and T parameter, please see https://duet3d.dozuki.com/Guide/Five+Bar+Parallel+SCARA/24#s103

                                When I know the reason, I'll tell you which part of the source to change.

                                rutkuundefined 1 Reply Last reply Reply Quote 0
                                • rutkuundefined
                                  rutku @JoergS5
                                  last edited by

                                  @joergs5 said in Five bar Parallel SCARA print area problem:

                                  Please give me your config.g content and the current homing file. Please tell me which firmware version you use. I'll setup a printer like yours. Give me a few days please until thursday.

                                  Ok I'm waiting for you. Thank you so much.

                                  m115
                                  FIRMWARE_NAME: RepRapFirmware for STM32F4 based Boards FIRMWARE_VERSION: 3.2.2_2 ELECTRONICS: STM32F4 FIRMWARE_DATE: 2021-05-02
                                  ok
                                  
                                  

                                  config.g

                                  ; General preferences
                                  G90 ; Send absolute coordinates...
                                  M83 ; ...but relative extruder moves
                                  M552 S1 ; Turn network on
                                  
                                  M586 P0 S1 ; Enable HTTP
                                  M586 P1 S0 ; Enable FTP
                                  M586 P2 S0 ; Enable Telnet
                                  
                                  ; Drives
                                  M569 P0 S0 ; Drive 0 (X) goes forwards
                                  M569 P1 S0 ; Drive 1 (Y) goes forwards
                                  ;M569 P2 S1 ; Drive 2 (Z) goes forwards
                                  ;M569 P3 S1 ; Drive 3 (E0) goes forwards
                                  M584 X0 Y1 ; set drive mapping
                                  
                                  M350 X128 Y128 I1 ;S3 ; Configure microstepping with interpolation
                                  M669 K9 L1 X-95:93 Y0:0 P126:133 D210:213:0:0 B51:90 A15:165:0:360:0:360 C-90:270:-90:270 
                                  M92 X924.444444 Y924.444444 ; Set steps per mm
                                  
                                  M203 X10000 Y10000 ; maximum speeds mm/minute
                                  
                                  M566 X15 Y15 ; Set maximum instantaneous speed changes (mm/min)
                                  M201 X40 Y40 ; Set accelerations (mm/s^2)
                                  M906 X1200 Y1200 ; Set motor currents (mA) and motor idle factor in per cent
                                  
                                  M84 S0 ; Set idle timeout
                                  
                                  ; Axis Limits
                                   M208 X-1000:1000 Y-1000:1000 ; set axis minima and maxima
                                  
                                  ; Endstops
                                  M574 X1 S1 P"xstop"   ; X min active high endstop switch
                                  M574 Y2 S1 P"ystop"   ; Y min active high endstop switch
                                  ;M574 Z0 S1 P"zstop"   ; Z min active high endstop switch
                                  

                                  home5barscara.g

                                  G91              ; relative positioning
                                   
                                  G1 H1 X100 Y300  F400 ; move quickly to endstop and stop there (first pass)
                                  G1 H1 X300 F400
                                  G1 H1 Y300 F400
                                  G1 H2 X-2 Y-2 F400      ; go back a few degrees
                                  G1 H1 X100 F90  ; move slowly to endstop once more (second pass)
                                  G1 H1 Y100 F90  ; move slowly to endstop once more (second pass)
                                  ;G1 H2 X-5 Y-5 F400      ; go back a few degrees
                                   
                                  G92 Z0
                                  G90              ; absolute positioning
                                  ;G0 X0 Y90 ; move to a reasonable position
                                  
                                  
                                  JoergS5undefined 1 Reply Last reply Reply Quote 0
                                  • JoergS5undefined
                                    JoergS5 @rutku
                                    last edited by

                                    @rutku thank you.

                                    My idea is to introduce a new mode L5, who joins working modes 1, 3 and 4 to one print area. This would allow you to use most of your area of positive Y.

                                    rutkuundefined 1 Reply Last reply Reply Quote 0
                                    • rutkuundefined
                                      rutku @JoergS5
                                      last edited by

                                      @joergs5 An excellent idea. I was thinking about this idea. I didn't mean to do that without running the system. Also are not required offset for X and Y axes?

                                      JoergS5undefined 1 Reply Last reply Reply Quote 0
                                      • JoergS5undefined
                                        JoergS5 @rutku
                                        last edited by JoergS5

                                        @rutku the offsets for x and y are required, because the firmware has to know where the actuators are placed.

                                        I will make a new thread in the firmware development space, you'll get a first version for testing when I implemented L5. The thread is here: https://forum.duet3d.com/topic/23483/parallel-scara-printer-improvements
                                        When you and I tested L5 successfully, I'll make a pull request to the official firmware.

                                        rutkuundefined 1 Reply Last reply Reply Quote 0
                                        • rutkuundefined
                                          rutku @JoergS5
                                          last edited by

                                          @joergs5 I'm following the topic. I'll be happy to test new updates. Thanks, I'll continue with the other thread.

                                          JoergS5undefined 2 Replies Last reply Reply Quote 0
                                          • JoergS5undefined
                                            JoergS5 @rutku
                                            last edited by

                                            @rutku we should discuss your specific config here, and the firmware development there. I install a printer with the same properties like yours, so we'll find a working solution for your printer.

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