Welcome! Log In Create A New Profile


SCARA Arm 3D printer

Posted by Napalm1432 
SCARA Arm 3D printer
March 16, 2015 07:01AM
Hello all,

Let me introduce myself first since this is my first post, my name is Raymond and i'm a designer/developer.
I'm currently building a SCARA Arm 3d printer and got some parts working.
I'm using the Marlin firmware by qharley, edited byJCERNY to drive the arm.
So far i got it to home to endstops and make it move. i'm having problems calibrating home positions though and i'm hoping you guys could help.
It's a single Scara arm so it may be different than the usual morgan scara arm, and maybe that's what's giving me problems?
the goal is a single arm, with a theta length of 162 mm, and the same for the psi length also 162 mm.
I got the steps/revolution set right.
Some other problems i'm having is that sometimes when i want the arm to move say 10mm, it just keeps rotating, this doesn't always happen though.
My question here is can you guys help me get this to work since there's not alot of documentation about getting a scara arm to work with marlin.
I made a github for this so if you can please commit changes.
If anything is unclear or more information is neccesary please let me know.

the github can be found here: [github.com]
Re: SCARA Arm 3D printer
March 23, 2015 03:06PM
I've worked out a bit of the kinematics for Marlin using Single Arm Scara.

Bed 0,0 is from Top Right of bed if looking forward and down.

Tower is offset from bed 0,0 - If bed is 200mm x 200mm and tower is centered to bed in X coordinate and back about 120mm (safety), the offset would be 100mm in X and -120mm in Y

Homeing expects arm to be extended directly forward (given the manual homing coordinates in Configuration.h) at Theta = 90 degrees and Psi = 0 Degrees. You can change the manual homing coordinates to be whatever you'd like, just make sure the effector is in that general location so that the Theta / Psi angle can be deduced from the manual homing coordinates.

This is for a "right armed" movements - you shouldn't get any negative angles.

I've made several adjustments to my concept single arm Scara, and have made a few successful test prints.
Re: SCARA Arm 3D printer
March 23, 2015 03:09PM
Also, I've discovered that while manual moves are typically clamped, your initial homing offset may be out of bounds so to speak. Make sure after you've homed that you request a G0 move to a valid point.
Ambidextrous SCARA
September 03, 2016 10:02PM
Also, I've discovered that while manual moves are typically clamped, your initial homing offset may be out of bounds so to speak. Make sure after you've homed that you request a G0 move to a valid point.

I noticed that the code in your fork hasn't yet implemented G0 as a single move. I just did that in a fork I'm working on, if you'd like to borrow from it. You'll want to turn off "combing" in your slicer (if it happens to have that feature and outputs G0 for non-extrusion moves).

In my project I need to go a step further and make this SCARA "ambidextrous" so that if needed it can switch its arm orientation from left to right. So far I've only done the left-arm solution, so I found in testing with G2/G3 (to make circles) that when the outer arm reaches its middle position, instead of following through and switching sides to make a smooth continuous motion, it reverses direction instead, adding a small jerk to the motion. So I'm going to combine the left and right-arm formulas and add some logic to apply the appropriate formula. I will of course share my results when completed.

In reviewing your code I noticed that it applies atan2 with X as the first argument and Y as the second argument, whereas the documentation for this function specifies that the order should be Y, X. Your code ends up producing the right result, but "strictly speaking" the arguments should be swapped and the code that follows adjusted for the differing output. I will be attempting that in my solution, and will post the results.

One last question. Is your code every bit the same as the code for the Morgan by Quentin Harley, or is it specifically for your setup?

Thanks for doing this work! I'm sure it will help a lot with this project.

EDIT: I just discovered a minor problem. This might end up trying to take the square root of a negative number:

SCARA_S2 = sqrt(1 - sq(SCARA_C2));

Edited 2 time(s). Last edit at 09/05/2016 12:47AM by Thinkyhead.

| Lead Developer of Marlin Firmware
| Help support my work at Patreon and Elsewhere.
Sorry, only registered users may post in this forum.

Click here to login